diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2017-07-09 22:09:18 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2017-08-30 14:11:25 +0200 |
commit | 7b656884cfadfd8c56355e8a6c690721827b5b30 (patch) | |
tree | 7f3357a94992d953021a28ec20336c4578f23052 /tests | |
parent | 31a11aa75b5aad8887213bcd88cddc1b79b5954f (diff) |
split off osmo-bsc: remove files, apply build
Change-Id: I64d84c52f6e38e98144eb9be8f0ab82e0e1f6cca
Diffstat (limited to 'tests')
80 files changed, 5 insertions, 37840 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am index 7e17ad8de..fc7fc570d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,14 +1,10 @@ SUBDIRS = \ gsm0408 \ channel \ - gprs \ abis \ - gbproxy \ trau \ subscr \ nanobts_omlattr \ - sms_queue \ - msc_vlr \ $(NULL) if BUILD_NAT @@ -22,27 +18,6 @@ SUBDIRS += \ bsc \ $(NULL) endif -if BUILD_SMPP -SUBDIRS += \ - smpp \ - $(NULL) -endif -if HAVE_LIBGTP -SUBDIRS += \ - gtphub \ - $(NULL) - -if HAVE_LIBCARES -SUBDIRS += \ - sgsn \ - oap \ - xid \ - sndcp_xid \ - slhc \ - v42bis \ - $(NULL) -endif -endif # The `:;' works around a Bash 3.2 bug when the output is not writeable. $(srcdir)/package.m4: $(top_srcdir)/configure.ac @@ -68,7 +43,6 @@ EXTRA_DIST = \ $(TESTSUITE) \ vty_test_runner.py \ ctrl_test_runner.py \ - smpp_test_runner.py \ $(NULL) TESTSUITE = $(srcdir)/testsuite @@ -83,9 +57,6 @@ python-tests: $(BUILT_SOURCES) osmotestconfig.py -p $(abs_top_srcdir) -w $(abs_top_builddir) -v $(PYTHON) $(srcdir)/vty_test_runner.py -w $(abs_top_builddir) -v $(PYTHON) $(srcdir)/ctrl_test_runner.py -w $(abs_top_builddir) -v -if BUILD_SMPP - $(PYTHON) $(srcdir)/smpp_test_runner.py -w $(abs_top_builddir) -v -endif rm -f $(top_builddir)/sms.db $(top_builddir)/gsn_restart $(top_builddir)/gtphub_restart_count else python-tests: $(BUILT_SOURCES) diff --git a/tests/channel/Makefile.am b/tests/channel/Makefile.am index dd78bdcf9..d190cbaa9 100644 --- a/tests/channel/Makefile.am +++ b/tests/channel/Makefile.am @@ -25,7 +25,6 @@ channel_test_SOURCES = \ channel_test_LDADD = \ $(top_builddir)/src/libbsc/libbsc.a \ - $(top_builddir)/src/libvlr/libvlr.a \ $(top_builddir)/src/libcommon-cs/libcommon-cs.a \ $(top_builddir)/src/libcommon/libcommon.a \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/channel/channel_test.c b/tests/channel/channel_test.c index beae658e9..e66bed3b1 100644 --- a/tests/channel/channel_test.c +++ b/tests/channel/channel_test.c @@ -29,7 +29,6 @@ #include <openbsc/abis_rsl.h> #include <openbsc/debug.h> #include <openbsc/gsm_subscriber.h> -#include <openbsc/vlr.h> void test_bts_debug_print(void) { diff --git a/tests/db/Makefile.am b/tests/db/Makefile.am deleted file mode 100644 index bcb66ec32..000000000 --- a/tests/db/Makefile.am +++ /dev/null @@ -1,47 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBSMPP34_CFLAGS) \ - $(COVERAGE_CFLAGS) \ - $(NULL) - -AM_LDFLAGS = \ - $(COVERAGE_LDFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - db_test.ok \ - db_test.err \ - hlr.sqlite3 \ - $(NULL) - -noinst_PROGRAMS = \ - db_test \ - $(NULL) - -db_test_SOURCES = \ - db_test.c \ - $(NULL) - -db_test_LDADD = \ - $(top_builddir)/src/libmsc/libmsc.a \ - $(top_builddir)/src/libcommon-cs/libcommon-cs.a \ - $(top_builddir)/src/libtrau/libtrau.a \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(top_builddir)/tests/libiudummy/libiudummy.a \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBSMPP34_LIBS) \ - $(LIBOSMOVTY_LIBS) \ - $(LIBCRYPTO_LIBS) \ - -ldbi \ - $(NULL) diff --git a/tests/db/db_test.c b/tests/db/db_test.c deleted file mode 100644 index a0c1e79c3..000000000 --- a/tests/db/db_test.c +++ /dev/null @@ -1,286 +0,0 @@ -/* (C) 2008 by Jan Luebbe <jluebbe@debian.org> - * (C) 2009-2016 by Holger Hans Peter Freyther <zecke@selfish.org> - * (C) 2014 by Alexander Chemeris <Alexander.Chemeris@fairwaves.co> - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <openbsc/debug.h> -#include <openbsc/db.h> -#include <openbsc/gsm_subscriber.h> -#include <openbsc/gsm_04_11.h> -#include <openbsc/mgcp.h> - -#include <osmocom/core/application.h> - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <stdbool.h> -#include <inttypes.h> - -static struct gsm_network dummy_net; -static struct gsm_subscriber_group dummy_sgrp; - -#define SUBSCR_PUT(sub) \ - sub->group = &dummy_sgrp; \ - subscr_put(sub); - -#define COMPARE(original, copy) \ - if (original->id != copy->id) \ - printf("Ids do not match in %s:%d %llu %llu\n", \ - __FUNCTION__, __LINE__, original->id, copy->id); \ - if (original->lac != copy->lac) \ - printf("LAC do not match in %s:%d %d %d\n", \ - __FUNCTION__, __LINE__, original->lac, copy->lac); \ - if (original->authorized != copy->authorized) \ - printf("Authorize do not match in %s:%d %d %d\n", \ - __FUNCTION__, __LINE__, original->authorized, \ - copy->authorized); \ - if (strcmp(original->imsi, copy->imsi) != 0) \ - printf("IMSIs do not match in %s:%d '%s' '%s'\n", \ - __FUNCTION__, __LINE__, original->imsi, copy->imsi); \ - if (original->tmsi != copy->tmsi) \ - printf("TMSIs do not match in %s:%d '%u' '%u'\n", \ - __FUNCTION__, __LINE__, original->tmsi, copy->tmsi); \ - if (strcmp(original->name, copy->name) != 0) \ - printf("names do not match in %s:%d '%s' '%s'\n", \ - __FUNCTION__, __LINE__, original->name, copy->name); \ - if (strcmp(original->extension, copy->extension) != 0) \ - printf("Extensions do not match in %s:%d '%s' '%s'\n", \ - __FUNCTION__, __LINE__, original->extension, copy->extension); \ - -/* - * Create/Store a SMS and then try to load it. - */ -static void test_sms(void) -{ - int rc; - struct gsm_sms *sms; - struct gsm_subscriber *subscr; - subscr = db_get_subscriber(GSM_SUBSCRIBER_IMSI, "9993245423445"); - OSMO_ASSERT(subscr); - subscr->group = &dummy_sgrp; - - sms = sms_alloc(); - sms->receiver = subscr_get(subscr); - - sms->src.ton = 0x23; - sms->src.npi = 0x24; - memcpy(sms->src.addr, "1234", strlen("1234") + 1); - - sms->dst.ton = 0x32; - sms->dst.npi = 0x42; - memcpy(sms->dst.addr, subscr->extension, sizeof(subscr->extension)); - - memcpy(sms->text, "Text123", strlen("Text123") + 1); - memcpy(sms->user_data, "UserData123", strlen("UserData123") + 1); - sms->user_data_len = strlen("UserData123"); - - /* random values */ - sms->reply_path_req = 1; - sms->status_rep_req = 2; - sms->ud_hdr_ind = 3; - sms->protocol_id = 4; - sms->data_coding_scheme = 5; - - rc = db_sms_store(sms); - sms_free(sms); - OSMO_ASSERT(rc == 0); - - /* now query */ - sms = db_sms_get_unsent_for_subscr(subscr); - OSMO_ASSERT(sms); - OSMO_ASSERT(sms->receiver == subscr); - OSMO_ASSERT(sms->reply_path_req == 1); - OSMO_ASSERT(sms->status_rep_req == 2); - OSMO_ASSERT(sms->ud_hdr_ind == 3); - OSMO_ASSERT(sms->protocol_id == 4); - OSMO_ASSERT(sms->data_coding_scheme == 5); - OSMO_ASSERT(sms->src.ton == 0x23); - OSMO_ASSERT(sms->src.npi == 0x24); - OSMO_ASSERT(sms->dst.ton == 0x32); - OSMO_ASSERT(sms->dst.npi == 0x42); - OSMO_ASSERT(strcmp((char *) sms->text, "Text123") == 0); - OSMO_ASSERT(sms->user_data_len == strlen("UserData123")); - OSMO_ASSERT(strcmp((char *) sms->user_data, "UserData123") == 0); - - /* Mark the SMS as delivered */ - db_sms_mark_delivered(sms); - sms_free(sms); - - sms = db_sms_get_unsent_for_subscr(subscr); - OSMO_ASSERT(!sms); - - subscr_put(subscr); -} - -static void test_sms_migrate(void) -{ - struct gsm_subscriber *rcv_subscr; - struct gsm_sms *sms; - static const uint8_t user_data_1[] = { - 0x41, 0xf1, 0xd8, 0x05, 0x22, 0x96, 0xcd, 0x2e, - 0x90, 0xf1, 0xfd, 0x06, 0x00 }; - static const uint8_t user_data_2[] = { - 0x41, 0xf1, 0xd8, 0x05, 0x22, 0x96, 0xcd, 0x2e, - 0xd0, 0xf1, 0xfd, 0x06, 0x00 }; - - rcv_subscr = db_get_subscriber(GSM_SUBSCRIBER_IMSI, "901010000001111"); - rcv_subscr->group = &dummy_sgrp; - - sms = db_sms_get(&dummy_net, 1); - OSMO_ASSERT(sms->id == 1); - OSMO_ASSERT(sms->receiver == rcv_subscr); - OSMO_ASSERT(strcmp(sms->text, "Abc. Def. Foo") == 0); - OSMO_ASSERT(sms->user_data_len == ARRAY_SIZE(user_data_1)); - OSMO_ASSERT(memcmp(sms->user_data, user_data_1, ARRAY_SIZE(user_data_1)) == 0); - sms_free(sms); - - sms = db_sms_get(&dummy_net, 2); - OSMO_ASSERT(sms->id == 2); - OSMO_ASSERT(sms->receiver == rcv_subscr); - OSMO_ASSERT(strcmp(sms->text, "Abc. Def. Goo") == 0); - OSMO_ASSERT(sms->user_data_len == ARRAY_SIZE(user_data_2)); - OSMO_ASSERT(memcmp(sms->user_data, user_data_2, ARRAY_SIZE(user_data_2)) == 0); - sms_free(sms); - - subscr_put(rcv_subscr); -} - -static void test_subs(const char *imsi, char *imei1, char *imei2, bool make_ext) -{ - struct gsm_subscriber *alice = NULL, *alice_db; - char scratch_str[256]; - - alice = db_create_subscriber(imsi, GSM_MIN_EXTEN, GSM_MAX_EXTEN, - make_ext); - db_subscriber_assoc_imei(alice, imei1); - if (imei2) - db_subscriber_assoc_imei(alice, imei2); - db_subscriber_alloc_tmsi(alice); - alice->lac=42; - db_sync_subscriber(alice); - /* Get by TMSI */ - snprintf(scratch_str, sizeof(scratch_str), "%"PRIu32, alice->tmsi); - alice_db = db_get_subscriber(GSM_SUBSCRIBER_TMSI, scratch_str); - COMPARE(alice, alice_db); - SUBSCR_PUT(alice_db); - /* Get by IMSI */ - alice_db = db_get_subscriber(GSM_SUBSCRIBER_IMSI, imsi); - COMPARE(alice, alice_db); - SUBSCR_PUT(alice_db); - /* Get by id */ - snprintf(scratch_str, sizeof(scratch_str), "%llu", alice->id); - alice_db = db_get_subscriber(GSM_SUBSCRIBER_ID, scratch_str); - COMPARE(alice, alice_db); - SUBSCR_PUT(alice_db); - /* Get by extension */ - alice_db = db_get_subscriber(GSM_SUBSCRIBER_EXTENSION, alice->extension); - if (alice_db) { - if (!make_ext) - printf("FAIL: bogus extension created for IMSI %s\n", - imsi); - COMPARE(alice, alice_db); - SUBSCR_PUT(alice_db); - } else if (make_ext) - printf("FAIL: no subscriber extension for IMSI %s\n", imsi); - SUBSCR_PUT(alice); -} - -int main() -{ - printf("Testing subscriber database code.\n"); - osmo_init_logging(&log_info); - log_set_print_filename(osmo_stderr_target, 0); - - dummy_net.subscr_group = &dummy_sgrp; - dummy_sgrp.net = &dummy_net; - - if (db_init("hlr.sqlite3")) { - printf("DB: Failed to init database. Please check the option settings.\n"); - return 1; - } - printf("DB: Database initialized.\n"); - - if (db_prepare()) { - printf("DB: Failed to prepare database.\n"); - return 1; - } - printf("DB: Database prepared.\n"); - - struct gsm_subscriber *alice = NULL; - struct gsm_subscriber *alice_db; - - char *alice_imsi = "3243245432345"; - alice = db_create_subscriber(alice_imsi, GSM_MIN_EXTEN, GSM_MAX_EXTEN, - true); - db_sync_subscriber(alice); - alice_db = db_get_subscriber(GSM_SUBSCRIBER_IMSI, alice->imsi); - COMPARE(alice, alice_db); - SUBSCR_PUT(alice_db); - SUBSCR_PUT(alice); - - test_subs("3693245423445", "1234567890", NULL, true); - test_subs("9993245423445", "1234567890", "6543560920", true); - test_subs("3123122223445", "1234567890", NULL, false); - test_subs("9123121223445", "1234567890", "6543560920", false); - - /* create it again and see it fails */ - alice = db_create_subscriber(alice_imsi, GSM_MIN_EXTEN, GSM_MAX_EXTEN, - true); - OSMO_ASSERT(!alice); - - test_sms(); - test_sms_migrate(); - - db_fini(); - - printf("Done\n"); - return 0; -} - -/* stubs */ -void vty_out() {} -void vlr_subscr_disconnected() {} -void vlr_subscr_rx_tmsi_reall_compl() {} -void vlr_subscr_rx_id_resp() {} -void vlr_subscr_rx_auth_resp() {} -void vlr_loc_update() {} -void vlr_proc_acc_req() {} -void vlr_init() {} -unsigned int mgcpgw_client_next_endpoint(struct mgcpgw_client *client) -{ return 0; } -struct msgb *mgcp_msg_crcx(struct mgcpgw_client *mgcp, - uint16_t rtp_endpoint, unsigned int call_id, - enum mgcp_connection_mode mode) -{ return NULL; } -struct msgb *mgcp_msg_mdcx(struct mgcpgw_client *mgcp, - uint16_t rtp_endpoint, const char *rtp_conn_addr, - uint16_t rtp_port, enum mgcp_connection_mode mode) -{ return NULL; } -int mgcpgw_client_tx(struct mgcpgw_client *mgcp, struct msgb *msg, - mgcp_response_cb_t response_cb, void *priv) -{ return -EINVAL; } -const char *mgcpgw_client_remote_addr_str(struct mgcpgw_client *mgcp) -{ return "0.0.0.0"; } -uint32_t mgcpgw_client_remote_addr_n(struct mgcpgw_client *mgcp) -{ return 0; } -int mgcp_response_parse_params(struct mgcp_response *r) -{ return -EINVAL; } -struct RANAP_Cause; -int iu_tx_release(struct ue_conn_ctx *ctx, const struct RANAP_Cause *cause) -{ return 0; } diff --git a/tests/db/db_test.err b/tests/db/db_test.err deleted file mode 100644 index 27e570372..000000000 --- a/tests/db/db_test.err +++ /dev/null @@ -1,3 +0,0 @@ -Going to migrate from revision 3 -[0;mGoing to migrate from revision 4 -[0;m
\ No newline at end of file diff --git a/tests/db/db_test.ok b/tests/db/db_test.ok deleted file mode 100644 index 2632a8c8a..000000000 --- a/tests/db/db_test.ok +++ /dev/null @@ -1,4 +0,0 @@ -Testing subscriber database code. -DB: Database initialized. -DB: Database prepared. -Done diff --git a/tests/db/hlr.sqlite3 b/tests/db/hlr.sqlite3 Binary files differdeleted file mode 100644 index e59dcdca3..000000000 --- a/tests/db/hlr.sqlite3 +++ /dev/null diff --git a/tests/gbproxy/Makefile.am b/tests/gbproxy/Makefile.am deleted file mode 100644 index 2dd66dfd4..000000000 --- a/tests/gbproxy/Makefile.am +++ /dev/null @@ -1,54 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(NULL) - -AM_LDFLAGS = \ - $(COVERAGE_LDFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - gbproxy_test.ok \ - $(NULL) - -noinst_PROGRAMS = \ - gbproxy_test \ - $(NULL) - -gbproxy_test_SOURCES = \ - gbproxy_test.c \ - $(NULL) - -gbproxy_test_LDFLAGS = \ - -Wl,--wrap=RAND_bytes \ - $(NULL) - -gbproxy_test_LDADD = \ - $(top_builddir)/src/gprs/gb_proxy.o \ - $(top_builddir)/src/gprs/gb_proxy_patch.o \ - $(top_builddir)/src/gprs/gb_proxy_peer.o \ - $(top_builddir)/src/gprs/gb_proxy_tlli.o \ - $(top_builddir)/src/gprs/gprs_gb_parse.o \ - $(top_builddir)/src/gprs/gprs_llc_parse.o \ - $(top_builddir)/src/gprs/crc24.o \ - $(top_builddir)/src/gprs/gprs_utils.o \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(top_builddir)/src/libbsc/libbsc.a \ - $(top_builddir)/src/libtrau/libtrau.a \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGB_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOVTY_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(LIBRARY_DL) \ - $(LIBCRYPTO_LIBS) \ - -lrt \ - $(NULL) diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c deleted file mode 100644 index 577daa95e..000000000 --- a/tests/gbproxy/gbproxy_test.c +++ /dev/null @@ -1,4971 +0,0 @@ -/* test routines for gbproxy - * send NS messages to the gbproxy and dumps what happens - * (C) 2013 by sysmocom s.f.m.c. GmbH - * Author: Jacob Erlbeck <jerlbeck@sysmocom.de> - */ - -#undef _GNU_SOURCE -#define _GNU_SOURCE - -#include <stdio.h> -#include <stdlib.h> -#include <stdint.h> -#include <string.h> -#include <getopt.h> -#include <dlfcn.h> -#include <time.h> -#include <sys/types.h> -#include <sys/socket.h> - -#include <osmocom/core/msgb.h> -#include <osmocom/core/application.h> -#include <osmocom/core/utils.h> -#include <osmocom/core/logging.h> -#include <osmocom/core/talloc.h> -#include <osmocom/core/signal.h> -#include <osmocom/core/rate_ctr.h> -#include <osmocom/gsm/tlv.h> -#include <osmocom/gsm/gsm_utils.h> -#include <osmocom/gsm/protocol/gsm_04_08_gprs.h> -#include <osmocom/gprs/gprs_msgb.h> -#include <osmocom/gprs/gprs_ns.h> -#include <osmocom/gprs/gprs_bssgp.h> - -#include <openbsc/gb_proxy.h> -#include <openbsc/gprs_utils.h> -#include <openbsc/gprs_llc.h> -#include <openbsc/gprs_gb_parse.h> -#include <openbsc/debug.h> - -#include <openssl/rand.h> - -#define REMOTE_BSS_ADDR 0x01020304 -#define REMOTE_SGSN_ADDR 0x05060708 - -#define SGSN_NSEI 0x0100 - -#define REMOTE_SGSN2_ADDR 0x15161718 -#define SGSN2_NSEI 0x0102 - -#define MATCH_ANY (-1) - -struct gbproxy_config gbcfg = {0}; - -struct llist_head *received_messages = NULL; - -/* override, requires '-Wl,--wrap=RAND_bytes' */ -int __real_RAND_bytes(unsigned char *buf, int num); -int mock_RAND_bytes(unsigned char *buf, int num); -int (*RAND_bytes_cb)(unsigned char *, int) = - &mock_RAND_bytes; - -int __wrap_RAND_bytes(unsigned char *buf, int num) -{ - return (*RAND_bytes_cb)(buf, num); -} - -static int rand_seq_num = 0; -int mock_RAND_bytes(unsigned char *buf, int num) -{ - uint32_t val; - - OSMO_ASSERT(num == sizeof(val)); - OSMO_ASSERT(__real_RAND_bytes(buf, num) == 1); - - val = 0x00dead00 + rand_seq_num; - - rand_seq_num++; - - memcpy(buf, &val, num); - - return 1; -} - -static void cleanup_test() -{ - rand_seq_num = 0; -} - -static int dump_global(FILE *stream, int indent) -{ - unsigned int i; - const struct rate_ctr_group_desc *desc; - int rc; - - rc = fprintf(stream, "%*sGbproxy global:\n", indent, ""); - if (rc < 0) - return rc; - - desc = gbcfg.ctrg->desc; - - for (i = 0; i < desc->num_ctr; i++) { - struct rate_ctr *ctr = &gbcfg.ctrg->ctr[i]; - if (ctr->current) { - rc = fprintf(stream, "%*s %s: %llu\n", - indent, "", - desc->ctr_desc[i].description, - (long long)ctr->current); - - if (rc < 0) - return rc; - } - } - - return 0; -} - -static int dump_peers(FILE *stream, int indent, time_t now, - struct gbproxy_config *cfg) -{ - struct gbproxy_peer *peer; - struct gprs_ra_id raid; - unsigned int i; - const struct rate_ctr_group_desc *desc; - int rc; - - rc = fprintf(stream, "%*sPeers:\n", indent, ""); - if (rc < 0) - return rc; - - llist_for_each_entry(peer, &cfg->bts_peers, list) { - struct gbproxy_link_info *link_info; - struct gbproxy_patch_state *state = &peer->patch_state; - gsm48_parse_ra(&raid, peer->ra); - - rc = fprintf(stream, "%*s NSEI %u, BVCI %u, %sblocked, " - "RAI %u-%u-%u-%u\n", - indent, "", - peer->nsei, peer->bvci, - peer->blocked ? "" : "not ", - raid.mcc, raid.mnc, raid.lac, raid.rac); - - if (rc < 0) - return rc; - - desc = peer->ctrg->desc; - - for (i = 0; i < desc->num_ctr; i++) { - struct rate_ctr *ctr = &peer->ctrg->ctr[i]; - if (ctr->current) { - rc = fprintf(stream, "%*s %s: %llu\n", - indent, "", - desc->ctr_desc[i].description, - (long long)ctr->current); - - if (rc < 0) - return rc; - } - } - - fprintf(stream, "%*s TLLI-Cache: %d\n", - indent, "", state->logical_link_count); - llist_for_each_entry(link_info, &state->logical_links, list) { - char mi_buf[200]; - time_t age = now ? now - link_info->timestamp : 0; - int stored_msgs = 0; - struct llist_head *iter; - enum gbproxy_match_id match_id; - llist_for_each(iter, &link_info->stored_msgs) - stored_msgs++; - - if (link_info->imsi_len > 0) { - snprintf(mi_buf, sizeof(mi_buf), "(invalid)"); - gsm48_mi_to_string(mi_buf, sizeof(mi_buf), - link_info->imsi, - link_info->imsi_len); - } else { - snprintf(mi_buf, sizeof(mi_buf), "(none)"); - } - fprintf(stream, "%*s TLLI %08x", - indent, "", link_info->tlli.current); - if (link_info->tlli.assigned) - fprintf(stream, "/%08x", link_info->tlli.assigned); - if (link_info->sgsn_tlli.current) { - fprintf(stream, " -> %08x", - link_info->sgsn_tlli.current); - if (link_info->sgsn_tlli.assigned) - fprintf(stream, "/%08x", - link_info->sgsn_tlli.assigned); - } - fprintf(stream, ", IMSI %s, AGE %d", - mi_buf, (int)age); - - if (stored_msgs) - fprintf(stream, ", STORED %d", stored_msgs); - - for (match_id = 0; match_id < ARRAY_SIZE(cfg->matches); - ++match_id) { - if (cfg->matches[match_id].enable && - link_info->is_matching[match_id]) { - fprintf(stream, ", IMSI matches"); - break; - } - } - - if (link_info->imsi_acq_pending) - fprintf(stream, ", IMSI acquisition in progress"); - - if (cfg->route_to_sgsn2) - fprintf(stream, ", SGSN NSEI %d", - link_info->sgsn_nsei); - - if (link_info->is_deregistered) - fprintf(stream, ", DE-REGISTERED"); - - rc = fprintf(stream, "\n"); - if (rc < 0) - return rc; - } - } - - return 0; -} - -const uint8_t *convert_ra(struct gprs_ra_id *raid) -{ - static uint8_t buf[6]; - gsm48_construct_ra(buf, raid); - return buf; -} - -/* DTAP - Attach Request */ -static const unsigned char dtap_attach_req[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, - 0x05, 0xf4, 0xfb, 0xc5, 0x46, 0x79, 0x11, 0x22, - 0x33, 0x40, 0x50, 0x60, 0x19, 0x18, 0xb3, 0x43, - 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60, 0x80, 0x9a, - 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80, 0xba, 0xc8, - 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00, -}; - -/* DTAP - Attach Request (invalid RAI) */ -static const unsigned char dtap_attach_req2[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, - 0x05, 0xf4, 0xfb, 0x00, 0xbe, 0xef, 0x99, 0x99, - 0x99, 0x40, 0x50, 0x60, 0x19, 0x18, 0xb3, 0x43, - 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60, 0x80, 0x9a, - 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80, 0xba, 0xc8, - 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00, -}; - -/* DTAP - Attach Request (P-TMSI 0x3f32b700) */ -static const unsigned char dtap_attach_req3[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, - 0x05, 0xf4, 0xef, 0xe2, 0xb7, 0x00, 0x11, 0x22, - 0x33, 0x40, 0x50, 0x60, 0x19, 0x18, 0xb3, 0x43, - 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60, 0x80, 0x9a, - 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80, 0xba, 0xc8, - 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00, -}; - -/* DTAP - Attach Request (IMSI 12131415161718) */ -static const unsigned char dtap_attach_req4[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, - 0x08, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, 0x19, - 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, - 0x60, 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, - 0x80, 0xba, 0xc8, 0xc6, 0x62, 0x00, 0x60, 0x80, - 0x00, -}; - -/* DTAP - Identity Request */ -static const unsigned char dtap_identity_req[] = { - 0x08, 0x15, 0x01 -}; - -/* DTAP - Identity Response */ -static const unsigned char dtap_identity_resp[] = { - 0x08, 0x16, 0x08, 0x11, 0x12, 0x13, 0x14, 0x15, - 0x16, 0x17, 0x18 -}; - -/* DTAP - Identity Response, IMSI 2 */ -static const unsigned char dtap_identity2_resp[] = { - 0x08, 0x16, 0x08, 0x11, 0x12, 0x99, 0x99, 0x99, - 0x16, 0x17, 0x18 -}; - -/* DTAP - Identity Response, IMSI 3 */ -static const unsigned char dtap_identity3_resp[] = { - 0x08, 0x16, 0x08, 0x11, 0x12, 0x99, 0x99, 0x99, - 0x26, 0x27, 0x28 -}; - -/* DTAP - Attach Accept */ -static const unsigned char dtap_attach_acc[] = { - 0x08, 0x02, 0x01, 0x49, 0x04, 0x21, 0x63, 0x54, - 0x40, 0x50, 0x60, 0x19, 0xcd, 0xd7, 0x08, 0x17, - 0x16, 0x18, 0x05, 0xf4, 0xef, 0xe2, 0xb7, 0x00 -}; - -/* DTAP - Attach Accept, P-TMSI 2 */ -static const unsigned char dtap_attach_acc2[] = { - 0x08, 0x02, 0x01, 0x49, 0x04, 0x21, 0x63, 0x54, - 0x40, 0x50, 0x60, 0x19, 0xcd, 0xd7, 0x08, 0x17, - 0x16, 0x18, 0x05, 0xf4, 0xe0, 0x98, 0x76, 0x54 -}; - -/* DTAP - Attach Complete */ -static const unsigned char dtap_attach_complete[] = { - 0x08, 0x03 -}; - -/* DTAP - Attach Reject (GPRS services not allowed) */ -static const unsigned char dtap_attach_rej7[] = { - 0x08, 0x04, 0x07 -}; - -/* DTAP - GMM Information */ -static const unsigned char dtap_gmm_information[] = { - 0x08, 0x21 -}; - -/* DTAP - Routing Area Update Request */ -static const unsigned char dtap_ra_upd_req[] = { - 0x08, 0x08, 0x10, 0x11, 0x22, 0x33, 0x40, 0x50, - 0x60, 0x1d, 0x19, 0x13, 0x42, 0x33, 0x57, 0x2b, - 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48, 0x50, 0xc8, - 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8, 0x48, 0x02, - 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02, 0x00, 0x19, - 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27, 0x07, 0x04, - 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02, 0x20, 0x00 -}; - -/* DTAP - Routing Area Update Accept */ -static const unsigned char dtap_ra_upd_acc[] = { - 0x08, 0x09, 0x00, 0x49, 0x21, 0x63, 0x54, - 0x40, 0x50, 0x60, 0x19, 0x54, 0xab, 0xb3, 0x18, - 0x05, 0xf4, 0xef, 0xe2, 0xb7, 0x00, 0x17, 0x16, -}; - -/* DTAP - Routing Area Update Accept, P-TMSI 2 */ -static const unsigned char dtap_ra_upd_acc2[] = { - 0x08, 0x09, 0x00, 0x49, 0x21, 0x63, 0x54, - 0x40, 0x50, 0x60, 0x19, 0x54, 0xab, 0xb3, 0x18, - 0x05, 0xf4, 0xe0, 0x98, 0x76, 0x54, 0x17, 0x16, -}; - -/* DTAP - Routing Area Update Accept, P-TMSI 3 */ -static const unsigned char dtap_ra_upd_acc3[] = { - 0x08, 0x09, 0x00, 0x49, 0x21, 0x63, 0x54, - 0x40, 0x50, 0x60, 0x19, 0x54, 0xab, 0xb3, 0x18, - 0x05, 0xf4, 0xe0, 0x54, 0x32, 0x10, 0x17, 0x16, -}; - -/* DTAP - Routing Area Update Complete */ -static const unsigned char dtap_ra_upd_complete[] = { - 0x08, 0x0a -}; - -/* DTAP - Routing Area Update Reject */ -/* cause = 10 ("Implicitly detached"), force_standby = 0 */ -static const unsigned char dtap_ra_upd_rej[] = { - 0x08, 0x0b, 0x0a, 0x00, -}; - -/* DTAP - Activate PDP Context Request */ -static const unsigned char dtap_act_pdp_ctx_req[] = { - 0x0a, 0x41, 0x05, 0x03, 0x0c, 0x00, - 0x00, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x01, 0x21, 0x28, 0x03, - 0x02, 0x61, 0x62, 0x27, 0x14, 0x80, 0x80, 0x21, - 0x10, 0x01, 0x00, 0x00, 0x10, 0x81, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x83, 0x06, 0x00, 0x00, 0x00, - 0x00 -}; - -/* DTAP - Detach Request (MO) */ -/* normal detach, power_off = 1 */ -static const unsigned char dtap_detach_po_req[] = { - 0x08, 0x05, 0x09, 0x18, 0x05, 0xf4, 0xef, 0xe2, - 0xb7, 0x00, 0x19, 0x03, 0xb9, 0x97, 0xcb -}; - -/* DTAP - Detach Request (MO) */ -/* normal detach, power_off = 0 */ -static const unsigned char dtap_detach_req[] = { - 0x08, 0x05, 0x01, 0x18, 0x05, 0xf4, 0xef, 0xe2, - 0xb7, 0x00, 0x19, 0x03, 0xb9, 0x97, 0xcb -}; - -/* DTAP - Detach Accept (MO) */ -static const unsigned char dtap_detach_acc[] = { - 0x08, 0x06, 0x00 -}; - -/* DTAP - Detach Request (MT) */ -/* normal detach, reattach required, implicitly detached */ -static const unsigned char dtap_mt_detach_rea_req[] = { - 0x08, 0x05, 0x01, 0x25, 0x0a -}; - -/* DTAP - Detach Request (MT) */ -/* normal detach, reattach not required, implicitly detached */ -static const unsigned char dtap_mt_detach_req[] = { - 0x08, 0x05, 0x02, 0x25, 0x0a -}; - -/* DTAP - Detach Accept (MT) */ -static const unsigned char dtap_mt_detach_acc[] = { - 0x08, 0x06 -}; - -/* GPRS-LLC - SAPI: LLGMM, U, XID */ -static const unsigned char llc_u_xid_ul[] = { - 0x41, 0xfb, 0x01, 0x00, 0x0e, 0x00, 0x64, 0x11, - 0x05, 0x16, 0x01, 0x90, 0x66, 0xb3, 0x28 -}; - -/* GPRS-LLC - SAPI: LLGMM, U, XID */ -static const unsigned char llc_u_xid_dl[] = { - 0x41, 0xfb, 0x30, 0x84, 0x10, 0x61, 0xb6, 0x64, - 0xe4, 0xa9, 0x1a, 0x9e -}; - -/* GPRS-LLC - SAPI: LL11, UI, NSAPI 5, DNS query */ -static const unsigned char llc_ui_ll11_dns_query_ul[] = { - 0x0b, 0xc0, 0x01, 0x65, 0x00, 0x00, 0x00, 0x45, - 0x00, 0x00, 0x38, 0x95, 0x72, 0x00, 0x00, 0x45, - 0x11, 0x20, 0x85, 0x0a, 0xc0, 0x07, 0xe4, 0xac, - 0x10, 0x01, 0x0a, 0xad, 0xab, 0x00, 0x35, 0x00, - 0x24, 0x0e, 0x1c, 0x3b, 0xe0, 0x01, 0x00, 0x00, - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0x6d, 0x05, 0x68, 0x65, 0x69, 0x73, 0x65, 0x02, - 0x64, 0x65, 0x00, 0x00, 0x01, 0x00, 0x01, 0x47, - 0x8f, 0x07 -}; - -/* GPRS-LLC - SAPI: LL11, UI, NSAPI 5, DNS query */ -static const unsigned char llc_ui_ll11_dns_resp_dl[] = { - 0x4b, 0xc0, 0x01, 0x65, 0x00, 0x00, 0x00, 0x45, - 0x00, 0x00, 0xc6, 0x00, 0x00, 0x40, 0x00, 0x3e, - 0x11, 0x7c, 0x69, 0xac, 0x10, 0x01, 0x0a, 0x0a, - 0xc0, 0x07, 0xe4, 0x00, 0x35, 0xad, 0xab, 0x00, - 0xb2, 0x74, 0x4e, 0x3b, 0xe0, 0x81, 0x80, 0x00, - 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x00, 0x01, - 0x6d, 0x05, 0x68, 0x65, 0x69, 0x73, 0x65, 0x02, - 0x64, 0x65, 0x00, 0x00, 0x01, 0x00, 0x01, 0xc0, - 0x0c, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x0e, - 0x10, 0x00, 0x04, 0xc1, 0x63, 0x90, 0x58, 0xc0, - 0x0e, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x0e, - 0x10, 0x00, 0x16, 0x03, 0x6e, 0x73, 0x32, 0x0c, - 0x70, 0x6f, 0x70, 0x2d, 0x68, 0x61, 0x6e, 0x6e, - 0x6f, 0x76, 0x65, 0x72, 0x03, 0x6e, 0x65, 0x74, - 0x00, 0xc0, 0x0e, 0x00, 0x02, 0x00, 0x01, 0x00, - 0x00, 0x0e, 0x10, 0x00, 0x10, 0x02, 0x6e, 0x73, - 0x01, 0x73, 0x08, 0x70, 0x6c, 0x75, 0x73, 0x6c, - 0x69, 0x6e, 0x65, 0xc0, 0x14, 0xc0, 0x0e, 0x00, - 0x02, 0x00, 0x01, 0x00, 0x00, 0x0e, 0x10, 0x00, - 0x05, 0x02, 0x6e, 0x73, 0xc0, 0x0e, 0xc0, 0x0e, - 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x0e, 0x10, - 0x00, 0x05, 0x02, 0x6e, 0x73, 0xc0, 0x5f, 0xc0, - 0x0e, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x0e, - 0x10, 0x00, 0x12, 0x02, 0x6e, 0x73, 0x0c, 0x70, - 0x6f, 0x70, 0x2d, 0x68, 0x61, 0x6e, 0x6e, 0x6f, - 0x76, 0x65, 0x72, 0xc0, 0x14, 0xaa, 0xdf, 0x31 -}; - -static int gprs_process_message(struct gprs_ns_inst *nsi, const char *text, - struct sockaddr_in *peer, const unsigned char* data, - size_t data_len); - -static void send_ns_reset(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr, - enum ns_cause cause, uint16_t nsvci, uint16_t nsei) -{ - /* GPRS Network Service, PDU type: NS_RESET, - */ - unsigned char msg[12] = { - 0x02, 0x00, 0x81, 0x01, 0x01, 0x82, 0x11, 0x22, - 0x04, 0x82, 0x11, 0x22 - }; - - msg[3] = cause; - msg[6] = nsvci / 256; - msg[7] = nsvci % 256; - msg[10] = nsei / 256; - msg[11] = nsei % 256; - - gprs_process_message(nsi, "RESET", src_addr, msg, sizeof(msg)); -} - -static void send_ns_reset_ack(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr, - uint16_t nsvci, uint16_t nsei) -{ - /* GPRS Network Service, PDU type: NS_RESET_ACK, - */ - unsigned char msg[9] = { - 0x03, 0x01, 0x82, 0x11, 0x22, - 0x04, 0x82, 0x11, 0x22 - }; - - msg[3] = nsvci / 256; - msg[4] = nsvci % 256; - msg[7] = nsei / 256; - msg[8] = nsei % 256; - - gprs_process_message(nsi, "RESET_ACK", src_addr, msg, sizeof(msg)); -} - -static void send_ns_alive(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr) -{ - /* GPRS Network Service, PDU type: NS_ALIVE */ - unsigned char msg[1] = { - 0x0a - }; - - gprs_process_message(nsi, "ALIVE", src_addr, msg, sizeof(msg)); -} - -static void send_ns_alive_ack(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr) -{ - /* GPRS Network Service, PDU type: NS_ALIVE_ACK */ - unsigned char msg[1] = { - 0x0b - }; - - gprs_process_message(nsi, "ALIVE_ACK", src_addr, msg, sizeof(msg)); -} - -static void send_ns_unblock(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr) -{ - /* GPRS Network Service, PDU type: NS_UNBLOCK */ - unsigned char msg[1] = { - 0x06 - }; - - gprs_process_message(nsi, "UNBLOCK", src_addr, msg, sizeof(msg)); -} - -static void send_ns_unblock_ack(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr) -{ - /* GPRS Network Service, PDU type: NS_UNBLOCK_ACK */ - unsigned char msg[1] = { - 0x07 - }; - - gprs_process_message(nsi, "UNBLOCK_ACK", src_addr, msg, sizeof(msg)); -} - -static void send_ns_unitdata(struct gprs_ns_inst *nsi, const char *text, - struct sockaddr_in *src_addr, uint16_t nsbvci, - const unsigned char *bssgp_msg, size_t bssgp_msg_size) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA */ - unsigned char msg[4096] = { - 0x00, 0x00, 0x00, 0x00 - }; - - OSMO_ASSERT(bssgp_msg_size <= sizeof(msg) - 4); - - msg[2] = nsbvci / 256; - msg[3] = nsbvci % 256; - memcpy(msg + 4, bssgp_msg, bssgp_msg_size); - - gprs_process_message(nsi, text ? text : "UNITDATA", src_addr, msg, bssgp_msg_size + 4); -} - -static void send_bssgp_ul_unitdata( - struct gprs_ns_inst *nsi, const char *text, - struct sockaddr_in *src_addr, uint16_t nsbvci, uint32_t tlli, - struct gprs_ra_id *raid, uint16_t cell_id, - const uint8_t *llc_msg, size_t llc_msg_size) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA */ - /* Base Station Subsystem GPRS Protocol: UL_UNITDATA */ - unsigned char msg[4096] = { - 0x01, /* TLLI */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x08, 0x88, /* RAI */ 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, - /* CELL ID */ 0x00, 0x00, 0x00, 0x80, 0x0e, /* LLC LEN */ 0x00, 0x00, - }; - - size_t bssgp_msg_size = 23 + llc_msg_size; - - OSMO_ASSERT(bssgp_msg_size <= sizeof(msg)); - - gsm48_construct_ra(msg + 10, raid); - msg[1] = (uint8_t)(tlli >> 24); - msg[2] = (uint8_t)(tlli >> 16); - msg[3] = (uint8_t)(tlli >> 8); - msg[4] = (uint8_t)(tlli >> 0); - msg[16] = cell_id / 256; - msg[17] = cell_id % 256; - msg[21] = llc_msg_size / 256; - msg[22] = llc_msg_size % 256; - memcpy(msg + 23, llc_msg, llc_msg_size); - - send_ns_unitdata(nsi, text ? text : "BSSGP UL UNITDATA", - src_addr, nsbvci, msg, bssgp_msg_size); -} - -static void send_bssgp_dl_unitdata( - struct gprs_ns_inst *nsi, const char *text, - struct sockaddr_in *src_addr, uint16_t nsbvci, uint32_t tlli, - int with_racap_drx, const uint8_t *imsi, size_t imsi_size, - const uint8_t *llc_msg, size_t llc_msg_size) -{ - /* Base Station Subsystem GPRS Protocol: DL_UNITDATA */ - unsigned char msg[4096] = { - 0x00, /* TLLI */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x20, - 0x16, 0x82, 0x02, 0x58, - }; - unsigned char racap_drx[] = { - 0x13, 0x99, 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, - 0x62, 0x00, 0x60, 0x80, 0x9a, 0xc2, 0xc6, 0x62, - 0x00, 0x60, 0x80, 0xba, 0xc8, 0xc6, 0x62, 0x00, - 0x60, 0x80, 0x00, 0x0a, 0x82, 0x08, 0x02 - }; - - size_t bssgp_msg_size = 0; - - OSMO_ASSERT(51 + imsi_size + llc_msg_size <= sizeof(msg)); - - msg[1] = (uint8_t)(tlli >> 24); - msg[2] = (uint8_t)(tlli >> 16); - msg[3] = (uint8_t)(tlli >> 8); - msg[4] = (uint8_t)(tlli >> 0); - - bssgp_msg_size = 12; - - if (with_racap_drx) { - memcpy(msg + bssgp_msg_size, racap_drx, sizeof(racap_drx)); - bssgp_msg_size += sizeof(racap_drx); - } - - if (imsi) { - OSMO_ASSERT(imsi_size <= 127); - msg[bssgp_msg_size] = BSSGP_IE_IMSI; - msg[bssgp_msg_size + 1] = 0x80 | imsi_size; - memcpy(msg + bssgp_msg_size + 2, imsi, imsi_size); - bssgp_msg_size += 2 + imsi_size; - } - - if ((bssgp_msg_size % 4) != 0) { - size_t abytes = (4 - (bssgp_msg_size + 2) % 4) % 4; - msg[bssgp_msg_size] = BSSGP_IE_ALIGNMENT; - msg[bssgp_msg_size + 1] = 0x80 | abytes; - memset(msg + bssgp_msg_size + 2, 0, abytes); - bssgp_msg_size += 2 + abytes; - } - - msg[bssgp_msg_size] = BSSGP_IE_LLC_PDU; - if (llc_msg_size < 128) { - msg[bssgp_msg_size + 1] = 0x80 | llc_msg_size; - bssgp_msg_size += 2; - } else { - msg[bssgp_msg_size + 1] = llc_msg_size / 256; - msg[bssgp_msg_size + 2] = llc_msg_size % 256; - bssgp_msg_size += 3; - } - memcpy(msg + bssgp_msg_size, llc_msg, llc_msg_size); - bssgp_msg_size += llc_msg_size; - - - send_ns_unitdata(nsi, text ? text : "BSSGP DL UNITDATA", - src_addr, nsbvci, msg, bssgp_msg_size); -} - -static void send_bssgp_reset(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr, - uint16_t bvci) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA, BVCI 0 - * BSSGP RESET */ - unsigned char msg[18] = { - 0x22, 0x04, 0x82, 0x4a, - 0x2e, 0x07, 0x81, 0x08, 0x08, 0x88, 0x11, 0x22, - 0x33, 0x40, 0x50, 0x60, 0x10, 0x00 - }; - - msg[3] = bvci / 256; - msg[4] = bvci % 256; - - send_ns_unitdata(nsi, "BVC_RESET", src_addr, 0, msg, sizeof(msg)); -} - -static void send_bssgp_reset_ack(struct gprs_ns_inst *nsi, - struct sockaddr_in *src_addr, uint16_t bvci) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA, BVCI 0 - * BSSGP RESET_ACK */ - static unsigned char msg[5] = { - 0x23, 0x04, 0x82, 0x00, - 0x00 - }; - - msg[3] = bvci / 256; - msg[4] = bvci % 256; - - send_ns_unitdata(nsi, "BVC_RESET_ACK", src_addr, 0, msg, sizeof(msg)); -} - -static void send_bssgp_suspend(struct gprs_ns_inst *nsi, - struct sockaddr_in *src_addr, - uint32_t tlli, - struct gprs_ra_id *raid) -{ - /* Base Station Subsystem GPRS Protocol, BSSGP SUSPEND */ - unsigned char msg[15] = { - 0x0b, 0x1f, 0x84, /* TLLI */ 0xff, 0xff, 0xff, 0xff, 0x1b, - 0x86, /* RAI */ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - }; - - msg[3] = (uint8_t)(tlli >> 24); - msg[4] = (uint8_t)(tlli >> 16); - msg[5] = (uint8_t)(tlli >> 8); - msg[6] = (uint8_t)(tlli >> 0); - - gsm48_construct_ra(msg + 9, raid); - - send_ns_unitdata(nsi, "BVC_SUSPEND", src_addr, 0, msg, sizeof(msg)); -} - -static void send_bssgp_suspend_ack(struct gprs_ns_inst *nsi, - struct sockaddr_in *src_addr, - uint32_t tlli, - struct gprs_ra_id *raid) -{ - /* Base Station Subsystem GPRS Protocol, BSSGP SUSPEND ACK */ - unsigned char msg[18] = { - 0x0c, 0x1f, 0x84, /* TLLI */ 0xff, 0xff, 0xff, 0xff, 0x1b, - 0x86, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1d, - 0x81, 0x01 - }; - - msg[3] = (uint8_t)(tlli >> 24); - msg[4] = (uint8_t)(tlli >> 16); - msg[5] = (uint8_t)(tlli >> 8); - msg[6] = (uint8_t)(tlli >> 0); - - gsm48_construct_ra(msg + 9, raid); - - send_ns_unitdata(nsi, "BVC_SUSPEND_ACK", src_addr, 0, msg, sizeof(msg)); -} - -static void send_bssgp_llc_discarded(struct gprs_ns_inst *nsi, - struct sockaddr_in *src_addr, - uint16_t bvci, uint32_t tlli, - unsigned n_frames, unsigned n_octets) -{ - /* Base Station Subsystem GPRS Protocol: LLC-DISCARDED (0x2c) */ - unsigned char msg[] = { - 0x2c, 0x1f, 0x84, /* TLLI */ 0xff, 0xff, 0xff, 0xff, 0x0f, - 0x81, /* n frames */ 0xff, 0x04, 0x82, /* BVCI */ 0xff, 0xff, 0x25, 0x83, - /* n octets */ 0xff, 0xff, 0xff - }; - - msg[3] = (uint8_t)(tlli >> 24); - msg[4] = (uint8_t)(tlli >> 16); - msg[5] = (uint8_t)(tlli >> 8); - msg[6] = (uint8_t)(tlli >> 0); - msg[9] = (uint8_t)(n_frames); - msg[12] = (uint8_t)(bvci >> 8); - msg[13] = (uint8_t)(bvci >> 0); - msg[16] = (uint8_t)(n_octets >> 16); - msg[17] = (uint8_t)(n_octets >> 8); - msg[18] = (uint8_t)(n_octets >> 0); - - send_ns_unitdata(nsi, "LLC_DISCARDED", src_addr, 0, msg, sizeof(msg)); -} - -static void send_bssgp_paging(struct gprs_ns_inst *nsi, - struct sockaddr_in *src_addr, - const uint8_t *imsi, size_t imsi_size, - struct gprs_ra_id *raid, uint32_t ptmsi) -{ - /* Base Station Subsystem GPRS Protocol, BSSGP SUSPEND */ - unsigned char msg[100] = { - 0x06, - }; - - const unsigned char drx_ie[] = {0x0a, 0x82, 0x07, 0x04}; - const unsigned char qos_ie[] = {0x18, 0x83, 0x00, 0x00, 0x00}; - - size_t bssgp_msg_size = 1; - - if (imsi) { - OSMO_ASSERT(imsi_size <= 127); - msg[bssgp_msg_size] = BSSGP_IE_IMSI; - msg[bssgp_msg_size + 1] = 0x80 | imsi_size; - memcpy(msg + bssgp_msg_size + 2, imsi, imsi_size); - bssgp_msg_size += 2 + imsi_size; - } - - memcpy(msg + bssgp_msg_size, drx_ie, sizeof(drx_ie)); - bssgp_msg_size += sizeof(drx_ie); - - if (raid) { - msg[bssgp_msg_size] = BSSGP_IE_ROUTEING_AREA; - msg[bssgp_msg_size+1] = 0x86; - gsm48_construct_ra(msg + bssgp_msg_size + 2, raid); - bssgp_msg_size += 8; - } - - memcpy(msg + bssgp_msg_size, qos_ie, sizeof(qos_ie)); - bssgp_msg_size += sizeof(qos_ie); - - if (ptmsi != GSM_RESERVED_TMSI) { - const uint32_t ptmsi_be = htonl(ptmsi); - msg[bssgp_msg_size] = BSSGP_IE_TMSI; - msg[bssgp_msg_size+1] = 0x84; - memcpy(msg + bssgp_msg_size + 2, &ptmsi_be, 4); - bssgp_msg_size += 6; - } - - send_ns_unitdata(nsi, "PAGING_PS", src_addr, 0, msg, bssgp_msg_size); -} - -static void send_bssgp_flow_control_bvc(struct gprs_ns_inst *nsi, - struct sockaddr_in *src_addr, - uint16_t bvci, uint8_t tag) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA, - * BSSGP FLOW_CONTROL_BVC */ - unsigned char msg[] = { - 0x26, 0x1e, 0x81, /* Tag */ 0xff, 0x05, 0x82, 0x01, 0xdc, - 0x03, 0x82, 0x02, 0x76, 0x01, 0x82, 0x00, 0x50, - 0x1c, 0x82, 0x02, 0x58, 0x06, 0x82, 0x00, 0x03 - }; - - msg[3] = tag; - - send_ns_unitdata(nsi, "FLOW_CONTROL_BVC", src_addr, bvci, - msg, sizeof(msg)); -} - -static void send_bssgp_flow_control_bvc_ack(struct gprs_ns_inst *nsi, - struct sockaddr_in *src_addr, - uint16_t bvci, uint8_t tag) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA, - * BSSGP FLOW_CONTROL_BVC_ACK */ - unsigned char msg[] = { - 0x27, 0x1e, 0x81, /* Tag */ 0xce - }; - - msg[3] = tag; - - send_ns_unitdata(nsi, "FLOW_CONTROL_BVC_ACK", src_addr, bvci, - msg, sizeof(msg)); -} - -static void send_llc_ul_ui( - struct gprs_ns_inst *nsi, const char *text, - struct sockaddr_in *src_addr, uint16_t nsbvci, uint32_t tlli, - struct gprs_ra_id *raid, uint16_t cell_id, - unsigned sapi, unsigned nu, - const uint8_t *msg, size_t msg_size) -{ - unsigned char llc_msg[4096] = { - 0x00, 0xc0, 0x01 - }; - - size_t llc_msg_size = 3 + msg_size + 3; - uint8_t e_bit = 0; - uint8_t pm_bit = 1; - unsigned fcs; - - nu &= 0x01ff; - - OSMO_ASSERT(llc_msg_size <= sizeof(llc_msg)); - - llc_msg[0] = (sapi & 0x0f); - llc_msg[1] = 0xc0 | (nu >> 6); /* UI frame */ - llc_msg[2] = (nu << 2) | ((e_bit & 1) << 1) | (pm_bit & 1); - - memcpy(llc_msg + 3, msg, msg_size); - - fcs = gprs_llc_fcs(llc_msg, msg_size + 3); - llc_msg[3 + msg_size + 0] = (uint8_t)(fcs >> 0); - llc_msg[3 + msg_size + 1] = (uint8_t)(fcs >> 8); - llc_msg[3 + msg_size + 2] = (uint8_t)(fcs >> 16); - - send_bssgp_ul_unitdata(nsi, text ? text : "LLC UI", - src_addr, nsbvci, tlli, raid, cell_id, - llc_msg, llc_msg_size); -} - -static void send_llc_dl_ui( - struct gprs_ns_inst *nsi, const char *text, - struct sockaddr_in *src_addr, uint16_t nsbvci, uint32_t tlli, - int with_racap_drx, const uint8_t *imsi, size_t imsi_size, - unsigned sapi, unsigned nu, - const uint8_t *msg, size_t msg_size) -{ - /* GPRS Network Service, PDU type: NS_UNITDATA */ - /* Base Station Subsystem GPRS Protocol: UL_UNITDATA */ - unsigned char llc_msg[4096] = { - 0x00, 0x00, 0x01 - }; - - size_t llc_msg_size = 3 + msg_size + 3; - uint8_t e_bit = 0; - uint8_t pm_bit = 1; - unsigned fcs; - - nu &= 0x01ff; - - OSMO_ASSERT(llc_msg_size <= sizeof(llc_msg)); - - llc_msg[0] = 0x40 | (sapi & 0x0f); - llc_msg[1] = 0xc0 | (nu >> 6); /* UI frame */ - llc_msg[2] = (nu << 2) | ((e_bit & 1) << 1) | (pm_bit & 1); - - memcpy(llc_msg + 3, msg, msg_size); - - fcs = gprs_llc_fcs(llc_msg, msg_size + 3); - llc_msg[3 + msg_size + 0] = (uint8_t)(fcs >> 0); - llc_msg[3 + msg_size + 1] = (uint8_t)(fcs >> 8); - llc_msg[3 + msg_size + 2] = (uint8_t)(fcs >> 16); - - send_bssgp_dl_unitdata(nsi, text ? text : "LLC UI", - src_addr, nsbvci, tlli, - with_racap_drx, imsi, imsi_size, - llc_msg, llc_msg_size); -} - - -static void setup_ns(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr, - uint16_t nsvci, uint16_t nsei) -{ - printf("Setup NS-VC: remote 0x%08x:%d, " - "NSVCI 0x%04x(%d), NSEI 0x%04x(%d)\n\n", - ntohl(src_addr->sin_addr.s_addr), ntohs(src_addr->sin_port), - nsvci, nsvci, nsei, nsei); - - send_ns_reset(nsi, src_addr, NS_CAUSE_OM_INTERVENTION, nsvci, nsei); - send_ns_alive(nsi, src_addr); - send_ns_unblock(nsi, src_addr); - send_ns_alive_ack(nsi, src_addr); -} - -static void setup_bssgp(struct gprs_ns_inst *nsi, struct sockaddr_in *src_addr, - uint16_t bvci) -{ - printf("Setup BSSGP: remote 0x%08x:%d, " - "BVCI 0x%04x(%d)\n\n", - ntohl(src_addr->sin_addr.s_addr), ntohs(src_addr->sin_port), - bvci, bvci); - - send_bssgp_reset(nsi, src_addr, bvci); -} - -static void connect_sgsn(struct gprs_ns_inst *nsi, struct sockaddr_in *sgsn_peer, - uint32_t sgsn_nsei) -{ - gprs_ns_nsip_connect(nsi, sgsn_peer, sgsn_nsei, sgsn_nsei+1); - send_ns_reset_ack(nsi, sgsn_peer, sgsn_nsei+1, sgsn_nsei); - send_ns_alive_ack(nsi, sgsn_peer); - send_ns_unblock_ack(nsi, sgsn_peer); - send_ns_alive(nsi, sgsn_peer); -} - -static void configure_sgsn_peer(struct sockaddr_in *sgsn_peer) -{ - sgsn_peer->sin_family = AF_INET; - sgsn_peer->sin_port = htons(32000); - sgsn_peer->sin_addr.s_addr = htonl(REMOTE_SGSN_ADDR); -} - -static void configure_sgsn2_peer(struct sockaddr_in *sgsn_peer) -{ - sgsn_peer->sin_family = AF_INET; - sgsn_peer->sin_port = htons(32001); - sgsn_peer->sin_addr.s_addr = htonl(REMOTE_SGSN2_ADDR); -} - -static void configure_bss_peers(struct sockaddr_in *bss_peers, size_t size) -{ - size_t i; - - for (i = 0; i < size; ++i) { - bss_peers[i].sin_family = AF_INET; - bss_peers[i].sin_port = htons((i + 1) * 1111); - bss_peers[i].sin_addr.s_addr = htonl(REMOTE_BSS_ADDR); - } -} - -int gprs_ns_rcvmsg(struct gprs_ns_inst *nsi, struct msgb *msg, - struct sockaddr_in *saddr, enum gprs_ns_ll ll); - -/* override */ -int gprs_ns_callback(enum gprs_ns_evt event, struct gprs_nsvc *nsvc, - struct msgb *msg, uint16_t bvci) -{ - printf("CALLBACK, event %d, msg length %zu, bvci 0x%04x\n%s\n\n", - event, msgb_bssgp_len(msg), bvci, - osmo_hexdump(msgb_l2(msg), msgb_l2len(msg))); - - switch (event) { - case GPRS_NS_EVT_UNIT_DATA: - return gbprox_rcvmsg(&gbcfg, msg, nsvc->nsei, bvci, nsvc->nsvci); - default: - break; - } - return 0; -} - -/* override */ -ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, - const struct sockaddr *dest_addr, socklen_t addrlen) -{ - typedef ssize_t (*sendto_t)(int, const void *, size_t, int, - const struct sockaddr *, socklen_t); - static sendto_t real_sendto = NULL; - uint32_t dest_host = htonl(((struct sockaddr_in *)dest_addr)->sin_addr.s_addr); - int dest_port = htons(((struct sockaddr_in *)dest_addr)->sin_port); - - if (!real_sendto) - real_sendto = dlsym(RTLD_NEXT, "sendto"); - - if (dest_host == REMOTE_BSS_ADDR) - printf("MESSAGE to BSS at 0x%08x:%d, msg length %zu\n%s\n\n", - dest_host, dest_port, - len, osmo_hexdump(buf, len)); - else if (dest_host == REMOTE_SGSN_ADDR) - printf("MESSAGE to SGSN at 0x%08x:%d, msg length %zu\n%s\n\n", - dest_host, dest_port, - len, osmo_hexdump(buf, len)); - else if (dest_host == REMOTE_SGSN2_ADDR) - printf("MESSAGE to SGSN 2 at 0x%08x:%d, msg length %zu\n%s\n\n", - dest_host, dest_port, - len, osmo_hexdump(buf, len)); - else - return real_sendto(sockfd, buf, len, flags, dest_addr, addrlen); - - return len; -} - -/* override */ -int gprs_ns_sendmsg(struct gprs_ns_inst *nsi, struct msgb *msg) -{ - typedef int (*gprs_ns_sendmsg_t)(struct gprs_ns_inst *nsi, struct msgb *msg); - static gprs_ns_sendmsg_t real_gprs_ns_sendmsg = NULL; - uint16_t bvci = msgb_bvci(msg); - uint16_t nsei = msgb_nsei(msg); - - size_t len = msgb_length(msg); - - if (!real_gprs_ns_sendmsg) - real_gprs_ns_sendmsg = dlsym(RTLD_NEXT, "gprs_ns_sendmsg"); - - if (nsei == SGSN_NSEI) - printf("NS UNITDATA MESSAGE to SGSN, BVCI 0x%04x, " - "msg length %zu (%s)\n", - bvci, len, __func__); - else if (nsei == SGSN2_NSEI) - printf("NS UNITDATA MESSAGE to SGSN 2, BVCI 0x%04x, " - "msg length %zu (%s)\n", - bvci, len, __func__); - else - printf("NS UNITDATA MESSAGE to BSS, BVCI 0x%04x, " - "msg length %zu (%s)\n", - bvci, len, __func__); - - if (received_messages) { - struct msgb *msg_copy; - msg_copy = gprs_msgb_copy(msg, "received_messages"); - llist_add_tail(&msg_copy->list, received_messages); - } - - return real_gprs_ns_sendmsg(nsi, msg); -} - -/* Get the next message from the receive FIFO - * - * \returns a pointer to the message which will be invalidated at the next call - * to expect_msg. Returns NULL, if there is no message left. - */ -static struct msgb *expect_msg(void) -{ - static struct msgb *msg = NULL; - - msgb_free(msg); - msg = NULL; - - if (!received_messages) - return NULL; - - if (llist_empty(received_messages)) - return NULL; - - msg = llist_entry(received_messages->next, struct msgb, list); - llist_del(&msg->list); - - return msg; -} - -struct expect_result { - struct msgb *msg; - struct gprs_gb_parse_context parse_ctx; -}; - -static struct expect_result *expect_bssgp_msg( - int match_nsei, int match_bvci, int match_pdu_type) -{ - static struct expect_result result; - static const struct expect_result empty_result = {0,}; - static struct msgb *msg; - uint16_t nsei; - int rc; - - memcpy(&result, &empty_result, sizeof(result)); - - msg = expect_msg(); - if (!msg) - return NULL; - - nsei = msgb_nsei(msg); - - if (match_nsei != MATCH_ANY && match_nsei != nsei) { - fprintf(stderr, "%s: NSEI mismatch (expected %u, got %u)\n", - __func__, match_nsei, nsei); - return NULL; - } - - if (match_bvci != MATCH_ANY && match_bvci != msgb_bvci(msg)) { - fprintf(stderr, "%s: BVCI mismatch (expected %u, got %u)\n", - __func__, match_bvci, msgb_bvci(msg)); - return NULL; - } - - result.msg = msg; - - result.parse_ctx.to_bss = nsei != SGSN_NSEI && nsei != SGSN2_NSEI; - result.parse_ctx.peer_nsei = nsei; - - if (!msgb_bssgph(msg)) { - fprintf(stderr, "%s: Expected BSSGP\n", __func__); - return NULL; - } - - rc = gprs_gb_parse_bssgp(msgb_bssgph(msg), msgb_bssgp_len(msg), - &result.parse_ctx); - - if (!rc) { - fprintf(stderr, "%s: Failed to parse message\n", __func__); - return NULL; - } - - if (match_pdu_type != MATCH_ANY && - match_pdu_type != result.parse_ctx.pdu_type) { - fprintf(stderr, "%s: PDU type mismatch (expected %u, got %u)\n", - __func__, match_pdu_type, result.parse_ctx.pdu_type); - return NULL; - } - - return &result; -} - -static struct expect_result *expect_llc_msg( - int match_nsei, int match_bvci, int match_sapi, int match_type) -{ - static struct expect_result *result; - - result = expect_bssgp_msg(match_nsei, match_bvci, MATCH_ANY); - if (!result) - return NULL; - - if (!result->parse_ctx.llc) { - fprintf(stderr, "%s: Expected LLC message\n", __func__); - return NULL; - } - - if (match_sapi != MATCH_ANY && - match_sapi != result->parse_ctx.llc_hdr_parsed.sapi) { - fprintf(stderr, "%s: LLC SAPI mismatch (expected %u, got %u)\n", - __func__, match_sapi, result->parse_ctx.llc_hdr_parsed.sapi); - return NULL; - } - - if (match_type != MATCH_ANY && - match_type != result->parse_ctx.llc_hdr_parsed.cmd) { - fprintf(stderr, - "%s: LLC command/type mismatch (expected %u, got %u)\n", - __func__, match_type, result->parse_ctx.llc_hdr_parsed.cmd); - return NULL; - } - - return result; -} - -static struct expect_result *expect_gmm_msg(int match_nsei, int match_bvci, - int match_type) -{ - static struct expect_result *result; - - result = expect_llc_msg(match_nsei, match_bvci, GPRS_SAPI_GMM, GPRS_LLC_UI); - if (!result) - return NULL; - - if (!result->parse_ctx.g48_hdr) { - fprintf(stderr, "%s: Expected GSM 04.08 message\n", __func__); - return NULL; - } - - if (match_type != MATCH_ANY && - match_type != result->parse_ctx.g48_hdr->msg_type) { - fprintf(stderr, - "%s: GSM 04.08 message type mismatch (expected %u, got %u)\n", - __func__, match_type, result->parse_ctx.g48_hdr->msg_type); - return NULL; - } - - return result; -} - -static void dump_rate_ctr_group(FILE *stream, const char *prefix, - struct rate_ctr_group *ctrg) -{ - unsigned int i; - - for (i = 0; i < ctrg->desc->num_ctr; i++) { - struct rate_ctr *ctr = &ctrg->ctr[i]; - if (ctr->current && !strchr(ctrg->desc->ctr_desc[i].name, '.')) - fprintf(stream, " %s%s: %llu%s", - prefix, ctrg->desc->ctr_desc[i].description, - (long long)ctr->current, - "\n"); - }; -} - -/* Signal handler for signals from NS layer */ -static int test_signal(unsigned int subsys, unsigned int signal, - void *handler_data, void *signal_data) -{ - struct ns_signal_data *nssd = signal_data; - int rc; - - if (subsys != SS_L_NS) - return 0; - - switch (signal) { - case S_NS_RESET: - printf("==> got signal NS_RESET, NS-VC 0x%04x/%s\n", - nssd->nsvc->nsvci, - gprs_ns_ll_str(nssd->nsvc)); - break; - - case S_NS_ALIVE_EXP: - printf("==> got signal NS_ALIVE_EXP, NS-VC 0x%04x/%s\n", - nssd->nsvc->nsvci, - gprs_ns_ll_str(nssd->nsvc)); - break; - - case S_NS_BLOCK: - printf("==> got signal NS_BLOCK, NS-VC 0x%04x/%s\n", - nssd->nsvc->nsvci, - gprs_ns_ll_str(nssd->nsvc)); - break; - - case S_NS_UNBLOCK: - printf("==> got signal NS_UNBLOCK, NS-VC 0x%04x/%s\n", - nssd->nsvc->nsvci, - gprs_ns_ll_str(nssd->nsvc)); - break; - - case S_NS_REPLACED: - printf("==> got signal NS_REPLACED: 0x%04x/%s", - nssd->nsvc->nsvci, - gprs_ns_ll_str(nssd->nsvc)); - printf(" -> 0x%04x/%s\n", - nssd->old_nsvc->nsvci, - gprs_ns_ll_str(nssd->old_nsvc)); - break; - - default: - printf("==> got signal %d, NS-VC 0x%04x/%s\n", signal, - nssd->nsvc->nsvci, - gprs_ns_ll_str(nssd->nsvc)); - break; - } - printf("\n"); - rc = gbprox_signal(subsys, signal, handler_data, signal_data); - return rc; -} - -static int gprs_process_message(struct gprs_ns_inst *nsi, const char *text, struct sockaddr_in *peer, const unsigned char* data, size_t data_len) -{ - struct msgb *msg; - int ret; - if (data_len > NS_ALLOC_SIZE - NS_ALLOC_HEADROOM) { - fprintf(stderr, "message too long: %zu\n", data_len); - return -1; - } - - msg = gprs_ns_msgb_alloc(); - OSMO_ASSERT(msg); - memmove(msg->data, data, data_len); - msg->l2h = msg->data; - msgb_put(msg, data_len); - - printf("PROCESSING %s from 0x%08x:%d\n%s\n\n", - text, ntohl(peer->sin_addr.s_addr), ntohs(peer->sin_port), - osmo_hexdump(data, data_len)); - - ret = gprs_ns_rcvmsg(nsi, msg, peer, GPRS_NS_LL_UDP); - - printf("result (%s) = %d\n\n", text, ret); - - msgb_free(msg); - - return ret; -} - -static void gprs_dump_nsi(struct gprs_ns_inst *nsi) -{ - struct gprs_nsvc *nsvc; - - printf("Current NS-VCIs:\n"); - llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { - struct sockaddr_in *peer = &(nsvc->ip.bts_addr); - printf(" VCI 0x%04x, NSEI 0x%04x, peer 0x%08x:%d%s%s\n", - nsvc->nsvci, nsvc->nsei, - ntohl(peer->sin_addr.s_addr), ntohs(peer->sin_port), - nsvc->state & NSE_S_BLOCKED ? ", blocked" : "", - nsvc->state & NSE_S_ALIVE ? "" : ", dead" - ); - dump_rate_ctr_group(stdout, " ", nsvc->ctrg); - } - printf("\n"); -} - -static void test_gbproxy() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[4] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - gprs_dump_nsi(nsi); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - setup_bssgp(nsi, &bss_peer[0], 0x1002); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - printf("--- Initialise BSS 2 ---\n\n"); - - setup_ns(nsi, &bss_peer[1], 0x2001, 0x2000); - setup_bssgp(nsi, &bss_peer[1], 0x2002); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x2002); - - printf("--- Move BSS 1 to new port ---\n\n"); - - setup_ns(nsi, &bss_peer[2], 0x1001, 0x1000); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Move BSS 2 to former BSS 1 port ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x2001, 0x2000); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Move BSS 1 to current BSS 2 port ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x2001, 0x2000); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Move BSS 2 to new port ---\n\n"); - - setup_ns(nsi, &bss_peer[3], 0x2001, 0x2000); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Move BSS 2 to former BSS 1 port ---\n\n"); - - setup_ns(nsi, &bss_peer[2], 0x2001, 0x2000); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Move BSS 1 to original BSS 1 port ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Reset BSS 1 with a new BVCI ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], 0x1012); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1012); - - printf("--- Reset BSS 1 with the old BVCI ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], 0x1002); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - printf("--- Reset BSS 1 with the old BVCI again ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], 0x1002); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1012 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1012 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &sgsn_peer, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &sgsn_peer, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from BSS 2 to SGSN, BVCI 0x2002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], 0x2002, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 2, BVCI 0x2002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &sgsn_peer, 0x2002, (uint8_t *)"", 0); - - printf("--- Reset BSS 1 with the old BVCI on BSS2's link ---\n\n"); - - setup_bssgp(nsi, &bss_peer[2], 0x1002); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x1002 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &sgsn_peer, 0x1012, (uint8_t *)"", 0); - - printf("--- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) ---\n\n"); - - send_ns_unitdata(nsi, NULL, &sgsn_peer, 0x10ff, (uint8_t *)"", 0); - - /* Find peer */ - OSMO_ASSERT(gbproxy_peer_by_bvci(&gbcfg, 0xeeee) == NULL); - OSMO_ASSERT(gbproxy_peer_by_bvci(&gbcfg, 0x1000) == NULL); - OSMO_ASSERT(gbproxy_peer_by_bvci(&gbcfg, 0x1012) != NULL); - OSMO_ASSERT(gbproxy_peer_by_nsei(&gbcfg, 0xeeee) == NULL); - OSMO_ASSERT(gbproxy_peer_by_nsei(&gbcfg, 0x1012) == NULL); - OSMO_ASSERT(gbproxy_peer_by_nsei(&gbcfg, 0x1000) != NULL); - - - /* Cleanup */ - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0, 0) == 0); - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0x1000, 0xeeee) == 0); - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0, 0x1002) == 0); - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0x1000, 0x1012) == 1); - OSMO_ASSERT(gbproxy_cleanup_peers(&gbcfg, 0x1000, 0x1012) == 0); - - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; -} - -static void test_gbproxy_ident_changes() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - uint16_t nsei[2] = {0x1000, 0x2000}; - uint16_t nsvci[2] = {0x1001, 0x2001}; - uint16_t bvci[4] = {0x1002, 0x2002, 0x3002, 0x4002}; - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - gprs_dump_nsi(nsi); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], nsvci[0], nsei[0]); - gprs_dump_nsi(nsi); - - printf("--- Setup BVCI 1 ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], bvci[0]); - send_bssgp_reset_ack(nsi, &sgsn_peer, bvci[0]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Setup BVCI 2 ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], bvci[1]); - send_bssgp_reset_ack(nsi, &sgsn_peer, bvci[1]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[0], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[0], (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[1], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[1], (uint8_t *)"", 0); - - printf("--- Change NSEI ---\n\n"); - - setup_ns(nsi, &bss_peer[0], nsvci[0], nsei[1]); - gprs_dump_nsi(nsi); - - printf("--- Setup BVCI 1 ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], bvci[0]); - send_bssgp_reset_ack(nsi, &sgsn_peer, bvci[0]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Setup BVCI 3 ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], bvci[2]); - send_bssgp_reset_ack(nsi, &sgsn_peer, bvci[2]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[0], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[0], (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 " - " (should fail) ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[1], (uint8_t *)"", 0); - dump_peers(stdout, 0, 0, &gbcfg); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[1], (uint8_t *)"", 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 3 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[2], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[2], (uint8_t *)"", 0); - - printf("--- Change NSVCI ---\n\n"); - - setup_ns(nsi, &bss_peer[0], nsvci[1], nsei[1]); - gprs_dump_nsi(nsi); - - printf("--- Setup BVCI 1 ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], bvci[0]); - send_bssgp_reset_ack(nsi, &sgsn_peer, bvci[0]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Setup BVCI 4 ---\n\n"); - - setup_bssgp(nsi, &bss_peer[0], bvci[3]); - send_bssgp_reset_ack(nsi, &sgsn_peer, bvci[3]); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 1 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[0], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[0], (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 2 " - " (should fail) ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[1], (uint8_t *)"", 0); - dump_peers(stdout, 0, 0, &gbcfg); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[1], (uint8_t *)"", 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 3 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[2], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[2], (uint8_t *)"", 0); - - printf("--- Send message from BSS 1 to SGSN and back, BVCI 4 ---\n\n"); - - send_ns_unitdata(nsi, NULL, &bss_peer[0], bvci[3], (uint8_t *)"", 0); - send_ns_unitdata(nsi, NULL, &sgsn_peer, bvci[3], (uint8_t *)"", 0); - - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; -} - -static void test_gbproxy_ra_patching() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - struct gprs_ra_id rai_bss = - {.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_sgsn = - {.mcc = 123, .mnc = 456, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_unknown = - {.mcc = 1, .mnc = 99, .lac = 99, .rac = 96}; - uint16_t cell_id = 0x7530; - const char *err_msg = NULL; - const uint32_t ptmsi = 0xefe2b700; - const uint32_t local_tlli = 0xefe2b700; - const uint32_t foreign_tlli = 0xbbc54679; - const uint32_t foreign_tlli2 = 0xbb00beef; - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - const char *patch_re = "^9898|^121314"; - struct gbproxy_link_info *link_info; - struct gbproxy_peer *peer; - LLIST_HEAD(rcv_list); - struct expect_result *expect_res; - - OSMO_ASSERT(local_tlli == gprs_tmsi2tlli(ptmsi, TLLI_LOCAL)); - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - gbcfg.core_mcc = 123; - gbcfg.core_mnc = 456; - gbcfg.core_apn = talloc_zero_size(NULL, 100); - gbcfg.core_apn_size = gprs_str_to_apn(gbcfg.core_apn, 100, "foo.bar"); - gbcfg.patch_ptmsi = 0; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - if (gbproxy_set_patch_filter(&gbcfg.matches[GBPROX_MATCH_PATCHING], - patch_re, &err_msg) != 0) { - fprintf(stderr, "Failed to compile RE '%s': %s\n", - patch_re, err_msg); - exit(1); - } - - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - gprs_dump_nsi(nsi); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - - received_messages = &rcv_list; - - setup_bssgp(nsi, &bss_peer[0], 0x1002); - gprs_dump_nsi(nsi); - dump_peers(stdout, 0, 0, &gbcfg); - - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); - OSMO_ASSERT(peer != NULL); - - OSMO_ASSERT(expect_bssgp_msg(SGSN_NSEI, 0, BSSGP_PDUT_BVC_RESET)); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - OSMO_ASSERT(expect_bssgp_msg(0x1000, 0, BSSGP_PDUT_BVC_RESET_ACK)); - - send_bssgp_suspend(nsi, &bss_peer[0], 0xccd1758b, &rai_bss); - - OSMO_ASSERT(expect_bssgp_msg(SGSN_NSEI, 0, BSSGP_PDUT_SUSPEND)); - - send_bssgp_suspend_ack(nsi, &sgsn_peer, 0xccd1758b, &rai_sgsn); - - OSMO_ASSERT(expect_bssgp_msg(0x1000, 0, BSSGP_PDUT_SUSPEND_ACK)); - - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(2 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - OSMO_ASSERT(1 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_SGSN].current); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 0, - dtap_attach_req, sizeof(dtap_attach_req)); - - OSMO_ASSERT(4 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer, 0x1002, - foreign_tlli, 0, NULL, 0, - GPRS_SAPI_GMM, 0, - dtap_identity_req, sizeof(dtap_identity_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ID_REQ)); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 3, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ID_RESP)); - - OSMO_ASSERT(5 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - OSMO_ASSERT(1 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_SGSN].current); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, 1, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - OSMO_ASSERT(2 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_SGSN].current); - - OSMO_ASSERT(gbproxy_peer_by_rai(&gbcfg, convert_ra(&rai_bss)) != NULL); - OSMO_ASSERT(gbproxy_peer_by_rai(&gbcfg, convert_ra(&rai_sgsn)) == NULL); - OSMO_ASSERT(gbproxy_peer_by_rai(&gbcfg, convert_ra(&rai_unknown)) == NULL); - - OSMO_ASSERT(gbproxy_peer_by_lai(&gbcfg, convert_ra(&rai_bss)) != NULL); - OSMO_ASSERT(gbproxy_peer_by_lai(&gbcfg, convert_ra(&rai_sgsn)) == NULL); - OSMO_ASSERT(gbproxy_peer_by_lai(&gbcfg, convert_ra(&rai_unknown)) == NULL); - - OSMO_ASSERT(gbproxy_peer_by_lac(&gbcfg, convert_ra(&rai_bss)) != NULL); - OSMO_ASSERT(gbproxy_peer_by_lac(&gbcfg, convert_ra(&rai_sgsn)) != NULL); - OSMO_ASSERT(gbproxy_peer_by_lac(&gbcfg, convert_ra(&rai_unknown)) == NULL); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->tlli.current != local_tlli); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current != local_tlli); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 4, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - OSMO_ASSERT(6 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->tlli.current != local_tlli); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current != local_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - /* Replace APN (1) */ - send_llc_ul_ui(nsi, "ACT PDP CTX REQ (REPLACE APN)", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 3, - dtap_act_pdp_ctx_req, sizeof(dtap_act_pdp_ctx_req)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GSM_ACT_PDP_REQ)); - - OSMO_ASSERT(7 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->tlli.current != local_tlli); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current != local_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, 2, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_INFO)); - - OSMO_ASSERT(2 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_SGSN].current); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->tlli.current == local_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_tlli); - - /* Replace APN (2) */ - send_llc_ul_ui(nsi, "ACT PDP CTX REQ (REPLACE APN)", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 3, - dtap_act_pdp_ctx_req, sizeof(dtap_act_pdp_ctx_req)); - - expect_res = expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GSM_ACT_PDP_REQ); - OSMO_ASSERT(expect_res != NULL); - OSMO_ASSERT(expect_res->parse_ctx.apn_ie_len == gbcfg.core_apn_size + 2); - - OSMO_ASSERT(8 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - - gbcfg.core_apn[0] = 0; - gbcfg.core_apn_size = 0; - - /* Remove APN */ - send_llc_ul_ui(nsi, "ACT PDP CTX REQ (REMOVE APN)", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 3, - dtap_act_pdp_ctx_req, sizeof(dtap_act_pdp_ctx_req)); - - expect_res = expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GSM_ACT_PDP_REQ); - OSMO_ASSERT(expect_res != NULL); - OSMO_ASSERT(expect_res->parse_ctx.apn_ie_len == 0); - - OSMO_ASSERT(9 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach */ - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 6, - dtap_detach_req, sizeof(dtap_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - OSMO_ASSERT(10 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - OSMO_ASSERT(2 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_SGSN].current); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, 5, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- RA update ---\n\n"); - - send_llc_ul_ui(nsi, "RA UPD REQ", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, 0x7080, - GPRS_SAPI_GMM, 5, - dtap_ra_upd_req, sizeof(dtap_ra_upd_req)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_RA_UPD_REQ)); - - OSMO_ASSERT(12 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - - send_llc_dl_ui(nsi, "RA UPD ACC", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, 6, - dtap_ra_upd_acc, sizeof(dtap_ra_upd_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_RA_UPD_ACK)); - - OSMO_ASSERT(3 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_SGSN].current); - - /* Remove APN */ - send_llc_ul_ui(nsi, "ACT PDP CTX REQ (REMOVE APN)", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 3, - dtap_act_pdp_ctx_req, sizeof(dtap_act_pdp_ctx_req)); - - expect_res = expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GSM_ACT_PDP_REQ); - OSMO_ASSERT(expect_res != NULL); - OSMO_ASSERT(expect_res->parse_ctx.apn_ie_len == 0); - - OSMO_ASSERT(13 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach (power off -> no Detach Accept) */ - send_llc_ul_ui(nsi, "DETACH REQ (PWR OFF)", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 6, - dtap_detach_po_req, sizeof(dtap_detach_po_req)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - OSMO_ASSERT(14 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Bad cases ---\n\n"); - - /* The RAI in the Attach Request message differs from the RAI in the - * BSSGP message, only patch the latter */ - - send_llc_ul_ui(nsi, "ATTACH REQUEST (foreign RAI)", &bss_peer[0], 0x1002, - foreign_tlli2, &rai_bss, cell_id, - GPRS_SAPI_GMM, 0, - dtap_attach_req2, sizeof(dtap_attach_req2)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - OSMO_ASSERT(15 == peer->ctrg->ctr[GBPROX_PEER_CTR_RAID_PATCHED_BSS].current); - - printf("TLLI is already detached, shouldn't patch\n"); - send_llc_ul_ui(nsi, "ACT PDP CTX REQ", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, 3, - dtap_act_pdp_ctx_req, sizeof(dtap_act_pdp_ctx_req)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GSM_ACT_PDP_REQ)); - - printf("Invalid RAI, shouldn't patch\n"); - send_bssgp_suspend_ack(nsi, &sgsn_peer, 0xccd1758b, &rai_unknown); - - /* TODO: The following breaks with the current libosmocore, enable it - * again (and remove the plain expect_msg), when the msgb_bssgph patch - * is integrated */ - /* OSMO_ASSERT(expect_bssgp_msg(SGSN_NSEI, 0, BSSGP_PDUT_STATUS)); */ - OSMO_ASSERT(expect_msg()); - - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!expect_msg()); - received_messages = NULL; - - gbproxy_clear_patch_filter(&gbcfg.matches[GBPROX_MATCH_PATCHING]); - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; -} - -static void test_gbproxy_ptmsi_assignment() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - struct gprs_ra_id rai_bss = - {.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_unknown = - {.mcc = 1, .mnc = 99, .lac = 99, .rac = 96}; - uint16_t cell_id = 0x1234; - - const uint32_t ptmsi = 0xefe2b700; - const uint32_t local_tlli = 0xefe2b700; - - const uint32_t foreign_tlli1 = 0x8000dead; - const uint32_t foreign_tlli2 = 0x8000beef; - - const uint8_t imsi1[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - const uint8_t imsi2[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x16, 0x17, 0x18}; - - struct gbproxy_link_info *link_info, *link_info2; - struct gbproxy_peer *peer; - unsigned bss_nu = 0; - unsigned sgsn_nu = 0; - - OSMO_ASSERT(local_tlli == gprs_tmsi2tlli(ptmsi, TLLI_LOCAL)); - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - gbcfg.core_mcc = 0; - gbcfg.core_mnc = 0; - gbcfg.core_apn = talloc_zero_size(NULL, 100); - gbcfg.core_apn_size = gprs_str_to_apn(gbcfg.core_apn, 100, "foo.bar"); - gbcfg.patch_ptmsi = 0; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - setup_bssgp(nsi, &bss_peer[0], 0x1002); - - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); - OSMO_ASSERT(peer != NULL); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - gprs_dump_nsi(nsi); - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Establish first LLC connection ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli1, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer, 0x1002, - foreign_tlli1, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_tlli1, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli1, 1, imsi1, sizeof(imsi1), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli1); - link_info2 = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info == link_info2); - OSMO_ASSERT(link_info->tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_tlli1); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == ptmsi); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_tlli1); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == ptmsi); - - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_tlli, 1, imsi1, sizeof(imsi1), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_imsi(peer, imsi1, ARRAY_SIZE(imsi1)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.ptmsi == ptmsi); - OSMO_ASSERT(!gbproxy_link_info_by_imsi(peer, imsi2, ARRAY_SIZE(imsi2))); - - link_info2 = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info == link_info2); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->tlli.current == local_tlli); - OSMO_ASSERT(link_info->tlli.ptmsi == ptmsi); - - printf("--- Establish second LLC connection with the same P-TMSI ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli2, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer, 0x1002, - foreign_tlli2, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_tlli2, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity2_resp, sizeof(dtap_identity2_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli2, 1, imsi2, sizeof(imsi2), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli2); - link_info2 = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info == link_info2); - OSMO_ASSERT(link_info->tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_tlli2); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == ptmsi); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_tlli2); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == ptmsi); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_tlli, 1, imsi2, sizeof(imsi2), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_imsi(peer, imsi2, ARRAY_SIZE(imsi2)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.ptmsi == ptmsi); - OSMO_ASSERT(!gbproxy_link_info_by_imsi(peer, imsi1, ARRAY_SIZE(imsi1))); - - link_info2 = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info == link_info2); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->tlli.current == local_tlli); - OSMO_ASSERT(link_info->tlli.ptmsi == ptmsi); - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; - - cleanup_test(); -} - -static void test_gbproxy_ptmsi_patching() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - struct gprs_ra_id rai_bss = - {.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_sgsn = - {.mcc = 123, .mnc = 456, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_wrong_mcc_sgsn = - {.mcc = 999, .mnc = 456, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_unknown = - {.mcc = 1, .mnc = 99, .lac = 99, .rac = 96}; - uint16_t cell_id = 0x1234; - - const uint32_t sgsn_ptmsi = 0xefe2b700; - const uint32_t sgsn_ptmsi2 = 0xe0987654; - const uint32_t sgsn_ptmsi3 = 0xe0543210; - const uint32_t local_sgsn_tlli = 0xefe2b700; - const uint32_t local_sgsn_tlli2 = 0xe0987654; - const uint32_t local_sgsn_tlli3 = 0xe0543210; - const uint32_t random_sgsn_tlli = 0x78dead00; - const uint32_t unknown_sgsn_tlli = 0xeebadbad; - - const uint32_t bss_ptmsi = 0xc0dead01; - const uint32_t bss_ptmsi2 = 0xc0dead02; - const uint32_t bss_ptmsi3 = 0xc0dead03; - const uint32_t local_bss_tlli = 0xc0dead01; - const uint32_t local_bss_tlli2 = 0xc0dead02; - const uint32_t local_bss_tlli3 = 0xc0dead03; - const uint32_t foreign_bss_tlli = 0x8000dead; - - - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - struct gbproxy_link_info *link_info; - struct gbproxy_peer *peer; - unsigned bss_nu = 0; - unsigned sgsn_nu = 0; - int old_ctr; - - OSMO_ASSERT(local_sgsn_tlli == gprs_tmsi2tlli(sgsn_ptmsi, TLLI_LOCAL)); - OSMO_ASSERT(local_sgsn_tlli2 == gprs_tmsi2tlli(sgsn_ptmsi2, TLLI_LOCAL)); - OSMO_ASSERT(local_sgsn_tlli3 == gprs_tmsi2tlli(sgsn_ptmsi3, TLLI_LOCAL)); - OSMO_ASSERT(local_bss_tlli == gprs_tmsi2tlli(bss_ptmsi, TLLI_LOCAL)); - OSMO_ASSERT(local_bss_tlli2 == gprs_tmsi2tlli(bss_ptmsi2, TLLI_LOCAL)); - OSMO_ASSERT(local_bss_tlli3 == gprs_tmsi2tlli(bss_ptmsi3, TLLI_LOCAL)); - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - gbcfg.core_mcc = 123; - gbcfg.core_mnc = 456; - gbcfg.core_apn = talloc_zero_size(NULL, 100); - gbcfg.core_apn_size = gprs_str_to_apn(gbcfg.core_apn, 100, "foo.bar"); - gbcfg.patch_ptmsi = 1; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - setup_bssgp(nsi, &bss_peer[0], 0x1002); - - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); - OSMO_ASSERT(peer != NULL); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - gprs_dump_nsi(nsi); - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer, 0x1002, - random_sgsn_tlli, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - random_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0); - - send_llc_ul_ui(nsi, "ACT PDP CTX REQ (REPLACE APN)", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_act_pdp_ctx_req, sizeof(dtap_act_pdp_ctx_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Non-DTAP */ - send_bssgp_ul_unitdata(nsi, "XID (UL)", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - llc_u_xid_ul, sizeof(llc_u_xid_ul)); - - send_bssgp_dl_unitdata(nsi, "XID (DL)", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - llc_u_xid_dl, sizeof(llc_u_xid_dl)); - - send_bssgp_ul_unitdata(nsi, "LL11 DNS QUERY (UL)", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - llc_ui_ll11_dns_query_ul, - sizeof(llc_ui_ll11_dns_query_ul)); - - send_bssgp_dl_unitdata(nsi, "LL11 DNS RESP (DL)", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - llc_ui_ll11_dns_resp_dl, - sizeof(llc_ui_ll11_dns_resp_dl)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Repeated RA Update Requests */ - send_llc_ul_ui(nsi, "RA UPD REQ (P-TMSI 2)", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, 0x7080, - GPRS_SAPI_GMM, bss_nu++, - dtap_ra_upd_req, sizeof(dtap_ra_upd_req)); - - send_llc_dl_ui(nsi, "RA UDP ACC (P-TMSI 2)", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_ra_upd_acc2, sizeof(dtap_ra_upd_acc2)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli2, SGSN_NSEI) != NULL); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli2); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi2); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli2); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi2); - - send_llc_ul_ui(nsi, "RA UPD REQ (P-TMSI 3)", &bss_peer[0], 0x1002, - local_bss_tlli2, &rai_bss, 0x7080, - GPRS_SAPI_GMM, bss_nu++, - dtap_ra_upd_req, sizeof(dtap_ra_upd_req)); - - send_llc_dl_ui(nsi, "RA UDP ACC (P-TMSI 3)", &sgsn_peer, 0x1002, - local_sgsn_tlli2, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_ra_upd_acc3, sizeof(dtap_ra_upd_acc3)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli2, SGSN_NSEI) == NULL); - OSMO_ASSERT(gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli3, SGSN_NSEI) != NULL); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli3); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi3); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli3); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi3); - - send_llc_ul_ui(nsi, "RA UPD COMPLETE", &bss_peer[0], 0x1002, - local_bss_tlli3, &rai_bss, 0x7080, - GPRS_SAPI_GMM, bss_nu++, - dtap_ra_upd_complete, sizeof(dtap_ra_upd_complete)); - - link_info = gbproxy_link_info_by_tlli(peer, local_bss_tlli3); - - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_sgsn_tlli3, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli3, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli3); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli3); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0); - - /* Other messages */ - send_bssgp_llc_discarded(nsi, &bss_peer[0], 0x1002, - local_bss_tlli3, 1, 12); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_suspend(nsi, &bss_peer[0], local_bss_tlli3, &rai_bss); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_suspend_ack(nsi, &sgsn_peer, local_sgsn_tlli3, &rai_sgsn); - - dump_peers(stdout, 0, 0, &gbcfg); - - old_ctr = peer->ctrg->ctr[GBPROX_PEER_CTR_PTMSI_PATCHED_SGSN].current; - - send_bssgp_paging(nsi, &sgsn_peer, imsi, sizeof(imsi), &rai_bss, sgsn_ptmsi3); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(old_ctr + 1 == - peer->ctrg->ctr[GBPROX_PEER_CTR_PTMSI_PATCHED_SGSN].current); - - /* Bad case: Invalid BVCI */ - send_bssgp_llc_discarded(nsi, &bss_peer[0], 0xeee1, - local_bss_tlli3, 1, 12); - dump_global(stdout, 0); - - /* Bad case: Invalid RAI */ - send_bssgp_suspend_ack(nsi, &sgsn_peer, local_sgsn_tlli3, &rai_unknown); - - dump_global(stdout, 0); - - /* Bad case: Invalid MCC (LAC ok) */ - send_bssgp_suspend_ack(nsi, &sgsn_peer, local_sgsn_tlli3, - &rai_wrong_mcc_sgsn); - - dump_global(stdout, 0); - - /* Bad case: Invalid TLLI from SGSN (IMSI unknown) */ - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - unknown_sgsn_tlli, 1, NULL, 0, - GPRS_SAPI_GMM, 2, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - /* Bad case: Invalid TLLI from SGSN (IMSI known) */ - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - unknown_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, 3, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - /* Detach */ - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_bss_tlli3, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer, 0x1002, - local_sgsn_tlli3, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; - - cleanup_test(); -} - -static void test_gbproxy_ptmsi_patching_bad_cases() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - struct gprs_ra_id rai_bss = - {.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_unknown = - {.mcc = 1, .mnc = 99, .lac = 99, .rac = 96}; - uint16_t cell_id = 0x1234; - - const uint32_t sgsn_ptmsi = 0xefe2b700; - const uint32_t local_sgsn_tlli = 0xefe2b700; - const uint32_t random_sgsn_tlli = 0x78dead00; - - const uint32_t bss_ptmsi = 0xc0dead01; - const uint32_t local_bss_tlli = 0xc0dead01; - const uint32_t foreign_bss_tlli = 0x8000dead; - - - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - struct gbproxy_link_info *link_info; - struct gbproxy_peer *peer; - unsigned bss_nu = 0; - unsigned sgsn_nu = 0; - - OSMO_ASSERT(local_sgsn_tlli == gprs_tmsi2tlli(sgsn_ptmsi, TLLI_LOCAL)); - OSMO_ASSERT(local_bss_tlli == gprs_tmsi2tlli(bss_ptmsi, TLLI_LOCAL)); - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - gbcfg.core_mcc = 123; - gbcfg.core_mnc = 456; - gbcfg.core_apn = talloc_zero_size(NULL, 100); - gbcfg.core_apn_size = gprs_str_to_apn(gbcfg.core_apn, 100, "foo.bar"); - gbcfg.patch_ptmsi = 1; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - setup_bssgp(nsi, &bss_peer[0], 0x1002); - - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); - OSMO_ASSERT(peer != NULL); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - gprs_dump_nsi(nsi); - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer, 0x1002, - random_sgsn_tlli, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - random_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT (duplicated)", &sgsn_peer, 0x1002, - random_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0); - - /* Detach */ - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; - - cleanup_test(); -} - - -static void test_gbproxy_imsi_acquisition() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - struct gprs_ra_id rai_bss = - {.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_sgsn = - {.mcc = 123, .mnc = 456, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_wrong_mcc_sgsn = - {.mcc = 999, .mnc = 456, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_unknown = - {.mcc = 1, .mnc = 99, .lac = 99, .rac = 96}; - uint16_t cell_id = 0x1234; - - const uint32_t sgsn_ptmsi = 0xefe2b700; - const uint32_t local_sgsn_tlli = 0xefe2b700; - const uint32_t random_sgsn_tlli = 0x78dead00; - const uint32_t random_sgsn_tlli2 = 0x78dead02; - - const uint32_t bss_ptmsi = 0xc0dead01; - const uint32_t local_bss_tlli = 0xc0dead01; - const uint32_t foreign_bss_tlli = 0x8000dead; - const uint32_t other_bss_tlli = 0x8000beef; - - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - struct gbproxy_link_info *link_info; - struct gbproxy_peer *peer; - unsigned bss_nu = 0; - unsigned sgsn_nu = 0; - - OSMO_ASSERT(local_sgsn_tlli == gprs_tmsi2tlli(sgsn_ptmsi, TLLI_LOCAL)); - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - gbcfg.core_mcc = 123; - gbcfg.core_mnc = 456; - gbcfg.core_apn = talloc_zero_size(NULL, 100); - gbcfg.core_apn_size = gprs_str_to_apn(gbcfg.core_apn, 100, "foo.bar"); - gbcfg.patch_ptmsi = 1; - gbcfg.acquire_imsi = 1; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - setup_bssgp(nsi, &bss_peer[0], 0x1002); - - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); - OSMO_ASSERT(peer != NULL); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - gprs_dump_nsi(nsi); - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer, 0x1002, - random_sgsn_tlli, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - random_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0); - - /* Non-DTAP */ - send_bssgp_ul_unitdata(nsi, "XID (UL)", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - llc_u_xid_ul, sizeof(llc_u_xid_ul)); - - send_bssgp_dl_unitdata(nsi, "XID (DL)", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - llc_u_xid_dl, sizeof(llc_u_xid_dl)); - - send_bssgp_ul_unitdata(nsi, "LL11 DNS QUERY (UL)", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - llc_ui_ll11_dns_query_ul, - sizeof(llc_ui_ll11_dns_query_ul)); - - send_bssgp_dl_unitdata(nsi, "LL11 DNS RESP (DL)", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - llc_ui_ll11_dns_resp_dl, - sizeof(llc_ui_ll11_dns_resp_dl)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Other messages */ - send_bssgp_llc_discarded(nsi, &bss_peer[0], 0x1002, - local_bss_tlli, 1, 12); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_llc_discarded(nsi, &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, 12); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_suspend(nsi, &bss_peer[0], local_bss_tlli, &rai_bss); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_suspend_ack(nsi, &sgsn_peer, local_sgsn_tlli, &rai_sgsn); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Bad case: Invalid BVCI */ - send_bssgp_llc_discarded(nsi, &bss_peer[0], 0xeee1, - local_bss_tlli, 1, 12); - dump_global(stdout, 0); - - /* Bad case: Invalid RAI */ - send_bssgp_suspend_ack(nsi, &sgsn_peer, local_sgsn_tlli, &rai_unknown); - - dump_global(stdout, 0); - - /* Bad case: Invalid MCC (LAC ok) */ - send_bssgp_suspend_ack(nsi, &sgsn_peer, local_sgsn_tlli, - &rai_wrong_mcc_sgsn); - - dump_global(stdout, 0); - - /* Detach */ - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* RA Update request */ - - send_llc_ul_ui(nsi, "RA UPD REQ", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_unknown, 0x7080, - GPRS_SAPI_GMM, bss_nu++, - dtap_ra_upd_req, sizeof(dtap_ra_upd_req)); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "RA UDP ACC", &sgsn_peer, 0x1002, - random_sgsn_tlli2, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_ra_upd_acc, sizeof(dtap_ra_upd_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach */ - - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer, 0x1002, - local_sgsn_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Special case: Repeated Attach Requests */ - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Special case: Detach from an unknown TLLI */ - - send_llc_ul_ui(nsi, "DETACH REQ (unknown TLLI)", &bss_peer[0], 0x1002, - other_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Special case: Repeated RA Update Requests */ - - send_llc_ul_ui(nsi, "RA UPD REQ", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_unknown, 0x7080, - GPRS_SAPI_GMM, bss_nu++, - dtap_ra_upd_req, sizeof(dtap_ra_upd_req)); - - send_llc_ul_ui(nsi, "RA UPD REQ", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_unknown, 0x7080, - GPRS_SAPI_GMM, bss_nu++, - dtap_ra_upd_req, sizeof(dtap_ra_upd_req)); - - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; - - cleanup_test(); -} - -static void test_gbproxy_secondary_sgsn() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer[2]= {{0},}; - struct gprs_ra_id rai_bss = - {.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_sgsn = - {.mcc = 123, .mnc = 456, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_unknown = - {.mcc = 1, .mnc = 99, .lac = 99, .rac = 96}; - uint16_t cell_id = 0x1234; - - const uint32_t sgsn_ptmsi = 0xefe2b700; - const uint32_t local_sgsn_tlli = 0xefe2b700; - const uint32_t random_sgsn_tlli = 0x78dead00; - - const uint32_t bss_ptmsi = 0xc0dead01; - const uint32_t local_bss_tlli = 0xc0dead01; - const uint32_t foreign_bss_tlli = 0x8000dead; - - const uint32_t sgsn_ptmsi2 = 0xe0987654; - const uint32_t local_sgsn_tlli2 = 0xe0987654; - const uint32_t random_sgsn_tlli2 = 0x78dead02; - const uint32_t bss_ptmsi2 = 0xc0dead03; - const uint32_t local_bss_tlli2 = 0xc0dead03; - const uint32_t foreign_bss_tlli2 = 0x8000beef; - - const uint32_t random_sgsn_tlli3 = 0x78dead04; - const uint32_t bss_ptmsi3 = 0xc0dead05; - const uint32_t local_bss_tlli3 = 0xc0dead05; - const uint32_t foreign_bss_tlli3 = 0x8000feed; - - const uint8_t imsi1[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - const uint8_t imsi2[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x16, 0x17, 0x18}; - const uint8_t imsi3[] = {0x11, 0x12, 0x99, 0x99, 0x99, 0x26, 0x27, 0x28}; - struct gbproxy_link_info *link_info; - struct gbproxy_link_info *other_info; - struct gbproxy_peer *peer; - unsigned bss_nu = 0; - unsigned sgsn_nu = 0; - - const char *err_msg = NULL; - const char *filter_re = "999999"; - - OSMO_ASSERT(local_sgsn_tlli == gprs_tmsi2tlli(sgsn_ptmsi, TLLI_LOCAL)); - OSMO_ASSERT(local_sgsn_tlli2 == gprs_tmsi2tlli(sgsn_ptmsi2, TLLI_LOCAL)); - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - gbcfg.core_mcc = 123; - gbcfg.core_mnc = 456; - gbcfg.core_apn = talloc_zero_size(NULL, 100); - gbcfg.core_apn_size = gprs_str_to_apn(gbcfg.core_apn, 100, "foo.bar"); - gbcfg.patch_ptmsi = 1; - gbcfg.acquire_imsi = 1; - - gbcfg.route_to_sgsn2 = 1; - gbcfg.nsip_sgsn2_nsei = SGSN2_NSEI; - - if (gbproxy_set_patch_filter(&gbcfg.matches[GBPROX_MATCH_ROUTING], - filter_re, &err_msg) != 0) { - fprintf(stderr, "gbprox_set_patch_filter: got error: %s\n", - err_msg); - OSMO_ASSERT(err_msg == NULL); - } - - configure_sgsn_peer(&sgsn_peer[0]); - configure_sgsn2_peer(&sgsn_peer[1]); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN 1 ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer[0], SGSN_NSEI); - - printf("--- Initialise SGSN 2 ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer[1], SGSN2_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - setup_bssgp(nsi, &bss_peer[0], 0x0); - send_bssgp_reset_ack(nsi, &sgsn_peer[0], 0x0); - setup_bssgp(nsi, &bss_peer[0], 0x1002); - send_bssgp_reset_ack(nsi, &sgsn_peer[0], 0x1002); - send_bssgp_reset_ack(nsi, &sgsn_peer[1], 0x1002); - - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); - OSMO_ASSERT(peer != NULL); - - gprs_dump_nsi(nsi); - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Flow control ---\n\n"); - - send_bssgp_flow_control_bvc(nsi, &bss_peer[0], 0x1002, 1); - send_bssgp_flow_control_bvc_ack(nsi, &sgsn_peer[0], 0x1002, 1); - send_bssgp_flow_control_bvc_ack(nsi, &sgsn_peer[1], 0x1002, 1); - - printf("--- Establish GPRS connection (SGSN 1) ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer[0], 0x1002, - random_sgsn_tlli, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer[0], 0x1002, - random_sgsn_tlli, 1, imsi1, sizeof(imsi1), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN2_NSEI)); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN2_NSEI)); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer[0], 0x1002, - local_sgsn_tlli, 1, imsi1, sizeof(imsi1), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN2_NSEI)); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0); - - /* Non-DTAP */ - send_bssgp_ul_unitdata(nsi, "XID (UL)", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - llc_u_xid_ul, sizeof(llc_u_xid_ul)); - - send_bssgp_dl_unitdata(nsi, "XID (DL)", &sgsn_peer[0], 0x1002, - local_sgsn_tlli, 1, imsi1, sizeof(imsi1), - llc_u_xid_dl, sizeof(llc_u_xid_dl)); - - send_bssgp_ul_unitdata(nsi, "LL11 DNS QUERY (UL)", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - llc_ui_ll11_dns_query_ul, - sizeof(llc_ui_ll11_dns_query_ul)); - - send_bssgp_dl_unitdata(nsi, "LL11 DNS RESP (DL)", &sgsn_peer[0], 0x1002, - local_sgsn_tlli, 1, imsi1, sizeof(imsi1), - llc_ui_ll11_dns_resp_dl, - sizeof(llc_ui_ll11_dns_resp_dl)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Other messages */ - send_bssgp_llc_discarded(nsi, &bss_peer[0], 0x1002, - local_bss_tlli, 1, 12); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_llc_discarded(nsi, &sgsn_peer[0], 0x1002, - local_sgsn_tlli, 1, 12); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_suspend(nsi, &bss_peer[0], local_bss_tlli, &rai_bss); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_suspend_ack(nsi, &sgsn_peer[0], local_sgsn_tlli, &rai_sgsn); - - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Establish GPRS connection (SGSN 2) ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_bss_tlli2, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli2, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity2_resp, sizeof(dtap_identity2_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer[1], 0x1002, - random_sgsn_tlli2, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli2, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity2_resp, sizeof(dtap_identity2_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer[1], 0x1002, - random_sgsn_tlli2, 1, imsi2, sizeof(imsi2), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc2, sizeof(dtap_attach_acc2)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli2, SGSN_NSEI)); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli2, SGSN2_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli2); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli2); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi2); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli2); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli2); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi2); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_bss_tlli2, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli2, SGSN_NSEI)); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli2, SGSN2_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli2); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli2); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli2); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli2); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer[1], 0x1002, - local_sgsn_tlli2, 1, imsi2, sizeof(imsi2), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli2, SGSN_NSEI)); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli2, SGSN2_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli2); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli2); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0); - - /* Non-DTAP */ - send_bssgp_ul_unitdata(nsi, "XID (UL)", &bss_peer[0], 0x1002, - local_bss_tlli2, &rai_bss, cell_id, - llc_u_xid_ul, sizeof(llc_u_xid_ul)); - - send_bssgp_dl_unitdata(nsi, "XID (DL)", &sgsn_peer[1], 0x1002, - local_sgsn_tlli2, 1, imsi2, sizeof(imsi2), - llc_u_xid_dl, sizeof(llc_u_xid_dl)); - - send_bssgp_ul_unitdata(nsi, "LL11 DNS QUERY (UL)", &bss_peer[0], 0x1002, - local_bss_tlli2, &rai_bss, cell_id, - llc_ui_ll11_dns_query_ul, - sizeof(llc_ui_ll11_dns_query_ul)); - - send_bssgp_dl_unitdata(nsi, "LL11 DNS RESP (DL)", &sgsn_peer[1], 0x1002, - local_sgsn_tlli2, 1, imsi2, sizeof(imsi2), - llc_ui_ll11_dns_resp_dl, - sizeof(llc_ui_ll11_dns_resp_dl)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Other messages */ - send_bssgp_llc_discarded(nsi, &bss_peer[0], 0x1002, - local_bss_tlli2, 1, 12); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_llc_discarded(nsi, &sgsn_peer[1], 0x1002, - local_sgsn_tlli2, 1, 12); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_suspend(nsi, &bss_peer[0], local_bss_tlli2, &rai_bss); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_bssgp_suspend_ack(nsi, &sgsn_peer[1], local_sgsn_tlli2, &rai_sgsn); - - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Establish GPRS connection (SGSN 2, P-TMSI collision) ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_bss_tlli3, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli3, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity3_resp, sizeof(dtap_identity3_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer[1], 0x1002, - random_sgsn_tlli3, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_bss_tlli3, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity3_resp, sizeof(dtap_identity3_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT (P-TMSI 1)", &sgsn_peer[1], 0x1002, - random_sgsn_tlli3, 1, imsi3, sizeof(imsi3), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli3, SGSN_NSEI)); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, random_sgsn_tlli3, SGSN2_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli3); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli3); - OSMO_ASSERT(!link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->tlli.ptmsi == bss_ptmsi3); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli3); - OSMO_ASSERT(!link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.ptmsi == sgsn_ptmsi); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_bss_tlli3, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - dump_peers(stdout, 0, 0, &gbcfg); - - other_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(other_info); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN2_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info != other_info); - OSMO_ASSERT(link_info->tlli.assigned == local_bss_tlli3); - OSMO_ASSERT(link_info->tlli.current == foreign_bss_tlli3); - OSMO_ASSERT(link_info->tlli.bss_validated); - OSMO_ASSERT(!link_info->tlli.net_validated); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.current == random_sgsn_tlli3); - OSMO_ASSERT(link_info->sgsn_tlli.bss_validated); - OSMO_ASSERT(!link_info->sgsn_tlli.net_validated); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer[1], 0x1002, - local_sgsn_tlli, 1, imsi3, sizeof(imsi3), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - dump_peers(stdout, 0, 0, &gbcfg); - - other_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN_NSEI); - OSMO_ASSERT(other_info); - link_info = gbproxy_link_info_by_sgsn_tlli(peer, local_sgsn_tlli, SGSN2_NSEI); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info != other_info); - OSMO_ASSERT(link_info->tlli.current == local_bss_tlli3); - OSMO_ASSERT(link_info->tlli.assigned == 0); - OSMO_ASSERT(link_info->sgsn_tlli.current == local_sgsn_tlli); - OSMO_ASSERT(link_info->sgsn_tlli.assigned == 0); - - - printf("--- Shutdown GPRS connection (SGSN 1) ---\n\n"); - - /* Detach */ - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_bss_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer[0], 0x1002, - local_sgsn_tlli, 1, imsi1, sizeof(imsi1), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Shutdown GPRS connection (SGSN 2) ---\n\n"); - - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_bss_tlli2, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer[1], 0x1002, - local_sgsn_tlli2, 1, imsi2, sizeof(imsi2), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Shutdown GPRS connection (SGSN 2, P-TMSI 1) ---\n\n"); - - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_bss_tlli3, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer[1], 0x1002, - local_sgsn_tlli, 1, imsi3, sizeof(imsi3), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - gbproxy_clear_patch_filter(&gbcfg.matches[GBPROX_MATCH_ROUTING]); - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; - - cleanup_test(); -} - -static void test_gbproxy_keep_info() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - struct gprs_ra_id rai_bss = - {.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96}; - uint16_t cell_id = 0x1234; - - const uint32_t ptmsi = 0xefe2b700; - const uint32_t local_tlli = 0xefe2b700; - const uint32_t foreign_tlli = 0xafe2b700; - - const uint8_t imsi[] = {0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18}; - struct gbproxy_link_info *link_info, *link_info2; - struct gbproxy_peer *peer; - unsigned bss_nu = 0; - unsigned sgsn_nu = 0; - - LLIST_HEAD(rcv_list); - - OSMO_ASSERT(local_tlli == gprs_tmsi2tlli(ptmsi, TLLI_LOCAL)); - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - gbcfg.patch_ptmsi = 0; - gbcfg.acquire_imsi = 1; - gbcfg.core_mcc = 0; - gbcfg.core_mnc = 0; - gbcfg.core_apn = NULL; - gbcfg.core_apn_size = 0; - gbcfg.route_to_sgsn2 = 0; - gbcfg.nsip_sgsn2_nsei = 0xffff; - gbcfg.keep_link_infos = GBPROX_KEEP_ALWAYS; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - setup_bssgp(nsi, &bss_peer[0], 0x1002); - - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); - OSMO_ASSERT(peer != NULL); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - gprs_dump_nsi(nsi); - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Send message from BSS 1 to SGSN, BVCI 0x1002 ---\n\n"); - - received_messages = &rcv_list; - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ID_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->imsi_len == 0); - OSMO_ASSERT(!link_info->is_deregistered); - OSMO_ASSERT(link_info->imsi_acq_pending); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->imsi_len > 0); - OSMO_ASSERT(!link_info->imsi_acq_pending); - OSMO_ASSERT(gprs_tlli_type(link_info->sgsn_tlli.current) == TLLI_FOREIGN); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer, 0x1002, - foreign_tlli, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ID_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ID_RESP)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->imsi_len > 0); - OSMO_ASSERT(gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi))); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_INFO)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - /* Detach (MO) */ - send_llc_ul_ui(nsi, "DETACH REQ", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "DETACH ACC", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - OSMO_ASSERT(!expect_msg()); - - /* Re-Attach */ - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req3, sizeof(dtap_attach_req3)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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(gprs_tlli_type(link_info->sgsn_tlli.current) == TLLI_FOREIGN); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach (MT) */ - send_llc_dl_ui(nsi, "DETACH REQ (re-attach)", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_mt_detach_rea_req, sizeof(dtap_mt_detach_rea_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - send_llc_ul_ui(nsi, "DETACH ACC", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_mt_detach_acc, sizeof(dtap_mt_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - OSMO_ASSERT(!expect_msg()); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - /* Re-Attach */ - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req3, sizeof(dtap_attach_req3)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach (MT) */ - send_llc_dl_ui(nsi, "DETACH REQ", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_mt_detach_req, sizeof(dtap_mt_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - send_llc_ul_ui(nsi, "DETACH ACC", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_mt_detach_acc, sizeof(dtap_mt_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - OSMO_ASSERT(!expect_msg()); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - /* Re-Attach with IMSI */ - send_llc_ul_ui(nsi, "ATTACH REQUEST (IMSI)", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req4, sizeof(dtap_attach_req4)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach (MT) */ - send_llc_dl_ui(nsi, "DETACH REQ", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_mt_detach_req, sizeof(dtap_mt_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - send_llc_ul_ui(nsi, "DETACH ACC", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_mt_detach_acc, sizeof(dtap_mt_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - OSMO_ASSERT(!expect_msg()); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - /* Re-Attach */ - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req3, sizeof(dtap_attach_req3)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* RA update procedure (reject -> Detach) */ - send_llc_ul_ui(nsi, "RA UPD REQ", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, 0x7080, - GPRS_SAPI_GMM, bss_nu++, - dtap_ra_upd_req, sizeof(dtap_ra_upd_req)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_RA_UPD_REQ)); - - send_llc_dl_ui(nsi, "RA UDP REJ", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_ra_upd_rej, sizeof(dtap_ra_upd_rej)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_RA_UPD_REJ)); - OSMO_ASSERT(!expect_msg()); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - /* Bad case: Re-Attach with wrong (initial) P-TMSI */ - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ID_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info == link_info2); - OSMO_ASSERT(link_info->imsi_len > 0); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach (MT) */ - send_llc_dl_ui(nsi, "DETACH REQ", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_mt_detach_req, sizeof(dtap_mt_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - send_llc_ul_ui(nsi, "DETACH ACC", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_mt_detach_acc, sizeof(dtap_mt_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - OSMO_ASSERT(!expect_msg()); - - /* Bad case: Re-Attach with local TLLI */ - send_llc_ul_ui(nsi, "ATTACH REQUEST (local TLLI)", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req3, sizeof(dtap_attach_req3)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - 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 == local_tlli); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach (MT) */ - send_llc_dl_ui(nsi, "DETACH REQ (re-attach)", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_mt_detach_rea_req, sizeof(dtap_mt_detach_rea_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - send_llc_ul_ui(nsi, "DETACH ACC", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_mt_detach_acc, sizeof(dtap_mt_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - OSMO_ASSERT(!expect_msg()); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - /* Bad case: Unexpected Re-Attach with IMSI after completed attachment - * procedure */ - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req3, sizeof(dtap_attach_req3)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_INFO)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH REQUEST (unexpected, IMSI)", - &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req4, sizeof(dtap_attach_req4)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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.assigned == 0); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach (MT) */ - send_llc_dl_ui(nsi, "DETACH REQ", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_mt_detach_req, sizeof(dtap_mt_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - send_llc_ul_ui(nsi, "DETACH ACC", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_mt_detach_acc, sizeof(dtap_mt_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - OSMO_ASSERT(!expect_msg()); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - /* Bad case: Unexpected Re-Attach with P-TMSI after completed attachment - * procedure */ - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req3, sizeof(dtap_attach_req3)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "GMM INFO", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_gmm_information, sizeof(dtap_gmm_information)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_INFO)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH REQUEST (unexpected)", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req3, sizeof(dtap_attach_req3)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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.assigned == 0); - - send_llc_dl_ui(nsi, "ATTACH ACCEPT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_acc, sizeof(dtap_attach_acc)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "ATTACH COMPLETE", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_complete, sizeof(dtap_attach_complete)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_COMPL)); - - dump_peers(stdout, 0, 0, &gbcfg); - - /* Detach (MT) */ - send_llc_dl_ui(nsi, "DETACH REQ", &sgsn_peer, 0x1002, - local_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_mt_detach_req, sizeof(dtap_mt_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, local_tlli); - OSMO_ASSERT(link_info); - - send_llc_ul_ui(nsi, "DETACH ACC", &bss_peer[0], 0x1002, - local_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_mt_detach_acc, sizeof(dtap_mt_detach_acc)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - OSMO_ASSERT(!expect_msg()); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, local_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - - /* Attach rejected */ - - gbproxy_delete_link_infos(peer); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ID_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->imsi_len == 0); - OSMO_ASSERT(!link_info->is_deregistered); - OSMO_ASSERT(link_info->imsi_acq_pending); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info2 = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - link_info = gbproxy_link_info_by_tlli(peer, foreign_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); - - send_llc_dl_ui(nsi, "ATTACH REJECT", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_attach_rej7, sizeof(dtap_attach_rej7)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ATTACH_REJ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, foreign_tlli)); - - OSMO_ASSERT(!expect_msg()); - - /* Attach (incomplete) and Detach (MO) */ - - gbproxy_delete_link_infos(peer); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ID_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->imsi_len == 0); - OSMO_ASSERT(!link_info->is_deregistered); - OSMO_ASSERT(link_info->imsi_acq_pending); - - send_llc_ul_ui(nsi, "DETACH REQ (MO)", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_req, sizeof(dtap_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!expect_msg()); - - /* Attach (incomplete) and Detach (MT) */ - - gbproxy_delete_link_infos(peer); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_ID_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->imsi_len == 0); - OSMO_ASSERT(!link_info->is_deregistered); - OSMO_ASSERT(link_info->imsi_acq_pending); - - send_llc_dl_ui(nsi, "DETACH REQ (MT)", &sgsn_peer, 0x1002, - foreign_tlli, 1, imsi, sizeof(imsi), - GPRS_SAPI_GMM, sgsn_nu++, - dtap_mt_detach_req, sizeof(dtap_mt_detach_req)); - - OSMO_ASSERT(expect_gmm_msg(0x1000, 0x1002, GSM48_MT_GMM_DETACH_REQ)); - - dump_peers(stdout, 0, 0, &gbcfg); - - link_info = gbproxy_link_info_by_tlli(peer, foreign_tlli); - OSMO_ASSERT(link_info); - - send_llc_ul_ui(nsi, "DETACH ACC", &bss_peer[0], 0x1002, - foreign_tlli, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_mt_detach_acc, sizeof(dtap_mt_detach_acc)); - - /* TODO: The stored messaged should be cleaned when receiving a Detach - * Ack. Remove the first OSMO_ASSERT when this is fixed. */ - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_ATTACH_REQ)); - OSMO_ASSERT(expect_gmm_msg(SGSN_NSEI, 0x1002, GSM48_MT_GMM_DETACH_ACK)); - - dump_peers(stdout, 0, 0, &gbcfg); - - OSMO_ASSERT(!gbproxy_link_info_by_tlli(peer, foreign_tlli)); - link_info = gbproxy_link_info_by_imsi(peer, imsi, sizeof(imsi)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->is_deregistered); - - OSMO_ASSERT(!expect_msg()); - received_messages = NULL; - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; - - cleanup_test(); -} - -struct gbproxy_link_info *register_tlli( - struct gbproxy_peer *peer, uint32_t tlli, - const uint8_t *imsi, size_t imsi_len, time_t now) -{ - struct gbproxy_link_info *link_info; - int imsi_matches = -1; - int tlli_already_known = 0; - struct gbproxy_config *cfg = peer->cfg; - - /* Check, whether the IMSI matches */ - if (gprs_is_mi_imsi(imsi, imsi_len)) { - imsi_matches = gbproxy_check_imsi( - &cfg->matches[GBPROX_MATCH_PATCHING], imsi, imsi_len); - if (imsi_matches < 0) - return NULL; - } - - link_info = gbproxy_link_info_by_tlli(peer, tlli); - - if (!link_info) { - link_info = gbproxy_link_info_by_imsi(peer, imsi, imsi_len); - - if (link_info) { - /* TLLI has changed somehow, adjust it */ - LOGP(DGPRS, LOGL_INFO, - "The TLLI has changed from %08x to %08x\n", - link_info->tlli.current, tlli); - link_info->tlli.current = tlli; - } - } - - if (!link_info) { - link_info = gbproxy_link_info_alloc(peer); - link_info->tlli.current = tlli; - } else { - gbproxy_detach_link_info(peer, link_info); - tlli_already_known = 1; - } - - OSMO_ASSERT(link_info != NULL); - - if (!tlli_already_known) - LOGP(DGPRS, LOGL_INFO, "Adding TLLI %08x to list\n", tlli); - - gbproxy_attach_link_info(peer, now, link_info); - gbproxy_update_link_info(link_info, imsi, imsi_len); - - if (imsi_matches >= 0) - link_info->is_matching[GBPROX_MATCH_PATCHING] = imsi_matches; - - return link_info; -} - -static void test_gbproxy_tlli_expire(void) -{ - struct gbproxy_config cfg = {0}; - struct gbproxy_peer *peer; - const char *err_msg = NULL; - const uint8_t imsi1[] = { GSM_MI_TYPE_IMSI, 0x23, 0x24, 0x25, 0x26 }; - const uint8_t imsi2[] = { GSM_MI_TYPE_IMSI, 0x26, 0x27, 0x28, 0x29 }; - const uint8_t imsi3[] = { GSM_MI_TYPE_IMSI | 0x10, 0x32, 0x54, 0x76, 0xf8 }; - const uint32_t tlli1 = 1234 | 0xc0000000; - const uint32_t tlli2 = 5678 | 0xc0000000; - const uint32_t tlli3 = 3456 | 0xc0000000; - const char *filter_re = ".*"; - time_t now = 1407479214; - - printf("Test TLLI info expiry\n\n"); - - gbproxy_init_config(&cfg); - - if (gbproxy_set_patch_filter(&cfg.matches[GBPROX_MATCH_PATCHING], - filter_re, &err_msg) != 0) { - fprintf(stderr, "gbprox_set_patch_filter: got error: %s\n", - err_msg); - OSMO_ASSERT(err_msg == NULL); - } - - { - struct gbproxy_link_info *link_info; - - printf("Test TLLI replacement:\n"); - - cfg.tlli_max_len = 0; - cfg.tlli_max_age = 0; - peer = gbproxy_peer_alloc(&cfg, 20); - OSMO_ASSERT(peer->patch_state.logical_link_count == 0); - - printf(" Add TLLI 1, IMSI 1\n"); - link_info = register_tlli(peer, tlli1, - imsi1, ARRAY_SIZE(imsi1), now); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli1); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - /* replace the old entry */ - printf(" Add TLLI 2, IMSI 1 (should replace TLLI 1)\n"); - link_info = register_tlli(peer, tlli2, - imsi1, ARRAY_SIZE(imsi1), now); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli2); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - dump_peers(stdout, 2, now, &cfg); - - /* verify that 5678 has survived */ - link_info = gbproxy_link_info_by_imsi(peer, imsi1, ARRAY_SIZE(imsi1)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli2); - link_info = gbproxy_link_info_by_imsi(peer, imsi2, ARRAY_SIZE(imsi2)); - OSMO_ASSERT(!link_info); - - printf("\n"); - - gbproxy_peer_free(peer); - } - - { - struct gbproxy_link_info *link_info; - - printf("Test IMSI replacement:\n"); - - cfg.tlli_max_len = 0; - cfg.tlli_max_age = 0; - peer = gbproxy_peer_alloc(&cfg, 20); - OSMO_ASSERT(peer->patch_state.logical_link_count == 0); - - printf(" Add TLLI 1, IMSI 1\n"); - link_info = register_tlli(peer, tlli1, - imsi1, ARRAY_SIZE(imsi1), now); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli1); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - /* try to replace the old entry */ - printf(" Add TLLI 1, IMSI 2 (should replace IMSI 1)\n"); - link_info = register_tlli(peer, tlli1, - imsi2, ARRAY_SIZE(imsi2), now); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli1); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - dump_peers(stdout, 2, now, &cfg); - - /* verify that 5678 has survived */ - link_info = gbproxy_link_info_by_imsi(peer, imsi1, ARRAY_SIZE(imsi1)); - OSMO_ASSERT(!link_info); - link_info = gbproxy_link_info_by_imsi(peer, imsi2, ARRAY_SIZE(imsi2)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli1); - - printf("\n"); - - gbproxy_peer_free(peer); - } - - { - struct gbproxy_link_info *link_info; - int num_removed; - - printf("Test TLLI expiry, max_len == 1:\n"); - - cfg.tlli_max_len = 1; - cfg.tlli_max_age = 0; - peer = gbproxy_peer_alloc(&cfg, 20); - OSMO_ASSERT(peer->patch_state.logical_link_count == 0); - - printf(" Add TLLI 1, IMSI 1\n"); - register_tlli(peer, tlli1, imsi1, ARRAY_SIZE(imsi1), now); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - /* replace the old entry */ - printf(" Add TLLI 2, IMSI 2 (should replace IMSI 1)\n"); - register_tlli(peer, tlli2, imsi2, ARRAY_SIZE(imsi2), now); - OSMO_ASSERT(peer->patch_state.logical_link_count == 2); - - num_removed = gbproxy_remove_stale_link_infos(peer, now + 2); - OSMO_ASSERT(num_removed == 1); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - dump_peers(stdout, 2, now, &cfg); - - /* verify that 5678 has survived */ - link_info = gbproxy_link_info_by_imsi(peer, imsi1, ARRAY_SIZE(imsi1)); - OSMO_ASSERT(!link_info); - link_info = gbproxy_link_info_by_imsi(peer, imsi2, ARRAY_SIZE(imsi2)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli2); - - printf("\n"); - - gbproxy_peer_free(peer); - } - - { - struct gbproxy_link_info *link_info; - int num_removed; - - printf("Test TLLI expiry, max_age == 1:\n"); - - cfg.tlli_max_len = 0; - cfg.tlli_max_age = 1; - peer = gbproxy_peer_alloc(&cfg, 20); - OSMO_ASSERT(peer->patch_state.logical_link_count == 0); - - printf(" Add TLLI 1, IMSI 1 (should expire after timeout)\n"); - register_tlli(peer, tlli1, imsi1, ARRAY_SIZE(imsi1), now); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - printf(" Add TLLI 2, IMSI 2 (should not expire after timeout)\n"); - register_tlli(peer, tlli2, imsi2, ARRAY_SIZE(imsi2), - now + 1); - OSMO_ASSERT(peer->patch_state.logical_link_count == 2); - - num_removed = gbproxy_remove_stale_link_infos(peer, now + 2); - OSMO_ASSERT(num_removed == 1); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - dump_peers(stdout, 2, now + 2, &cfg); - - /* verify that 5678 has survived */ - link_info = gbproxy_link_info_by_imsi(peer, imsi1, ARRAY_SIZE(imsi1)); - OSMO_ASSERT(!link_info); - link_info = gbproxy_link_info_by_imsi(peer, imsi2, ARRAY_SIZE(imsi2)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli2); - - printf("\n"); - - gbproxy_peer_free(peer); - } - - { - struct gbproxy_link_info *link_info; - int num_removed; - - printf("Test TLLI expiry, max_len == 2, max_age == 1:\n"); - - cfg.tlli_max_len = 0; - cfg.tlli_max_age = 1; - peer = gbproxy_peer_alloc(&cfg, 20); - OSMO_ASSERT(peer->patch_state.logical_link_count == 0); - - printf(" Add TLLI 1, IMSI 1 (should expire)\n"); - register_tlli(peer, tlli1, imsi1, ARRAY_SIZE(imsi1), now); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - printf(" Add TLLI 2, IMSI 2 (should expire after timeout)\n"); - register_tlli(peer, tlli2, imsi2, ARRAY_SIZE(imsi2), - now + 1); - OSMO_ASSERT(peer->patch_state.logical_link_count == 2); - - printf(" Add TLLI 3, IMSI 3 (should not expire after timeout)\n"); - register_tlli(peer, tlli3, imsi3, ARRAY_SIZE(imsi3), - now + 2); - OSMO_ASSERT(peer->patch_state.logical_link_count == 3); - - dump_peers(stdout, 2, now + 2, &cfg); - - printf(" Remove stale TLLIs\n"); - num_removed = gbproxy_remove_stale_link_infos(peer, now + 3); - OSMO_ASSERT(num_removed == 2); - OSMO_ASSERT(peer->patch_state.logical_link_count == 1); - - dump_peers(stdout, 2, now + 2, &cfg); - - /* verify that tlli3 has survived */ - link_info = gbproxy_link_info_by_imsi(peer, imsi1, ARRAY_SIZE(imsi1)); - OSMO_ASSERT(!link_info); - link_info = gbproxy_link_info_by_imsi(peer, imsi2, ARRAY_SIZE(imsi2)); - OSMO_ASSERT(!link_info); - link_info = gbproxy_link_info_by_imsi(peer, imsi3, ARRAY_SIZE(imsi3)); - OSMO_ASSERT(link_info); - OSMO_ASSERT(link_info->tlli.current == tlli3); - - printf("\n"); - - gbproxy_peer_free(peer); - } - gbproxy_clear_patch_filter(&cfg.matches[GBPROX_MATCH_PATCHING]); - gbprox_reset(&cfg); - - cleanup_test(); -} - -static void test_gbproxy_imsi_matching(void) -{ - const char *err_msg = NULL; - const uint8_t imsi1[] = { GSM_MI_TYPE_IMSI | 0x10, 0x32, 0x54, 0xf6 }; - const uint8_t imsi2[] = { GSM_MI_TYPE_IMSI | GSM_MI_ODD | 0x10, 0x32, 0x54, 0x76 }; - const uint8_t imsi3_bad[] = { GSM_MI_TYPE_IMSI | 0x10, 0xee, 0x54, 0xff }; - const uint8_t tmsi1[] = { GSM_MI_TYPE_TMSI | 0xf0, 0x11, 0x22, 0x33, 0x44 }; - const uint8_t tmsi2_bad[] = { GSM_MI_TYPE_TMSI | 0xf0, 0x11, 0x22 }; - const uint8_t imei1[] = { GSM_MI_TYPE_IMEI | 0x10, 0x32, 0x54, 0xf6 }; - const uint8_t imei2[] = { GSM_MI_TYPE_IMEI | GSM_MI_ODD | 0x10, 0x32, 0x54, 0x76 }; - const char *filter_re1 = ".*"; - const char *filter_re2 = "^1234"; - const char *filter_re3 = "^4321"; - const char *filter_re4_bad = "^12["; - struct gbproxy_match match = {0,}; - - printf("=== Test IMSI/TMSI matching ===\n\n"); - - OSMO_ASSERT(match.enable == 0); - - OSMO_ASSERT(gbproxy_set_patch_filter(&match, filter_re1, &err_msg) == 0); - OSMO_ASSERT(match.enable == 1); - - OSMO_ASSERT(gbproxy_set_patch_filter(&match, filter_re2, &err_msg) == 0); - OSMO_ASSERT(match.enable == 1); - - err_msg = NULL; - OSMO_ASSERT(gbproxy_set_patch_filter(&match, filter_re4_bad, &err_msg) == -1); - OSMO_ASSERT(err_msg != NULL); - OSMO_ASSERT(match.enable == 0); - - OSMO_ASSERT(gbproxy_set_patch_filter(&match, filter_re2, &err_msg) == 0); - OSMO_ASSERT(match.enable == 1); - - OSMO_ASSERT(gbproxy_set_patch_filter(&match, NULL, &err_msg) == 0); - OSMO_ASSERT(match.enable == 0); - - OSMO_ASSERT(gbproxy_set_patch_filter(&match, filter_re2, &err_msg) == 0); - OSMO_ASSERT(match.enable == 1); - - gbproxy_clear_patch_filter(&match); - OSMO_ASSERT(match.enable == 0); - - OSMO_ASSERT(gbproxy_set_patch_filter(&match, filter_re2, &err_msg) == 0); - OSMO_ASSERT(match.enable == 1); - - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi1, ARRAY_SIZE(imsi1)) == 1); - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi2, ARRAY_SIZE(imsi2)) == 1); - /* imsi3_bad contains 0xE and 0xF digits, but the conversion function - * doesn't complain, so gbproxy_check_imsi() doesn't return -1 in this - * case. */ - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == 0); - OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi1, ARRAY_SIZE(tmsi1)) == -1); - OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi2_bad, ARRAY_SIZE(tmsi2_bad)) == -1); - OSMO_ASSERT(gbproxy_check_imsi(&match, imei1, ARRAY_SIZE(imei1)) == -1); - OSMO_ASSERT(gbproxy_check_imsi(&match, imei2, ARRAY_SIZE(imei2)) == -1); - - OSMO_ASSERT(gbproxy_set_patch_filter(&match, filter_re3, &err_msg) == 0); - OSMO_ASSERT(match.enable == 1); - - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi1, ARRAY_SIZE(imsi1)) == 0); - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi2, ARRAY_SIZE(imsi2)) == 0); - OSMO_ASSERT(gbproxy_check_imsi(&match, imsi3_bad, ARRAY_SIZE(imsi3_bad)) == 0); - OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi1, ARRAY_SIZE(tmsi1)) == -1); - OSMO_ASSERT(gbproxy_check_imsi(&match, tmsi2_bad, ARRAY_SIZE(tmsi2_bad)) == -1); - OSMO_ASSERT(gbproxy_check_imsi(&match, imei1, ARRAY_SIZE(imei1)) == -1); - OSMO_ASSERT(gbproxy_check_imsi(&match, imei2, ARRAY_SIZE(imei2)) == -1); - - /* TODO: Check correct length but wrong type with is_mi_tmsi */ - - gbproxy_clear_patch_filter(&match); - OSMO_ASSERT(match.enable == 0); - - cleanup_test(); -} - -static void test_gbproxy_stored_messages() -{ - struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL); - struct sockaddr_in bss_peer[1] = {{0},}; - struct sockaddr_in sgsn_peer= {0}; - struct gprs_ra_id rai_bss = - {.mcc = 112, .mnc = 332, .lac = 16464, .rac = 96}; - struct gprs_ra_id rai_unknown = - {.mcc = 1, .mnc = 99, .lac = 99, .rac = 96}; - uint16_t cell_id = 0x1234; - - const uint32_t ptmsi = 0xefe2b700; - const uint32_t local_tlli = 0xefe2b700; - - const uint32_t foreign_tlli1 = 0x8000dead; - - struct gbproxy_peer *peer; - unsigned bss_nu = 0; - unsigned sgsn_nu = 0; - - OSMO_ASSERT(local_tlli == gprs_tmsi2tlli(ptmsi, TLLI_LOCAL)); - - bssgp_nsi = nsi; - gbcfg.nsi = bssgp_nsi; - gbcfg.nsip_sgsn_nsei = SGSN_NSEI; - gbcfg.core_mcc = 0; - gbcfg.core_mnc = 0; - gbcfg.core_apn = talloc_zero_size(NULL, 100); - gbcfg.core_apn_size = gprs_str_to_apn(gbcfg.core_apn, 100, "foo.bar"); - gbcfg.patch_ptmsi = 0; - gbcfg.acquire_imsi = 1; - gbcfg.keep_link_infos = 0; - - configure_sgsn_peer(&sgsn_peer); - configure_bss_peers(bss_peer, ARRAY_SIZE(bss_peer)); - - printf("=== %s ===\n", __func__); - printf("--- Initialise SGSN ---\n\n"); - - connect_sgsn(nsi, &sgsn_peer, SGSN_NSEI); - - printf("--- Initialise BSS 1 ---\n\n"); - - setup_ns(nsi, &bss_peer[0], 0x1001, 0x1000); - setup_bssgp(nsi, &bss_peer[0], 0x1002); - - peer = gbproxy_peer_by_nsei(&gbcfg, 0x1000); - OSMO_ASSERT(peer != NULL); - - send_bssgp_reset_ack(nsi, &sgsn_peer, 0x1002); - - gprs_dump_nsi(nsi); - dump_global(stdout, 0); - dump_peers(stdout, 0, 0, &gbcfg); - - printf("--- Establish first LLC connection ---\n\n"); - - send_llc_ul_ui(nsi, "ATTACH REQUEST", &bss_peer[0], 0x1002, - foreign_tlli1, &rai_unknown, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_attach_req, sizeof(dtap_attach_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_dl_ui(nsi, "IDENT REQUEST", &sgsn_peer, 0x1002, - foreign_tlli1, 0, NULL, 0, - GPRS_SAPI_GMM, sgsn_nu++, - dtap_identity_req, sizeof(dtap_identity_req)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "DETACH ACCEPT", &bss_peer[0], 0x1002, - foreign_tlli1, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_detach_acc, sizeof(dtap_detach_acc)); - - dump_peers(stdout, 0, 0, &gbcfg); - - send_llc_ul_ui(nsi, "IDENT RESPONSE", &bss_peer[0], 0x1002, - foreign_tlli1, &rai_bss, cell_id, - GPRS_SAPI_GMM, bss_nu++, - dtap_identity_resp, sizeof(dtap_identity_resp)); - - dump_peers(stdout, 0, 0, &gbcfg); - - dump_global(stdout, 0); - - gbprox_reset(&gbcfg); - gprs_ns_destroy(nsi); - nsi = NULL; - - cleanup_test(); -} - -static struct log_info_cat gprs_categories[] = { - [DGPRS] = { - .name = "DGPRS", - .description = "GPRS Packet Service", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DNS] = { - .name = "DNS", - .description = "GPRS Network Service (NS)", - .enabled = 1, .loglevel = LOGL_INFO, - }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -static struct log_info info = { - .cat = gprs_categories, - .num_cat = ARRAY_SIZE(gprs_categories), -}; - -int main(int argc, char **argv) -{ - msgb_talloc_ctx_init(NULL, 0); - - osmo_init_logging(&info); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, 0); - osmo_signal_register_handler(SS_L_NS, &test_signal, &gbcfg); - - log_set_print_filename(osmo_stderr_target, 0); - log_set_log_level(osmo_stderr_target, LOGL_DEBUG); - log_set_all_filter(osmo_stderr_target, 1); - - rate_ctr_init(NULL); - - setlinebuf(stdout); - - printf("===== GbProxy test START\n"); - gbproxy_init_config(&gbcfg); - test_gbproxy(); - test_gbproxy_ident_changes(); - test_gbproxy_imsi_matching(); - test_gbproxy_ptmsi_assignment(); - test_gbproxy_ra_patching(); - test_gbproxy_ptmsi_patching(); - test_gbproxy_ptmsi_patching_bad_cases(); - test_gbproxy_imsi_acquisition(); - test_gbproxy_secondary_sgsn(); - test_gbproxy_keep_info(); - test_gbproxy_tlli_expire(); - test_gbproxy_stored_messages(); - printf("===== GbProxy test END\n\n"); - - exit(EXIT_SUCCESS); -} diff --git a/tests/gbproxy/gbproxy_test.ok b/tests/gbproxy/gbproxy_test.ok deleted file mode 100644 index 737aec0ba..000000000 --- a/tests/gbproxy/gbproxy_test.ok +++ /dev/null @@ -1,7244 +0,0 @@ -===== GbProxy test START -=== test_gbproxy === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - -Current NS-VCIs: - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - ---- Initialise BSS 2 --- - -Setup NS-VC: remote 0x01020304:2222, NSVCI 0x2001(8193), NSEI 0x2000(8192) - -PROCESSING RESET from 0x01020304:2222 -02 00 81 01 01 82 20 01 04 82 20 00 - -==> got signal NS_RESET, NS-VC 0x2001/1.2.3.4:2222 - -MESSAGE to BSS at 0x01020304:2222, msg length 9 -03 01 82 20 01 04 82 20 00 - -MESSAGE to BSS at 0x01020304:2222, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:2222 -0a - -MESSAGE to BSS at 0x01020304:2222, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:2222 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:2222 - -MESSAGE to BSS at 0x01020304:2222, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:2222 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:2222, BVCI 0x2002(8194) - -PROCESSING BVC_RESET from 0x01020304:2222 -00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 20 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 20 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:2222, msg length 9 -00 00 00 00 23 04 82 20 02 - -result (BVC_RESET_ACK) = 9 - ---- Move BSS 1 to new port --- - -Setup NS-VC: remote 0x01020304:3333, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:3333 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:3333 - -MESSAGE to BSS at 0x01020304:3333, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:3333, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:3333 -0a - -MESSAGE to BSS at 0x01020304:3333, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:3333 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:3333 - -MESSAGE to BSS at 0x01020304:3333, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:3333 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:3333 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Move BSS 2 to former BSS 1 port --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x2001(8193), NSEI 0x2000(8192) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 20 01 04 82 20 00 - -==> got signal NS_RESET, NS-VC 0x2001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 20 01 04 82 20 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:3333 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Move BSS 1 to current BSS 2 port --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x2001(8193), NSEI 0x2000(8192) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 20 01 04 82 20 00 - -==> got signal NS_RESET, NS-VC 0x2001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 20 01 04 82 20 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:3333 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Move BSS 2 to new port --- - -Setup NS-VC: remote 0x01020304:4444, NSVCI 0x2001(8193), NSEI 0x2000(8192) - -PROCESSING RESET from 0x01020304:4444 -02 00 81 01 01 82 20 01 04 82 20 00 - -==> got signal NS_RESET, NS-VC 0x2001/1.2.3.4:4444 - -MESSAGE to BSS at 0x01020304:4444, msg length 9 -03 01 82 20 01 04 82 20 00 - -MESSAGE to BSS at 0x01020304:4444, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:4444 -0a - -MESSAGE to BSS at 0x01020304:4444, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:4444 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:4444 - -MESSAGE to BSS at 0x01020304:4444, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:4444 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:4444 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:3333 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Move BSS 2 to former BSS 1 port --- - -Setup NS-VC: remote 0x01020304:3333, NSVCI 0x2001(8193), NSEI 0x2000(8192) - -PROCESSING RESET from 0x01020304:3333 -02 00 81 01 01 82 20 01 04 82 20 00 - -==> got signal NS_REPLACED: 0x2001/1.2.3.4:4444 -> 0x1001/1.2.3.4:3333 - -==> got signal NS_RESET, NS-VC 0x2001/1.2.3.4:3333 - -MESSAGE to BSS at 0x01020304:3333, msg length 9 -03 01 82 20 01 04 82 20 00 - -MESSAGE to BSS at 0x01020304:3333, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:3333 -0a - -MESSAGE to BSS at 0x01020304:3333, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:3333 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:3333 - -MESSAGE to BSS at 0x01020304:3333, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:3333 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 - NS-VC replaced other count: 1 - VCI 0x1001, NSEI 0x1000, peer 0x00000000:0 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Move BSS 1 to original BSS 1 port --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 - NS-VC replaced other count: 1 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Reset BSS 1 with a new BVCI --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1012(4114) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 - NS-VC replaced other count: 1 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 12 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 12 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 12 - -result (BVC_RESET_ACK) = 9 - ---- Reset BSS 1 with the old BVCI --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 - NS-VC replaced other count: 1 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - ---- Reset BSS 1 with the old BVCI again --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 - NS-VC replaced other count: 1 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - ---- Send message from BSS 1 to SGSN, BVCI 0x1012 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 10 12 - -CALLBACK, event 0, msg length 0, bvci 0x1012 -00 00 10 12 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1012, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 10 12 - -result (UNITDATA) = 4 - ---- Send message from SGSN to BSS 1, BVCI 0x1012 --- - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 10 12 - -CALLBACK, event 0, msg length 0, bvci 0x1012 -00 00 10 12 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1012, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 10 12 - -result (UNITDATA) = 4 - ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 10 12 - -CALLBACK, event 0, msg length 0, bvci 0x1012 -00 00 10 12 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1012, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 10 12 - -result (UNITDATA) = 4 - ---- Send message from SGSN to BSS 1, BVCI 0x1002 --- - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 10 12 - -CALLBACK, event 0, msg length 0, bvci 0x1012 -00 00 10 12 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1012, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 10 12 - -result (UNITDATA) = 4 - ---- Send message from BSS 2 to SGSN, BVCI 0x2002 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 20 02 - -CALLBACK, event 0, msg length 0, bvci 0x2002 -00 00 20 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x2002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 20 02 - -result (UNITDATA) = 4 - ---- Send message from SGSN to BSS 2, BVCI 0x2002 --- - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 20 02 - -CALLBACK, event 0, msg length 0, bvci 0x2002 -00 00 20 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x2002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:3333, msg length 4 -00 00 20 02 - -result (UNITDATA) = 4 - ---- Reset BSS 1 with the old BVCI on BSS2's link --- - -Setup BSSGP: remote 0x01020304:3333, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:3333 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 - NS-VC replaced other count: 1 - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 4096, BVCI 4114, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 -Gbproxy global: -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:3333, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 10 12 - -CALLBACK, event 0, msg length 0, bvci 0x1012 -00 00 10 12 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1012, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 10 12 - -result (UNITDATA) = 4 - ---- Send message from SGSN to BSS 1, BVCI 0x1002 --- - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 10 12 - -CALLBACK, event 0, msg length 0, bvci 0x1012 -00 00 10 12 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1012, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 10 12 - -result (UNITDATA) = 4 - ---- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) --- - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 10 ff - -CALLBACK, event 0, msg length 0, bvci 0x10ff -00 00 10 ff - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 10 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 14 -00 00 00 00 41 07 81 05 04 82 10 ff 15 80 - -result (UNITDATA) = 14 - -Peers: - NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 -Gbproxy global: - Invalid BVC Identifier : 1 -=== test_gbproxy_ident_changes === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - -Current NS-VCIs: - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - ---- Setup BVCI 1 --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Setup BVCI 2 --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x2002(8194) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 20 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 20 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 20 02 - -result (BVC_RESET_ACK) = 9 - -Peers: - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN and back, BVCI 1 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 10 02 - -CALLBACK, event 0, msg length 0, bvci 0x1002 -00 00 10 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 10 02 - -result (UNITDATA) = 4 - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 10 02 - -CALLBACK, event 0, msg length 0, bvci 0x1002 -00 00 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 10 02 - -result (UNITDATA) = 4 - ---- Send message from BSS 1 to SGSN and back, BVCI 2 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 20 02 - -CALLBACK, event 0, msg length 0, bvci 0x2002 -00 00 20 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x2002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 20 02 - -result (UNITDATA) = 4 - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 20 02 - -CALLBACK, event 0, msg length 0, bvci 0x2002 -00 00 20 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x2002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 20 02 - -result (UNITDATA) = 4 - ---- Change NSEI --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x2000(8192) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 20 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 20 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x2000, peer 0x01020304:1111 - NS-VC changed NSEI count : 1 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - ---- Setup BVCI 1 --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Peers: - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 ---- Setup BVCI 3 --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x3002(12290) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 30 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 30 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 30 02 - -result (BVC_RESET_ACK) = 9 - -Peers: - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN and back, BVCI 1 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 10 02 - -CALLBACK, event 0, msg length 0, bvci 0x1002 -00 00 10 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 10 02 - -result (UNITDATA) = 4 - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 10 02 - -CALLBACK, event 0, msg length 0, bvci 0x1002 -00 00 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 10 02 - -result (UNITDATA) = 4 - ---- Send message from BSS 1 to SGSN and back, BVCI 2 (should fail) --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 20 02 - -CALLBACK, event 0, msg length 0, bvci 0x2002 -00 00 20 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x2002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 20 02 - -result (UNITDATA) = 4 - -Peers: - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 -PROCESSING UNITDATA from 0x05060708:32000 -00 00 20 02 - -CALLBACK, event 0, msg length 0, bvci 0x2002 -00 00 20 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x2002, msg length 0 (gprs_ns_sendmsg) -result (UNITDATA) = -22 - -Peers: - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NS Transmission error : 1 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN and back, BVCI 3 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 30 02 - -CALLBACK, event 0, msg length 0, bvci 0x3002 -00 00 30 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x3002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 30 02 - -result (UNITDATA) = 4 - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 30 02 - -CALLBACK, event 0, msg length 0, bvci 0x3002 -00 00 30 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x3002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 30 02 - -result (UNITDATA) = 4 - ---- Change NSVCI --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x2001(8193), NSEI 0x2000(8192) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 20 01 04 82 20 00 - -==> got signal NS_REPLACED: 0x2001/0.0.0.0:0 -> 0x1001/1.2.3.4:1111 - -==> got signal NS_RESET, NS-VC 0x2001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 20 01 04 82 20 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Current NS-VCIs: - VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111 - NS-VC replaced other count: 1 - VCI 0x1001, NSEI 0x2000, peer 0x00000000:0 - NS-VC changed NSEI count : 1 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - ---- Setup BVCI 1 --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Peers: - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NS Transmission error : 1 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 ---- Setup BVCI 4 --- - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x4002(16386) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 40 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 40 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 40 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 40 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 40 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 40 02 - -result (BVC_RESET_ACK) = 9 - -Peers: - NSEI 8192, BVCI 16386, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - NS Transmission error : 1 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN and back, BVCI 1 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 10 02 - -CALLBACK, event 0, msg length 0, bvci 0x1002 -00 00 10 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 10 02 - -result (UNITDATA) = 4 - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 10 02 - -CALLBACK, event 0, msg length 0, bvci 0x1002 -00 00 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 10 02 - -result (UNITDATA) = 4 - ---- Send message from BSS 1 to SGSN and back, BVCI 2 (should fail) --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 20 02 - -CALLBACK, event 0, msg length 0, bvci 0x2002 -00 00 20 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x2002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 20 02 - -result (UNITDATA) = 4 - -Peers: - NSEI 8192, BVCI 16386, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 2 - NS Transmission error : 1 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 -PROCESSING UNITDATA from 0x05060708:32000 -00 00 20 02 - -CALLBACK, event 0, msg length 0, bvci 0x2002 -00 00 20 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x2002, msg length 0 (gprs_ns_sendmsg) -result (UNITDATA) = -22 - -Peers: - NSEI 8192, BVCI 16386, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 2 - NS Transmission error : 2 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN and back, BVCI 3 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 30 02 - -CALLBACK, event 0, msg length 0, bvci 0x3002 -00 00 30 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x3002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 30 02 - -result (UNITDATA) = 4 - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 30 02 - -CALLBACK, event 0, msg length 0, bvci 0x3002 -00 00 30 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x3002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 30 02 - -result (UNITDATA) = 4 - ---- Send message from BSS 1 to SGSN and back, BVCI 4 --- - -PROCESSING UNITDATA from 0x01020304:1111 -00 00 40 02 - -CALLBACK, event 0, msg length 0, bvci 0x4002 -00 00 40 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x4002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 4 -00 00 40 02 - -result (UNITDATA) = 4 - -PROCESSING UNITDATA from 0x05060708:32000 -00 00 40 02 - -CALLBACK, event 0, msg length 0, bvci 0x4002 -00 00 40 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x4002, msg length 0 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 4 -00 00 40 02 - -result (UNITDATA) = 4 - -Gbproxy global: -Peers: - NSEI 8192, BVCI 16386, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 - NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 2 - NS Transmission error : 2 - TLLI-Cache: 0 - NSEI 8192, BVCI 4098, not blocked, RAI 112-332-16464-96 - NSEI mismatch : 1 - TLLI-Cache: 0 -=== Test IMSI/TMSI matching === - -=== test_gbproxy_ptmsi_assignment === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Gbproxy global: -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Establish first LLC connection --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 8000dead, IMSI (none), AGE 0 -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 8000dead, IMSI (none), AGE 0 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -result (IDENT RESPONSE) = 44 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 8000dead, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 80 00 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 80 00 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - Attach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/efe2b700 -> 8000dead/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/efe2b700 -> 8000dead/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 ---- Establish second LLC connection with the same P-TMSI --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 0d 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 46 42 6e - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 0d 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 46 42 6e - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 0d 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 46 42 6e - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef -> 8000beef, IMSI (none), AGE 0 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef -> 8000beef, IMSI (none), AGE 0 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 18 bf d2 01 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 18 bf d2 01 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 18 bf d2 01 - -result (IDENT RESPONSE) = 44 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef -> 8000beef, IMSI 12199999961718, AGE 0 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 80 00 be ef 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 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 80 00 be ef 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 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 be ef 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 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000beef/efe2b700 -> 8000beef/efe2b700, IMSI 12199999961718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 15 08 03 86 ac 47 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 15 08 03 86 ac 47 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 15 08 03 86 ac 47 - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000beef/efe2b700 -> 8000beef/efe2b700, IMSI 12199999961718, AGE 0 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef 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 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12199999961718, AGE 0 -Gbproxy global: -=== test_gbproxy_ra_patching === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - -Current NS-VCIs: - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 - -result (BVC_RESET) = 22 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 1 - TLLI-Cache: 0 -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -PROCESSING BVC_SUSPEND from 0x01020304:1111 -00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60 - -CALLBACK, event 0, msg length 15, bvci 0x0000 -00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 15 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 19 -00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 - -result (BVC_SUSPEND) = 19 - -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 1d 81 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 22 -00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 22 - -Gbproxy global: -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 2 - RAID patched (SGSN): 1 - TLLI from SGSN unknown : 1 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 21 63 54 40 50 60 19 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 8e cd 32 - -result (ATTACH REQUEST) = 79 - -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -result (IDENT REQUEST) = 27 - -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a - -result (IDENT RESPONSE) = 44 - -PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 bb c5 46 79 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 bb c5 46 79 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 bb c5 46 79 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 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 be 38 c0 - -result (ATTACH ACCEPT) = 92 - -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 08 01 c0 11 08 03 ea 67 11 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 08 01 c0 11 08 03 ea 67 11 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 08 01 c0 11 08 03 ea 67 11 - -result (ATTACH COMPLETE) = 35 - -PROCESSING ACT PDP CTX REQ (REPLACE APN) from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -CALLBACK, event 0, msg length 76, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 81 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 85 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 - -result (ACT PDP CTX REQ (REPLACE APN)) = 85 - -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -result (GMM INFO) = 70 - -PROCESSING ACT PDP CTX REQ (REPLACE APN) from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -CALLBACK, event 0, msg length 76, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 81 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 85 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 - -result (ACT PDP CTX REQ (REPLACE APN)) = 85 - -PROCESSING ACT PDP CTX REQ (REMOVE APN) from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -CALLBACK, event 0, msg length 76, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 71 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 75 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 30 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 85 fa 60 - -result (ACT PDP CTX REQ (REMOVE APN)) = 75 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 9 - RAID patched (SGSN): 2 - APN patched : 3 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - PDP Activation Request count : 3 - TLLI from SGSN unknown : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0, IMSI matches -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 7e e1 41 - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 7e e1 41 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 48 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 7e e1 41 - -result (DETACH REQ) = 48 - -PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef 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 89 41 c0 15 08 06 00 f7 35 f0 - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef 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 89 41 c0 15 08 06 00 f7 35 f0 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 ef 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 89 41 c0 15 08 06 00 f7 35 f0 - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 2 - APN patched : 3 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - Detach Request count : 1 - Detach Accept count : 1 - PDP Activation Request count : 3 - TLLI from SGSN unknown : 1 - TLLI-Cache: 0 ---- RA update --- - -PROCESSING RA UPD REQ from 0x01020304:1111 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97 - -CALLBACK, event 0, msg length 85, bvci 0x1002 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 85 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 89 -00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 1d f0 41 - -result (RA UPD REQ) = 89 - -PROCESSING RA UPD ACC from 0x05060708:32000 -00 00 10 02 00 bb c5 46 79 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 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 d7 59 65 - -CALLBACK, event 0, msg length 87, bvci 0x1002 -00 00 10 02 00 bb c5 46 79 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 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 d7 59 65 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 91 -00 00 10 02 00 bb c5 46 79 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 9d 41 c0 19 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 3a 03 54 - -result (RA UPD ACC) = 91 - -PROCESSING ACT PDP CTX REQ (REMOVE APN) from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -CALLBACK, event 0, msg length 76, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 71 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 75 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 30 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 85 fa 60 - -result (ACT PDP CTX REQ (REMOVE APN)) = 75 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 13 - RAID patched (SGSN): 3 - APN patched : 4 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - Detach Request count : 1 - Detach Accept count : 1 - PDP Activation Request count : 4 - TLLI from SGSN unknown : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI bbc54679/efe2b700 -> bbc54679/efe2b700, IMSI 12131415161718, AGE 0, IMSI matches -PROCESSING DETACH REQ (PWR OFF) from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 09 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 84 0c eb - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 09 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 84 0c eb - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 48 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 09 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 84 0c eb - -result (DETACH REQ (PWR OFF)) = 48 - -Gbproxy global: -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 14 - RAID patched (SGSN): 3 - APN patched : 4 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - Detach Request count : 2 - Detach Accept count : 1 - PDP Activation Request count : 4 - TLLI from SGSN unknown : 1 - TLLI-Cache: 0 ---- Bad cases --- - -PROCESSING ATTACH REQUEST (foreign RAI) from 0x01020304:1111 -00 00 10 02 01 bb 00 be ef 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb 00 be ef 99 99 99 40 50 60 19 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 2d c7 df - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 bb 00 be ef 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb 00 be ef 99 99 99 40 50 60 19 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 2d c7 df - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 bb 00 be ef 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb 00 be ef 99 99 99 40 50 60 19 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 2d c7 df - -result (ATTACH REQUEST (foreign RAI)) = 79 - -TLLI is already detached, shouldn't patch -PROCESSING ACT PDP CTX REQ from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -CALLBACK, event 0, msg length 76, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 76 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 80 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -result (ACT PDP CTX REQ) = 80 - -Invalid RAI, shouldn't patch -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 24 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 28 -00 00 00 00 41 07 81 21 15 92 0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 28 - -Gbproxy global: - Invalid Routing Area Identifier : 1 - Patch error: no peer : 1 -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 16 - RAID patched (SGSN): 3 - APN patched : 4 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - Detach Request count : 2 - Detach Accept count : 1 - PDP Activation Request count : 5 - TLLI from SGSN unknown : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI efe2b700 -> efe2b700, IMSI (none), AGE 0 - TLLI bb00beef -> bb00beef, IMSI (none), AGE 0 -=== test_gbproxy_ptmsi_patching === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Gbproxy global: -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 1 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 2 - TLLI patched (BSS ): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI (none), AGE 0 -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 2 - TLLI patched (BSS ): 1 - TLLI patched (SGSN): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI (none), AGE 0 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -result (IDENT RESPONSE) = 44 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 78 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 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 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 2 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 4 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 3 - TLLI patched (SGSN): 2 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 01 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 88 41 c0 09 08 21 04 ba 3d - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 4 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 3 - TLLI patched (SGSN): 3 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ACT PDP CTX REQ (REPLACE APN) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -CALLBACK, event 0, msg length 76, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 81 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 85 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 - -result (ACT PDP CTX REQ (REPLACE APN)) = 85 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 5 - RAID patched (SGSN): 1 - APN patched : 1 - TLLI patched (BSS ): 4 - TLLI patched (SGSN): 3 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING XID (UL) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -CALLBACK, event 0, msg length 38, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 38 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 42 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -result (XID (UL)) = 42 - -PROCESSING XID (DL) from 0x05060708:32000 -00 00 10 02 00 ef 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -CALLBACK, event 0, msg length 70, bvci 0x1002 -00 00 10 02 00 ef 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 70 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 74 -00 00 10 02 00 c0 de ad 01 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -result (XID (DL)) = 74 - -PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -CALLBACK, event 0, msg length 89, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 89 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 93 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -result (LL11 DNS QUERY (UL)) = 93 - -PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 -00 00 10 02 00 ef 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -CALLBACK, event 0, msg length 267, bvci 0x1002 -00 00 10 02 00 ef 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 267 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 271 -00 00 10 02 00 c0 de ad 01 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -result (LL11 DNS RESP (DL)) = 271 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 7 - RAID patched (SGSN): 1 - APN patched : 1 - TLLI patched (BSS ): 6 - TLLI patched (SGSN): 5 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING RA UPD REQ (P-TMSI 2) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 11 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 e2 6d 78 - -CALLBACK, event 0, msg length 85, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 11 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 e2 6d 78 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 85 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 89 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 11 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 69 a3 ae - -result (RA UPD REQ (P-TMSI 2)) = 89 - -PROCESSING RA UDP ACC (P-TMSI 2) from 0x05060708:32000 -00 00 10 02 00 ef 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 9d 41 c0 0d 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 98 76 54 17 16 9f e8 ea - -CALLBACK, event 0, msg length 87, bvci 0x1002 -00 00 10 02 00 ef 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 9d 41 c0 0d 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 98 76 54 17 16 9f e8 ea - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 91 -00 00 10 02 00 c0 de ad 01 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 9d 41 c0 0d 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 02 17 16 bb 4d a0 - -result (RA UDP ACC (P-TMSI 2)) = 91 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 9 - RAID patched (SGSN): 2 - APN patched : 1 - TLLI patched (BSS ): 7 - TLLI patched (SGSN): 6 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01/c0dead02 -> efe2b700/e0987654, IMSI 12131415161718, AGE 0 -PROCESSING RA UPD REQ (P-TMSI 3) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 02 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97 - -CALLBACK, event 0, msg length 85, bvci 0x1002 -00 00 10 02 01 c0 de ad 02 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 85 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 89 -00 00 10 02 01 e0 98 76 54 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 1d f0 41 - -result (RA UPD REQ (P-TMSI 3)) = 89 - -PROCESSING RA UDP ACC (P-TMSI 3) from 0x05060708:32000 -00 00 10 02 00 e0 98 76 54 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 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 - -CALLBACK, event 0, msg length 87, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 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 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 91 -00 00 10 02 00 c0 de ad 02 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 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 - -result (RA UDP ACC (P-TMSI 3)) = 91 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 11 - RAID patched (SGSN): 3 - APN patched : 1 - TLLI patched (BSS ): 8 - TLLI patched (SGSN): 7 - P-TMSI patched (SGSN): 3 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 2 - RoutingArea Update Accept count : 2 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01/c0dead03 -> efe2b700/e0543210, IMSI 12131415161718, AGE 0 -PROCESSING RA UPD COMPLETE from 0x01020304:1111 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 08 01 c0 19 08 0a d5 5f 5e - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 08 01 c0 19 08 0a d5 5f 5e - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 e0 54 32 10 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 08 01 c0 19 08 0a d5 5f 5e - -result (RA UPD COMPLETE) = 35 - -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 e0 54 32 10 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 88 41 c0 15 08 21 bb c1 c6 - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 e0 54 32 10 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 88 41 c0 15 08 21 bb c1 c6 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 03 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 88 41 c0 15 08 21 bb c1 c6 - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 12 - RAID patched (SGSN): 3 - APN patched : 1 - TLLI patched (BSS ): 9 - TLLI patched (SGSN): 8 - P-TMSI patched (SGSN): 3 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 2 - RoutingArea Update Accept count : 2 - RoutingArea Update Compltd count: 1 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead03 -> e0543210, IMSI 12131415161718, AGE 0 -PROCESSING LLC_DISCARDED from 0x01020304:1111 -00 00 00 00 2c 1f 84 c0 de ad 03 0f 81 01 04 82 10 02 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 c0 de ad 03 0f 81 01 04 82 10 02 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 19 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 23 -00 00 00 00 2c 1f 84 e0 54 32 10 0f 81 01 04 82 10 02 25 83 00 00 0c - -result (LLC_DISCARDED) = 23 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 12 - RAID patched (SGSN): 3 - APN patched : 1 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 8 - P-TMSI patched (SGSN): 3 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 2 - RoutingArea Update Accept count : 2 - RoutingArea Update Compltd count: 1 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead03 -> e0543210, IMSI 12131415161718, AGE 0 -PROCESSING BVC_SUSPEND from 0x01020304:1111 -00 00 00 00 0b 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 - -CALLBACK, event 0, msg length 15, bvci 0x0000 -00 00 00 00 0b 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 15 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 19 -00 00 00 00 0b 1f 84 e0 54 32 10 1b 86 21 63 54 40 50 60 - -result (BVC_SUSPEND) = 19 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 13 - RAID patched (SGSN): 3 - APN patched : 1 - TLLI patched (BSS ): 11 - TLLI patched (SGSN): 8 - P-TMSI patched (SGSN): 3 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 2 - RoutingArea Update Accept count : 2 - RoutingArea Update Compltd count: 1 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead03 -> e0543210, IMSI 12131415161718, AGE 0 -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 e0 54 32 10 1b 86 21 63 54 40 50 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 e0 54 32 10 1b 86 21 63 54 40 50 60 1d 81 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 22 -00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 22 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 13 - RAID patched (SGSN): 4 - APN patched : 1 - TLLI patched (BSS ): 11 - TLLI patched (SGSN): 9 - P-TMSI patched (SGSN): 3 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 2 - RoutingArea Update Accept count : 2 - RoutingArea Update Compltd count: 1 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead03 -> e0543210, IMSI 12131415161718, AGE 0 -PROCESSING PAGING_PS from 0x05060708:32000 -00 00 00 00 06 0d 88 11 12 13 14 15 16 17 18 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 e0 54 32 10 - -CALLBACK, event 0, msg length 34, bvci 0x0000 -00 00 00 00 06 0d 88 11 12 13 14 15 16 17 18 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 e0 54 32 10 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 34 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 38 -00 00 00 00 06 0d 88 11 12 13 14 15 16 17 18 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 c0 de ad 03 - -result (PAGING_PS) = 38 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 13 - RAID patched (SGSN): 5 - APN patched : 1 - TLLI patched (BSS ): 11 - TLLI patched (SGSN): 9 - P-TMSI patched (SGSN): 4 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 2 - RoutingArea Update Accept count : 2 - RoutingArea Update Compltd count: 1 - PDP Activation Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead03 -> e0543210, IMSI 12131415161718, AGE 0 -PROCESSING LLC_DISCARDED from 0x01020304:1111 -00 00 00 00 2c 1f 84 c0 de ad 03 0f 81 01 04 82 ee e1 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 c0 de ad 03 0f 81 01 04 82 ee e1 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 19 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 23 -00 00 00 00 2c 1f 84 e0 54 32 10 0f 81 01 04 82 ee e1 25 83 00 00 0c - -result (LLC_DISCARDED) = 23 - -Gbproxy global: -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 e0 54 32 10 1b 86 00 f1 99 00 63 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 e0 54 32 10 1b 86 00 f1 99 00 63 60 1d 81 01 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 24 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 28 -00 00 00 00 41 07 81 21 15 92 0c 1f 84 e0 54 32 10 1b 86 00 f1 99 00 63 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 28 - -Gbproxy global: - Invalid Routing Area Identifier : 1 - Patch error: no peer : 1 -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 e0 54 32 10 1b 86 99 69 54 40 50 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 e0 54 32 10 1b 86 99 69 54 40 50 60 1d 81 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 22 -00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 22 - -Gbproxy global: - Invalid Routing Area Identifier : 1 - Patch error: no peer : 1 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ee ba db ad 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 00 83 00 00 00 0e 88 41 c0 09 08 21 04 ba 3d - -CALLBACK, event 0, msg length 58, bvci 0x1002 -00 00 10 02 00 ee ba db ad 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 00 83 00 00 00 0e 88 41 c0 09 08 21 04 ba 3d - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 58 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 62 -00 00 10 02 00 ee ba db ad 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 00 83 00 00 00 0e 88 41 c0 09 08 21 04 ba 3d - -result (GMM INFO) = 62 - -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ee ba db ad 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 88 41 c0 0d 08 21 68 71 6b - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ee ba db ad 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 88 41 c0 0d 08 21 68 71 6b - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ee ba db ad 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 88 41 c0 0d 08 21 68 71 6b - -result (GMM INFO) = 70 - -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb aa cc a3 - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb aa cc a3 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 48 -00 00 10 02 01 e0 54 32 10 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 e0 54 32 10 19 03 b9 97 cb ea 6d af - -result (DETACH REQ) = 48 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 14 - RAID patched (SGSN): 6 - APN patched : 1 - TLLI patched (BSS ): 13 - TLLI patched (SGSN): 10 - P-TMSI patched (BSS ): 1 - P-TMSI patched (SGSN): 4 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 2 - RoutingArea Update Accept count : 2 - RoutingArea Update Compltd count: 1 - Detach Request count : 1 - PDP Activation Request count : 1 - TLLI from SGSN unknown : 2 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead03 -> e0543210, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 e0 54 32 10 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 89 41 c0 19 08 06 00 04 ff 52 - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 e0 54 32 10 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 89 41 c0 19 08 06 00 04 ff 52 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 03 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 89 41 c0 19 08 06 00 04 ff 52 - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 14 - RAID patched (SGSN): 6 - APN patched : 1 - TLLI patched (BSS ): 13 - TLLI patched (SGSN): 11 - P-TMSI patched (BSS ): 1 - P-TMSI patched (SGSN): 4 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 2 - RoutingArea Update Accept count : 2 - RoutingArea Update Compltd count: 1 - Detach Request count : 1 - Detach Accept count : 1 - PDP Activation Request count : 1 - TLLI from SGSN unknown : 2 - TLLI-Cache: 0 -Gbproxy global: - Invalid Routing Area Identifier : 1 - Patch error: no peer : 1 -=== test_gbproxy_ptmsi_patching_bad_cases === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Gbproxy global: -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 1 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 2 - TLLI patched (BSS ): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI (none), AGE 0 -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 2 - TLLI patched (BSS ): 1 - TLLI patched (SGSN): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI (none), AGE 0 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -result (IDENT RESPONSE) = 44 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 78 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 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 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 2 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH ACCEPT (duplicated) from 0x05060708:32000 -00 00 10 02 00 78 de ad 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 09 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 1d 9e 24 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 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 09 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 1d 9e 24 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 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 09 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 42 f6 fc - -result (ATTACH ACCEPT (duplicated)) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 3 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 2 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 4 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 3 - TLLI patched (SGSN): 3 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 2 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 0d 08 21 68 71 6b - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 0d 08 21 68 71 6b - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 01 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 88 41 c0 0d 08 21 68 71 6b - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 4 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 3 - TLLI patched (SGSN): 4 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 2 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 0d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 37 67 c6 - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 0d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 37 67 c6 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 48 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 0d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 37 67 c6 - -result (DETACH REQ) = 48 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 5 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 4 - TLLI patched (SGSN): 4 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 2 - Attach Completed count : 1 - Detach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef 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 89 41 c0 11 08 06 00 cf 8a 58 - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef 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 89 41 c0 11 08 06 00 cf 8a 58 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 01 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 89 41 c0 11 08 06 00 cf 8a 58 - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 5 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 4 - TLLI patched (SGSN): 5 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 2 - Attach Completed count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI-Cache: 0 -Gbproxy global: -=== test_gbproxy_imsi_acquisition === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Gbproxy global: -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 1 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 21 63 54 40 50 60 19 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 8e cd 32 - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - TLLI patched (BSS ): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - TLLI patched (BSS ): 1 - TLLI patched (SGSN): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -result (IDENT RESPONSE) = 44 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 4 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 78 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 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 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 4 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 2 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 5 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 3 - TLLI patched (SGSN): 2 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 01 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 88 41 c0 09 08 21 04 ba 3d - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 5 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 3 - TLLI patched (SGSN): 3 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING XID (UL) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -CALLBACK, event 0, msg length 38, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 38 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 42 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -result (XID (UL)) = 42 - -PROCESSING XID (DL) from 0x05060708:32000 -00 00 10 02 00 ef 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -CALLBACK, event 0, msg length 70, bvci 0x1002 -00 00 10 02 00 ef 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 70 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 74 -00 00 10 02 00 c0 de ad 01 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -result (XID (DL)) = 74 - -PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -CALLBACK, event 0, msg length 89, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 89 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 93 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -result (LL11 DNS QUERY (UL)) = 93 - -PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 -00 00 10 02 00 ef 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -CALLBACK, event 0, msg length 267, bvci 0x1002 -00 00 10 02 00 ef 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 267 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 271 -00 00 10 02 00 c0 de ad 01 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -result (LL11 DNS RESP (DL)) = 271 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 7 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 5 - TLLI patched (SGSN): 5 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING LLC_DISCARDED from 0x01020304:1111 -00 00 00 00 2c 1f 84 c0 de ad 01 0f 81 01 04 82 10 02 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 c0 de ad 01 0f 81 01 04 82 10 02 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 19 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 23 -00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c - -result (LLC_DISCARDED) = 23 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 7 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 6 - TLLI patched (SGSN): 5 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING LLC_DISCARDED from 0x05060708:32000 -00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 25 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 29 -00 00 00 00 41 07 81 27 15 93 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c - -result (LLC_DISCARDED) = 29 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 7 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 6 - TLLI patched (SGSN): 6 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING BVC_SUSPEND from 0x01020304:1111 -00 00 00 00 0b 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 - -CALLBACK, event 0, msg length 15, bvci 0x0000 -00 00 00 00 0b 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 15 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 19 -00 00 00 00 0b 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 - -result (BVC_SUSPEND) = 19 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 8 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 7 - TLLI patched (SGSN): 6 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 1d 81 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 22 -00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 22 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 8 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 7 - TLLI patched (SGSN): 7 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING LLC_DISCARDED from 0x01020304:1111 -00 00 00 00 2c 1f 84 c0 de ad 01 0f 81 01 04 82 ee e1 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 c0 de ad 01 0f 81 01 04 82 ee e1 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 19 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 23 -00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 ee e1 25 83 00 00 0c - -result (LLC_DISCARDED) = 23 - -Gbproxy global: - BSSGP protocol error (SGSN): 1 -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 ef e2 b7 00 1b 86 00 f1 99 00 63 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 ef e2 b7 00 1b 86 00 f1 99 00 63 60 1d 81 01 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 24 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 28 -00 00 00 00 41 07 81 21 15 92 0c 1f 84 ef e2 b7 00 1b 86 00 f1 99 00 63 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 28 - -Gbproxy global: - Invalid Routing Area Identifier : 1 - BSSGP protocol error (SGSN): 1 - Patch error: no peer : 1 -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 ef e2 b7 00 1b 86 99 69 54 40 50 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 ef e2 b7 00 1b 86 99 69 54 40 50 60 1d 81 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 22 -00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 22 - -Gbproxy global: - Invalid Routing Area Identifier : 1 - BSSGP protocol error (SGSN): 1 - Patch error: no peer : 1 -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 48 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de - -result (DETACH REQ) = 48 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 9 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 9 - TLLI patched (SGSN): 8 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - Detach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef 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 89 41 c0 0d 08 06 00 aa ab ee - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef 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 89 41 c0 0d 08 06 00 aa ab ee - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 01 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 89 41 c0 0d 08 06 00 aa ab ee - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 9 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 9 - TLLI patched (SGSN): 9 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI-Cache: 0 -PROCESSING RA UPD REQ from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97 - -CALLBACK, event 0, msg length 85, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (RA UPD REQ) = 0 - -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 13 14 15 16 17 18 35 23 fc - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 13 14 15 16 17 18 35 23 fc - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 85 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 89 -00 00 10 02 01 78 de ad 02 00 00 04 08 88 21 63 54 00 63 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 96 3e 97 - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 9 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead02, IMSI 12131415161718, AGE 0 -PROCESSING RA UDP ACC from 0x05060708:32000 -00 00 10 02 00 78 de ad 02 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 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 36 98 77 - -CALLBACK, event 0, msg length 87, bvci 0x1002 -00 00 10 02 00 78 de ad 02 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 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 36 98 77 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 91 -00 00 10 02 00 80 00 de ad 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 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 - -result (RA UDP ACC) = 91 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 10 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead03 -> 78dead02/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb aa cc a3 - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb aa cc a3 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 06 00 11 f5 c0 - -result (DETACH REQ) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 10 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - Detach Request count : 2 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead03 -> 78dead02/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef 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 89 41 c0 15 08 06 00 f7 35 f0 - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef 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 89 41 c0 15 08 06 00 f7 35 f0 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 03 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 89 41 c0 15 08 06 00 f7 35 f0 - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 11 - P-TMSI patched (SGSN): 2 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - Detach Request count : 2 - Detach Accept count : 2 - TLLI-Cache: 0 -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 44 b6 bb - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 44 b6 bb - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 25 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 1d aa 57 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 25 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 1d aa 57 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 05 08 15 01 8f 47 9e - -result (ATTACH REQUEST) = 0 - -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 29 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb d9 1d ef - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 29 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb d9 1d ef - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 09 08 06 00 da 80 ca - -result (DETACH REQ) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 11 - P-TMSI patched (SGSN): 2 - Attach Request count : 3 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - Detach Request count : 3 - Detach Accept count : 2 - TLLI-Cache: 0 -PROCESSING DETACH REQ (unknown TLLI) from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 2d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 0d 30 0d - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 2d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 0d 30 0d - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 06 00 11 f5 c0 - -result (DETACH REQ (unknown TLLI)) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 11 - P-TMSI patched (SGSN): 2 - Attach Request count : 3 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 1 - RoutingArea Update Accept count : 1 - Detach Request count : 4 - Detach Accept count : 2 - TLLI-Cache: 0 -PROCESSING RA UPD REQ from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 70 80 00 80 0e 00 3e 01 c0 31 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 d8 cf d8 - -CALLBACK, event 0, msg length 85, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 70 80 00 80 0e 00 3e 01 c0 31 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 d8 cf d8 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (RA UPD REQ) = 0 - -PROCESSING RA UPD REQ from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 70 80 00 80 0e 00 3e 01 c0 35 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 ac 9c 37 - -CALLBACK, event 0, msg length 85, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 70 80 00 80 0e 00 3e 01 c0 35 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 ac 9c 37 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 05 08 15 01 8f 47 9e - -result (RA UPD REQ) = 0 - -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 39 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 44 b6 8a - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 39 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 44 b6 8a - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 09 08 06 00 da 80 ca - -result (DETACH REQ) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 11 - P-TMSI patched (SGSN): 2 - Attach Request count : 3 - Attach Accept count : 1 - Attach Completed count : 1 - RoutingArea Update Request count: 3 - RoutingArea Update Accept count : 1 - Detach Request count : 5 - Detach Accept count : 2 - TLLI-Cache: 0 -Gbproxy global: - Invalid Routing Area Identifier : 1 - BSSGP protocol error (SGSN): 1 - Patch error: no peer : 1 -=== test_gbproxy_secondary_sgsn === ---- Initialise SGSN 1 --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - ---- Initialise SGSN 2 --- - -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 12 -02 00 81 01 01 82 01 03 04 82 01 02 - -PROCESSING RESET_ACK from 0x15161718:32001 -03 01 82 01 03 04 82 01 02 - -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x15161718:32001 -0b - -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x15161718:32001 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0103/21.22.23.24:32001 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x15161718:32001 -0a - -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 -0b - -result (ALIVE) = 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x0000(0) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 00 00 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 00 00 - -result (BVC_RESET) = 9 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 00 00 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 00 00 - -result (BVC_RESET_ACK) = -2 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -PROCESSING BVC_RESET_ACK from 0x15161718:32001 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 1 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0103, NSEI 0x0102, peer 0x15161718:32001 - NS-VC Block count : 1 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Gbproxy global: - Invalid BVC Identifier : 1 - Patch error: no peer : 1 -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 1 - TLLI-Cache: 0 ---- Flow control --- - -PROCESSING FLOW_CONTROL_BVC from 0x01020304:1111 -00 00 10 02 26 1e 81 01 05 82 01 dc 03 82 02 76 01 82 00 50 1c 82 02 58 06 82 00 03 - -CALLBACK, event 0, msg length 24, bvci 0x1002 -00 00 10 02 26 1e 81 01 05 82 01 dc 03 82 02 76 01 82 00 50 1c 82 02 58 06 82 00 03 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 28 -00 00 10 02 26 1e 81 01 05 82 01 dc 03 82 02 76 01 82 00 50 1c 82 02 58 06 82 00 03 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 28 -00 00 10 02 26 1e 81 01 05 82 01 dc 03 82 02 76 01 82 00 50 1c 82 02 58 06 82 00 03 - -result (FLOW_CONTROL_BVC) = 28 - -PROCESSING FLOW_CONTROL_BVC_ACK from 0x05060708:32000 -00 00 10 02 27 1e 81 01 - -CALLBACK, event 0, msg length 4, bvci 0x1002 -00 00 10 02 27 1e 81 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 4 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 8 -00 00 10 02 27 1e 81 01 - -result (FLOW_CONTROL_BVC_ACK) = 8 - -PROCESSING FLOW_CONTROL_BVC_ACK from 0x15161718:32001 -00 00 10 02 27 1e 81 01 - -CALLBACK, event 0, msg length 4, bvci 0x1002 -00 00 10 02 27 1e 81 01 - -result (FLOW_CONTROL_BVC_ACK) = 0 - ---- Establish GPRS connection (SGSN 1) --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress, SGSN NSEI 65535 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 2 - TLLI patched (BSS ): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 78 de ad 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 2 - TLLI patched (BSS ): 1 - TLLI patched (SGSN): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -result (IDENT RESPONSE) = 44 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 1 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 78dead00, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 78 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 de ad 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 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 3 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 2 - TLLI patched (SGSN): 2 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 4 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 3 - TLLI patched (SGSN): 2 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead/c0dead01 -> 78dead00/efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 01 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 88 41 c0 09 08 21 04 ba 3d - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 4 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 3 - TLLI patched (SGSN): 3 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING XID (UL) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -CALLBACK, event 0, msg length 38, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 38 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 42 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -result (XID (UL)) = 42 - -PROCESSING XID (DL) from 0x05060708:32000 -00 00 10 02 00 ef 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -CALLBACK, event 0, msg length 70, bvci 0x1002 -00 00 10 02 00 ef 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 70 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 74 -00 00 10 02 00 c0 de ad 01 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 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -result (XID (DL)) = 74 - -PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -CALLBACK, event 0, msg length 89, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 89 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 93 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -result (LL11 DNS QUERY (UL)) = 93 - -PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 -00 00 10 02 00 ef 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -CALLBACK, event 0, msg length 267, bvci 0x1002 -00 00 10 02 00 ef 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 267 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 271 -00 00 10 02 00 c0 de ad 01 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 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -result (LL11 DNS RESP (DL)) = 271 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 6 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 5 - TLLI patched (SGSN): 5 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING LLC_DISCARDED from 0x01020304:1111 -00 00 00 00 2c 1f 84 c0 de ad 01 0f 81 01 04 82 10 02 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 c0 de ad 01 0f 81 01 04 82 10 02 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 19 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 23 -00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c - -result (LLC_DISCARDED) = 23 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 6 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 6 - TLLI patched (SGSN): 5 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING LLC_DISCARDED from 0x05060708:32000 -00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 25 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 29 -00 00 00 00 41 07 81 27 15 93 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c - -result (LLC_DISCARDED) = 29 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 6 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 6 - TLLI patched (SGSN): 6 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING BVC_SUSPEND from 0x01020304:1111 -00 00 00 00 0b 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 - -CALLBACK, event 0, msg length 15, bvci 0x0000 -00 00 00 00 0b 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 15 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 19 -00 00 00 00 0b 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 - -result (BVC_SUSPEND) = 19 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 7 - RAID patched (SGSN): 1 - TLLI patched (BSS ): 7 - TLLI patched (SGSN): 6 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 -00 00 00 00 0c 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 1d 81 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 22 -00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 22 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 7 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 7 - TLLI patched (SGSN): 7 - P-TMSI patched (SGSN): 1 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 ---- Establish GPRS connection (SGSN 2) --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 11 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 bf 00 5c - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 11 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 bf 00 5c - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 7 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 7 - TLLI patched (SGSN): 7 - P-TMSI patched (SGSN): 1 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef -> 78dead02, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress, SGSN NSEI 65535 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 15 08 16 08 11 12 99 99 99 16 17 18 b2 dd 58 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 15 08 16 08 11 12 99 99 99 16 17 18 b2 dd 58 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 79 -00 00 10 02 01 78 de ad 02 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 11 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 bf 00 5c - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 8 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 8 - TLLI patched (SGSN): 7 - P-TMSI patched (SGSN): 1 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef -> 78dead02, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING IDENT REQUEST from 0x15161718:32001 -00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 78 de ad 02 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 8 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 8 - TLLI patched (SGSN): 8 - P-TMSI patched (SGSN): 1 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef -> 78dead02, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 18 a5 cc b3 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 18 a5 cc b3 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 44 -00 00 10 02 01 78 de ad 02 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 19 08 16 08 11 12 99 99 99 16 17 18 a5 cc b3 - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 9 - RAID patched (SGSN): 2 - TLLI patched (BSS ): 9 - TLLI patched (SGSN): 8 - P-TMSI patched (SGSN): 1 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef -> 78dead02, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING ATTACH ACCEPT from 0x15161718:32001 -00 00 10 02 00 78 de ad 02 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 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 e0 98 76 54 cb 1c 5b - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 02 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 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 e0 98 76 54 cb 1c 5b - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 be ef 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 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 03 32 40 fa - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 9 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 9 - TLLI patched (SGSN): 9 - P-TMSI patched (SGSN): 2 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef/c0dead03 -> 78dead02/e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 1d 08 03 5e 3a ea - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 1d 08 03 5e 3a ea - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 35 -00 00 10 02 01 e0 98 76 54 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 1d 08 03 5e 3a ea - -result (ATTACH COMPLETE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 9 - P-TMSI patched (SGSN): 2 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI 8000beef/c0dead03 -> 78dead02/e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING GMM INFO from 0x15161718:32001 -00 00 10 02 00 e0 98 76 54 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 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 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 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 03 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 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 10 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 10 - TLLI patched (SGSN): 10 - P-TMSI patched (SGSN): 2 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING XID (UL) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -CALLBACK, event 0, msg length 38, bvci 0x1002 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 38 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 42 -00 00 10 02 01 e0 98 76 54 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 - -result (XID (UL)) = 0 - -PROCESSING XID (DL) from 0x15161718:32001 -00 00 10 02 00 e0 98 76 54 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 99 99 99 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -CALLBACK, event 0, msg length 70, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 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 99 99 99 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 70 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 74 -00 00 10 02 00 c0 de ad 03 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 99 99 99 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e - -result (XID (DL)) = 74 - -PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -CALLBACK, event 0, msg length 89, bvci 0x1002 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 89 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 93 -00 00 10 02 01 e0 98 76 54 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 - -result (LL11 DNS QUERY (UL)) = 0 - -PROCESSING LL11 DNS RESP (DL) from 0x15161718:32001 -00 00 10 02 00 e0 98 76 54 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 99 99 99 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -CALLBACK, event 0, msg length 267, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 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 99 99 99 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 267 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 271 -00 00 10 02 00 c0 de ad 03 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 99 99 99 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 - -result (LL11 DNS RESP (DL)) = 271 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 12 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 12 - TLLI patched (SGSN): 12 - P-TMSI patched (SGSN): 2 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING LLC_DISCARDED from 0x01020304:1111 -00 00 00 00 2c 1f 84 c0 de ad 03 0f 81 01 04 82 10 02 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 c0 de ad 03 0f 81 01 04 82 10 02 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x0000, msg length 19 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 23 -00 00 00 00 2c 1f 84 e0 98 76 54 0f 81 01 04 82 10 02 25 83 00 00 0c - -result (LLC_DISCARDED) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 12 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 13 - TLLI patched (SGSN): 12 - P-TMSI patched (SGSN): 2 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING LLC_DISCARDED from 0x15161718:32001 -00 00 00 00 2c 1f 84 e0 98 76 54 0f 81 01 04 82 10 02 25 83 00 00 0c - -CALLBACK, event 0, msg length 19, bvci 0x0000 -00 00 00 00 2c 1f 84 e0 98 76 54 0f 81 01 04 82 10 02 25 83 00 00 0c - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x0000, msg length 25 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 29 -00 00 00 00 41 07 81 27 15 93 2c 1f 84 e0 98 76 54 0f 81 01 04 82 10 02 25 83 00 00 0c - -result (LLC_DISCARDED) = 29 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 12 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 13 - TLLI patched (SGSN): 13 - P-TMSI patched (SGSN): 2 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING BVC_SUSPEND from 0x01020304:1111 -00 00 00 00 0b 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 - -CALLBACK, event 0, msg length 15, bvci 0x0000 -00 00 00 00 0b 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x0000, msg length 15 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 19 -00 00 00 00 0b 1f 84 e0 98 76 54 1b 86 21 63 54 40 50 60 - -result (BVC_SUSPEND) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 13 - RAID patched (SGSN): 3 - TLLI patched (BSS ): 14 - TLLI patched (SGSN): 13 - P-TMSI patched (SGSN): 2 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING BVC_SUSPEND_ACK from 0x15161718:32001 -00 00 00 00 0c 1f 84 e0 98 76 54 1b 86 21 63 54 40 50 60 1d 81 01 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 0c 1f 84 e0 98 76 54 1b 86 21 63 54 40 50 60 1d 81 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 22 -00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 - -result (BVC_SUSPEND_ACK) = 22 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 13 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 14 - TLLI patched (SGSN): 14 - P-TMSI patched (SGSN): 2 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 ---- Establish GPRS connection (SGSN 2, P-TMSI collision) --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 44 b6 bb - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 44 b6 bb - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 fe ed 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 13 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 14 - TLLI patched (SGSN): 14 - P-TMSI patched (SGSN): 2 - Attach Request count : 3 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI 8000feed -> 78dead04, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress, SGSN NSEI 65535 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 25 08 16 08 11 12 99 99 99 26 27 28 58 c7 cb - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 25 08 16 08 11 12 99 99 99 26 27 28 58 c7 cb - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 79 -00 00 10 02 01 78 de ad 04 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 44 b6 bb - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 14 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 15 - TLLI patched (SGSN): 14 - P-TMSI patched (SGSN): 2 - Attach Request count : 3 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI 8000feed -> 78dead04, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING IDENT REQUEST from 0x15161718:32001 -00 00 10 02 00 78 de ad 04 00 50 20 16 82 02 58 0e 89 41 c0 19 08 15 01 a2 f2 a4 - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 78 de ad 04 00 50 20 16 82 02 58 0e 89 41 c0 19 08 15 01 a2 f2 a4 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 fe ed 00 50 20 16 82 02 58 0e 89 41 c0 19 08 15 01 a2 f2 a4 - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 14 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 15 - TLLI patched (SGSN): 15 - P-TMSI patched (SGSN): 2 - Attach Request count : 3 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI 8000feed -> 78dead04, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 28 4f d6 20 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 fe ed 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 28 4f d6 20 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 44 -00 00 10 02 01 78 de ad 04 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 29 08 16 08 11 12 99 99 99 26 27 28 4f d6 20 - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 15 - RAID patched (SGSN): 4 - TLLI patched (BSS ): 16 - TLLI patched (SGSN): 15 - P-TMSI patched (SGSN): 2 - Attach Request count : 3 - Attach Accept count : 2 - Attach Completed count : 2 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI 8000feed -> 78dead04, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING ATTACH ACCEPT (P-TMSI 1) from 0x15161718:32001 -00 00 10 02 00 78 de ad 04 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 99 99 99 26 27 28 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 74 91 01 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 78 de ad 04 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 99 99 99 26 27 28 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 74 91 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 80 00 fe ed 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 99 99 99 26 27 28 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 05 3e 78 6e - -result (ATTACH ACCEPT (P-TMSI 1)) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 15 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 16 - TLLI patched (SGSN): 16 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 2 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI 8000feed/c0dead05 -> 78dead04/efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 c0 de ad 05 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 2d 08 03 43 50 ea - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 c0 de ad 05 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 2d 08 03 43 50 ea - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 2d 08 03 43 50 ea - -result (ATTACH COMPLETE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 16 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 17 - TLLI patched (SGSN): 16 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI 8000feed/c0dead05 -> 78dead04/efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 -PROCESSING GMM INFO from 0x15161718:32001 -00 00 10 02 00 ef 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 99 99 99 26 27 28 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 99 99 99 26 27 28 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 c0 de ad 05 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 99 99 99 26 27 28 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 16 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 17 - TLLI patched (SGSN): 17 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 ---- Shutdown GPRS connection (SGSN 1) --- - -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 31 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 57 e6 15 - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 31 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 57 e6 15 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 48 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 31 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 57 e6 15 - -result (DETACH REQ) = 48 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 17 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 18 - TLLI patched (SGSN): 17 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 1 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI c0dead01 -> efe2b700, IMSI 12131415161718, AGE 0, SGSN NSEI 256 - TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 -PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef 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 89 41 c0 25 08 06 00 4d 09 cd - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef 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 89 41 c0 25 08 06 00 4d 09 cd - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 01 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 89 41 c0 25 08 06 00 4d 09 cd - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 17 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 18 - TLLI patched (SGSN): 18 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 ---- Shutdown GPRS connection (SGSN 2) --- - -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 35 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 83 cb f7 - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 35 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 83 cb f7 - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 48 -00 00 10 02 01 e0 98 76 54 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 35 08 05 01 18 05 f4 e0 98 76 54 19 03 b9 97 cb b4 31 31 - -result (DETACH REQ) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 18 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 19 - TLLI patched (SGSN): 18 - P-TMSI patched (BSS ): 1 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 2 - Detach Accept count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI c0dead03 -> e0987654, IMSI 12199999961718, AGE 0, IMSI matches, SGSN NSEI 258 - TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 -PROCESSING DETACH ACC from 0x15161718:32001 -00 00 10 02 00 e0 98 76 54 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 99 99 99 16 17 18 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 e0 98 76 54 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 99 99 99 16 17 18 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 03 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 99 99 99 16 17 18 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 18 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 19 - TLLI patched (SGSN): 19 - P-TMSI patched (BSS ): 1 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 2 - Detach Accept count : 2 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 ---- Shutdown GPRS connection (SGSN 2, P-TMSI 1) --- - -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 c0 de ad 05 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 39 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 44 b6 8a - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 c0 de ad 05 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 39 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 44 b6 8a - -NS UNITDATA MESSAGE to SGSN 2, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN 2 at 0x15161718:32001, msg length 48 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 39 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 44 b6 8a - -result (DETACH REQ) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 19 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 20 - TLLI patched (SGSN): 19 - P-TMSI patched (BSS ): 1 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 3 - Detach Accept count : 2 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0dead05 -> efe2b700, IMSI 12199999962728, AGE 0, IMSI matches, SGSN NSEI 258 -PROCESSING DETACH ACC from 0x15161718:32001 -00 00 10 02 00 ef 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 99 99 99 26 27 28 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef 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 99 99 99 26 27 28 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 c0 de ad 05 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 99 99 99 26 27 28 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - RAID patched (BSS ): 19 - RAID patched (SGSN): 5 - TLLI patched (BSS ): 20 - TLLI patched (SGSN): 20 - P-TMSI patched (BSS ): 1 - P-TMSI patched (SGSN): 3 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 3 - Detach Accept count : 3 - TLLI-Cache: 0 -Gbproxy global: - Invalid BVC Identifier : 1 - BSSGP protocol error (SGSN): 2 - Patch error: no peer : 1 -=== test_gbproxy_keep_info === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Gbproxy global: -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Send message from BSS 1 to SGSN, BVCI 0x1002 --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 40 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 44 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -result (IDENT RESPONSE) = 44 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - Attach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef 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 88 41 c0 09 08 21 04 ba 3d - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 44 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 48 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de - -result (DETACH REQ) = 48 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - Detach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x05060708:32000 -00 00 10 02 00 ef 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 89 41 c0 0d 08 06 00 aa ab ee - -CALLBACK, event 0, msg length 67, bvci 0x1002 -00 00 10 02 00 ef 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 89 41 c0 0d 08 06 00 aa ab ee - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -00 00 10 02 00 ef 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 89 41 c0 0d 08 06 00 aa ab ee - -result (DETACH ACC) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - Attach Accept count : 1 - Attach Completed count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 15 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 e6 71 c7 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 15 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 e6 71 c7 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 15 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 e6 71 c7 - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 1 - Attach Completed count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 19 08 03 32 f1 bc - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 19 08 03 32 f1 bc - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 19 08 03 32 f1 bc - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ (re-attach) from 0x05060708:32000 -00 00 10 02 00 ef 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 8b 41 c0 15 08 05 01 25 0a 67 0e 96 - -CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef 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 8b 41 c0 15 08 05 01 25 0a 67 0e 96 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef 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 8b 41 c0 15 08 05 01 25 0a 67 0e 96 - -result (DETACH REQ (re-attach)) = 73 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 1d 08 06 3d 1c 8b - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 1d 08 06 3d 1c 8b - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 1d 08 06 3d 1c 8b - -result (DETACH ACC) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 2 - Attach Accept count : 2 - Attach Completed count : 2 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 44 db cc - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 44 db cc - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 44 db cc - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 3 - Attach Accept count : 2 - Attach Completed count : 2 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 2 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 25 08 03 9b c6 47 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 25 08 03 9b c6 47 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 25 08 03 9b c6 47 - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef 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 8b 41 c0 1d 08 05 02 25 0a dd 56 6c - -CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef 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 8b 41 c0 1d 08 05 02 25 0a dd 56 6c - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef 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 8b 41 c0 1d 08 05 02 25 0a dd 56 6c - -result (DETACH REQ) = 73 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 29 08 06 4c bd dd - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 29 08 06 4c bd dd - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 29 08 06 4c bd dd - -result (DETACH ACC) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 3 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST (IMSI) from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 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 a5 85 76 - -CALLBACK, event 0, msg length 78, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 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 a5 85 76 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 78 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 82 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 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 a5 85 76 - -result (ATTACH REQUEST (IMSI)) = 82 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 4 - Attach Accept count : 3 - Attach Completed count : 3 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 4 - Attach Accept count : 4 - Attach Completed count : 3 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 31 08 03 fc 2b 11 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 31 08 03 fc 2b 11 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 31 08 03 fc 2b 11 - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 4 - Attach Accept count : 4 - Attach Completed count : 4 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef 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 8b 41 c0 25 08 05 02 25 0a 8e ee 85 - -CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef 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 8b 41 c0 25 08 05 02 25 0a 8e ee 85 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef 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 8b 41 c0 25 08 05 02 25 0a 8e ee 85 - -result (DETACH REQ) = 73 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 4 - Attach Accept count : 4 - Attach Completed count : 4 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 35 08 06 f3 c6 26 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 35 08 06 f3 c6 26 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 35 08 06 f3 c6 26 - -result (DETACH ACC) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 4 - Attach Accept count : 4 - Attach Completed count : 4 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 39 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 e4 85 12 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 39 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 e4 85 12 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 39 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 e4 85 12 - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 5 - Attach Accept count : 4 - Attach Completed count : 4 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 5 - Attach Accept count : 5 - Attach Completed count : 4 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 3d 08 03 48 76 ea - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 3d 08 03 48 76 ea - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 3d 08 03 48 76 ea - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 5 - Attach Accept count : 5 - Attach Completed count : 5 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING RA UPD REQ from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 41 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 30 73 32 - -CALLBACK, event 0, msg length 85, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 41 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 30 73 32 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 85 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 89 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 41 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 30 73 32 - -result (RA UPD REQ) = 89 - -PROCESSING RA UDP REJ from 0x05060708:32000 -00 00 10 02 00 ef 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 8a 41 c0 2d 08 0b 0a 00 41 30 a7 - -CALLBACK, event 0, msg length 68, bvci 0x1002 -00 00 10 02 00 ef 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 8a 41 c0 2d 08 0b 0a 00 41 30 a7 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 68 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 72 -00 00 10 02 00 ef 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 8a 41 c0 2d 08 0b 0a 00 41 30 a7 - -result (RA UDP REJ) = 72 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 5 - Attach Accept count : 5 - Attach Completed count : 5 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 45 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 50 cc c3 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 45 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 50 cc c3 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 6 - Attach Accept count : 5 - Attach Completed count : 5 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 2 - TLLI-Cache: 2 - TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 49 08 16 08 11 12 13 14 15 16 17 18 86 ca 3f - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 49 08 16 08 11 12 13 14 15 16 17 18 86 ca 3f - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 45 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 50 cc c3 - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 6 - Attach Accept count : 5 - Attach Completed count : 5 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 6 - Attach Accept count : 6 - Attach Completed count : 5 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 4d 08 03 79 84 ea - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 4d 08 03 79 84 ea - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 4d 08 03 79 84 ea - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 6 - Attach Accept count : 6 - Attach Completed count : 6 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef 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 8b 41 c0 35 08 05 02 25 0a 9b fa 57 - -CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef 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 8b 41 c0 35 08 05 02 25 0a 9b fa 57 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef 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 8b 41 c0 35 08 05 02 25 0a 9b fa 57 - -result (DETACH REQ) = 73 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 6 - Attach Accept count : 6 - Attach Completed count : 6 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 51 08 06 a5 d9 70 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 51 08 06 a5 d9 70 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 51 08 06 a5 d9 70 - -result (DETACH ACC) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 6 - Attach Accept count : 6 - Attach Completed count : 6 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST (local TLLI) from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 55 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 f9 cc e9 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 55 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 f9 cc e9 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 55 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 f9 cc e9 - -result (ATTACH REQUEST (local TLLI)) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 7 - Attach Accept count : 6 - Attach Completed count : 6 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH ACCEPT from 0x05060708:32000 -00 00 10 02 00 ef 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 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e - -CALLBACK, event 0, msg length 88, bvci 0x1002 -00 00 10 02 00 ef 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 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -00 00 10 02 00 ef 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 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 7 - Attach Accept count : 7 - Attach Completed count : 6 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 59 08 03 1e 69 bc - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 59 08 03 1e 69 bc - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 59 08 03 1e 69 bc - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 7 - Attach Accept count : 7 - Attach Completed count : 7 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ (re-attach) from 0x05060708:32000 -00 00 10 02 00 ef 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 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad - -CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef 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 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef 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 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad - -result (DETACH REQ (re-attach)) = 73 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 7 - Attach Accept count : 7 - Attach Completed count : 7 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 5d 08 06 11 84 8b - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 5d 08 06 11 84 8b - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 5d 08 06 11 84 8b - -result (DETACH ACC) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 7 - Attach Accept count : 7 - Attach Completed count : 7 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 61 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 5b 66 e2 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 61 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 5b 66 e2 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 61 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 5b 66 e2 - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 8 - Attach Accept count : 7 - Attach Completed count : 7 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 8 - Attach Accept count : 8 - Attach Completed count : 7 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 65 08 03 b7 5e 47 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 65 08 03 b7 5e 47 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 65 08 03 b7 5e 47 - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 8 - Attach Accept count : 8 - Attach Completed count : 8 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 45 08 21 9c 7f c6 - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 45 08 21 9c 7f c6 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef 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 88 41 c0 45 08 21 9c 7f c6 - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 8 - Attach Accept count : 8 - Attach Completed count : 8 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH REQUEST (unexpected, IMSI) from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 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 e1 11 8e - -CALLBACK, event 0, msg length 78, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 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 e1 11 8e - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 78 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 82 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 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 e1 11 8e - -result (ATTACH REQUEST (unexpected, IMSI)) = 82 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 9 - Attach Accept count : 8 - Attach Completed count : 8 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 9 - Attach Accept count : 9 - Attach Completed count : 8 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 6d 08 03 6f c8 ea - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 6d 08 03 6f c8 ea - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 6d 08 03 6f c8 ea - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 9 - Attach Accept count : 9 - Attach Completed count : 9 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef 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 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b - -CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef 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 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef 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 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b - -result (DETACH REQ) = 73 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 9 - Attach Accept count : 9 - Attach Completed count : 9 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 71 08 06 b3 95 70 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 71 08 06 b3 95 70 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 71 08 06 b3 95 70 - -result (DETACH ACC) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 9 - Attach Accept count : 9 - Attach Completed count : 9 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 75 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 ab 17 53 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 75 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 ab 17 53 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 75 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 ab 17 53 - -result (ATTACH REQUEST) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 10 - Attach Accept count : 9 - Attach Completed count : 9 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 10 - Attach Accept count : 10 - Attach Completed count : 9 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 79 08 03 08 25 bc - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 79 08 03 08 25 bc - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 79 08 03 08 25 bc - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 10 - Attach Accept count : 10 - Attach Completed count : 10 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING GMM INFO from 0x05060708:32000 -00 00 10 02 00 ef 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 88 41 c0 55 08 21 97 59 c6 - -CALLBACK, event 0, msg length 66, bvci 0x1002 -00 00 10 02 00 ef 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 88 41 c0 55 08 21 97 59 c6 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 66 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 70 -00 00 10 02 00 ef 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 88 41 c0 55 08 21 97 59 c6 - -result (GMM INFO) = 70 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 10 - Attach Accept count : 10 - Attach Completed count : 10 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH REQUEST (unexpected) from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 7d 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 a2 24 d0 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 7d 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 a2 24 d0 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 7d 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 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 a2 24 d0 - -result (ATTACH REQUEST (unexpected)) = 79 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 11 - Attach Accept count : 10 - Attach Completed count : 10 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - 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 - -CALLBACK, event 0, msg length 88, bvci 0x1002 -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 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 88 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 92 -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 - -result (ATTACH ACCEPT) = 92 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 11 - Attach Accept count : 11 - Attach Completed count : 10 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH COMPLETE from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 81 08 03 b9 71 10 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 81 08 03 b9 71 10 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 81 08 03 b9 71 10 - -result (ATTACH COMPLETE) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 11 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700/efe2b700 -> afe2b700/efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH REQ from 0x05060708:32000 -00 00 10 02 00 ef 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 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 - -CALLBACK, event 0, msg length 69, bvci 0x1002 -00 00 10 02 00 ef 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 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 73 -00 00 10 02 00 ef 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 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 - -result (DETACH REQ) = 73 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 11 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0 -PROCESSING DETACH ACC from 0x01020304:1111 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 85 08 06 b6 9c 27 - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 85 08 06 b6 9c 27 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 85 08 06 b6 9c 27 - -result (DETACH ACC) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 11 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 89 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 21 24 df - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 89 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 21 24 df - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 12 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 8d 08 16 08 11 12 13 14 15 16 17 18 74 ac 38 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 8d 08 16 08 11 12 13 14 15 16 17 18 74 ac 38 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 89 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 21 24 df - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 12 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0 -PROCESSING ATTACH REJECT 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 89 41 c0 61 08 04 07 79 ba a5 - -CALLBACK, event 0, msg length 67, bvci 0x1002 -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 89 41 c0 61 08 04 07 79 ba a5 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 67 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 71 -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 89 41 c0 61 08 04 07 79 ba a5 - -result (ATTACH REJECT) = 71 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 12 - Attach Reject count : 1 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 91 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 81 7a 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 91 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 81 7a 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 13 - Attach Reject count : 1 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 1 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress -PROCESSING DETACH REQ (MO) from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 95 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 9c dc fc - -CALLBACK, event 0, msg length 44, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 95 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 9c dc fc - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 00 09 41 c4 05 08 06 00 29 4a 68 - -result (DETACH REQ (MO)) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 13 - Attach Reject count : 1 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 2 - Detach Accept count : 1 - TLLI-Cache: 0 -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 99 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 88 49 82 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 99 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 88 49 82 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 14 - Attach Reject count : 1 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 2 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700 -> afe2b700, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress -PROCESSING DETACH REQ (MT) 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 8b 41 c0 65 08 05 02 25 0a 17 a2 20 - -CALLBACK, event 0, msg length 69, bvci 0x1002 -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 8b 41 c0 65 08 05 02 25 0a 17 a2 20 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 69 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 73 -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 8b 41 c0 65 08 05 02 25 0a 17 a2 20 - -result (DETACH REQ (MT)) = 73 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 14 - Attach Reject count : 1 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 2 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0, STORED 1, IMSI acquisition in progress -PROCESSING DETACH ACC from 0x01020304:1111 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 9d 08 06 65 2c 8a - -CALLBACK, event 0, msg length 31, bvci 0x1002 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 9d 08 06 65 2c 8a - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 99 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 88 49 82 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 35 -00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 9d 08 06 65 2c 8a - -result (DETACH ACC) = 35 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 14 - Attach Reject count : 1 - Attach Accept count : 11 - Attach Completed count : 11 - RoutingArea Update Request count: 1 - RoutingArea Update Reject count : 1 - Detach Request count : 2 - Detach Accept count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 00000000, IMSI 12131415161718, AGE 0, DE-REGISTERED -Gbproxy global: -Test TLLI info expiry - -Test TLLI replacement: - Add TLLI 1, IMSI 1 - Add TLLI 2, IMSI 1 (should replace TLLI 1) - Peers: - NSEI 0, BVCI 20, not blocked, RAI 0-0-0-0 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c000162e, IMSI 03242526, AGE 0, IMSI matches - -Test IMSI replacement: - Add TLLI 1, IMSI 1 - Add TLLI 1, IMSI 2 (should replace IMSI 1) - Peers: - NSEI 0, BVCI 20, not blocked, RAI 0-0-0-0 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c00004d2, IMSI 06272829, AGE 0, IMSI matches - -Test TLLI expiry, max_len == 1: - Add TLLI 1, IMSI 1 - Add TLLI 2, IMSI 2 (should replace IMSI 1) - Peers: - NSEI 0, BVCI 20, not blocked, RAI 0-0-0-0 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c000162e, IMSI 06272829, AGE 0, IMSI matches - -Test TLLI expiry, max_age == 1: - Add TLLI 1, IMSI 1 (should expire after timeout) - Add TLLI 2, IMSI 2 (should not expire after timeout) - Peers: - NSEI 0, BVCI 20, not blocked, RAI 0-0-0-0 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c000162e, IMSI 06272829, AGE 1, IMSI matches - -Test TLLI expiry, max_len == 2, max_age == 1: - Add TLLI 1, IMSI 1 (should expire) - Add TLLI 2, IMSI 2 (should expire after timeout) - Add TLLI 3, IMSI 3 (should not expire after timeout) - Peers: - NSEI 0, BVCI 20, not blocked, RAI 0-0-0-0 - TLLI cache size : 3 - TLLI-Cache: 3 - TLLI c0000d80, IMSI 12345678, AGE 0, IMSI matches - TLLI c000162e, IMSI 06272829, AGE 1, IMSI matches - TLLI c00004d2, IMSI 03242526, AGE 2, IMSI matches - Remove stale TLLIs - Peers: - NSEI 0, BVCI 20, not blocked, RAI 0-0-0-0 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI c0000d80, IMSI 12345678, AGE 0, IMSI matches - -=== test_gbproxy_stored_messages === ---- Initialise SGSN --- - -MESSAGE to SGSN at 0x05060708:32000, msg length 12 -02 00 81 01 01 82 01 01 04 82 01 00 - -PROCESSING RESET_ACK from 0x05060708:32000 -03 01 82 01 01 04 82 01 00 - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0a - -result (RESET_ACK) = 1 - -PROCESSING ALIVE_ACK from 0x05060708:32000 -0b - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -06 - -result (ALIVE_ACK) = 1 - -PROCESSING UNBLOCK_ACK from 0x05060708:32000 -07 - -==> got signal NS_UNBLOCK, NS-VC 0x0101/5.6.7.8:32000 - -result (UNBLOCK_ACK) = 0 - -PROCESSING ALIVE from 0x05060708:32000 -0a - -MESSAGE to SGSN at 0x05060708:32000, msg length 1 -0b - -result (ALIVE) = 1 - ---- Initialise BSS 1 --- - -Setup NS-VC: remote 0x01020304:1111, NSVCI 0x1001(4097), NSEI 0x1000(4096) - -PROCESSING RESET from 0x01020304:1111 -02 00 81 01 01 82 10 01 04 82 10 00 - -==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 9 -03 01 82 10 01 04 82 10 00 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0a - -result (RESET) = 9 - -PROCESSING ALIVE from 0x01020304:1111 -0a - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -0b - -result (ALIVE) = 1 - -PROCESSING UNBLOCK from 0x01020304:1111 -06 - -==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 - -MESSAGE to BSS at 0x01020304:1111, msg length 1 -07 - -result (UNBLOCK) = 1 - -PROCESSING ALIVE_ACK from 0x01020304:1111 -0b - -result (ALIVE_ACK) = 0 - -Setup BSSGP: remote 0x01020304:1111, BVCI 0x1002(4098) - -PROCESSING BVC_RESET from 0x01020304:1111 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -CALLBACK, event 0, msg length 18, bvci 0x0000 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x0000, msg length 18 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 22 -00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 - -result (BVC_RESET) = 22 - -PROCESSING BVC_RESET_ACK from 0x05060708:32000 -00 00 00 00 23 04 82 10 02 - -CALLBACK, event 0, msg length 5, bvci 0x0000 -00 00 00 00 23 04 82 10 02 - -NS UNITDATA MESSAGE to BSS, BVCI 0x0000, msg length 5 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 9 -00 00 00 00 23 04 82 10 02 - -result (BVC_RESET_ACK) = 9 - -Current NS-VCIs: - VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 - VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 - NS-VC Block count : 1 - -Gbproxy global: -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - TLLI-Cache: 0 ---- Establish first LLC connection --- - -PROCESSING ATTACH REQUEST from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -CALLBACK, event 0, msg length 75, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 24 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 28 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 00 09 41 c4 01 08 15 01 b7 f8 36 - -result (ATTACH REQUEST) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 8000dead, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress -PROCESSING IDENT REQUEST from 0x05060708:32000 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -CALLBACK, event 0, msg length 23, bvci 0x1002 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 23 (gprs_ns_sendmsg) -MESSAGE to BSS at 0x01020304:1111, msg length 27 -00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba - -result (IDENT REQUEST) = 27 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 8000dead, IMSI (none), AGE 0, STORED 1, IMSI acquisition in progress -PROCESSING DETACH ACCEPT from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 09 01 c0 05 08 06 00 f8 92 41 - -CALLBACK, event 0, msg length 32, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 09 01 c0 05 08 06 00 f8 92 41 - -result (DETACH ACCEPT) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI cache size : 1 - TLLI-Cache: 1 - TLLI 8000dead -> 8000dead, IMSI (none), AGE 0, STORED 2, IMSI acquisition in progress -PROCESSING IDENT RESPONSE from 0x01020304:1111 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -CALLBACK, event 0, msg length 40, bvci 0x1002 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 - -NS UNITDATA MESSAGE to SGSN, BVCI 0x1002, msg length 75 (gprs_ns_sendmsg) -MESSAGE to SGSN at 0x05060708:32000, msg length 79 -00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 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 16 6d 01 - -result (IDENT RESPONSE) = 0 - -Peers: - NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 - Attach Request count : 1 - TLLI-Cache: 0 -Gbproxy global: -===== GbProxy test END - diff --git a/tests/gprs/Makefile.am b/tests/gprs/Makefile.am deleted file mode 100644 index 902313f2a..000000000 --- a/tests/gprs/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOABIS_CFLAGS) - -EXTRA_DIST = gprs_test.ok - -noinst_PROGRAMS = gprs_test - -gprs_test_SOURCES = gprs_test.c $(top_srcdir)/src/gprs/gprs_utils.c - -gprs_test_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) diff --git a/tests/gprs/gprs_test.c b/tests/gprs/gprs_test.c deleted file mode 100644 index aac9bb896..000000000 --- a/tests/gprs/gprs_test.c +++ /dev/null @@ -1,140 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <inttypes.h> - -#include <openbsc/gprs_llc.h> -#include <openbsc/gprs_utils.h> - -#include <openbsc/debug.h> - -#include <osmocom/core/application.h> -#include <osmocom/gsm/gsup.h> - -#define ASSERT_FALSE(x) if (x) { printf("Should have returned false.\n"); abort(); } -#define ASSERT_TRUE(x) if (!x) { printf("Should have returned true.\n"); abort(); } - -/** - * GSM 04.64 8.4.2 Receipt of unacknowledged information - */ -static int nu_is_retransmission(uint16_t nu, uint16_t vur) -{ - int ret = gprs_llc_is_retransmit(nu, vur); - printf("N(U) = %d, V(UR) = %d => %s\n", nu, vur, - ret == 1 ? "retransmit" : "new"); - return ret; -} - -static void test_8_4_2() -{ - printf("Testing gprs_llc_is_retransmit.\n"); - - ASSERT_FALSE(nu_is_retransmission(0, 0)); - ASSERT_TRUE (nu_is_retransmission(0, 1)); - - /* expect 1... check for retransmissions */ - ASSERT_TRUE (nu_is_retransmission(0, 1)); - ASSERT_TRUE (nu_is_retransmission(511, 1)); - ASSERT_TRUE (nu_is_retransmission(483, 1)); - ASSERT_TRUE (nu_is_retransmission(482, 1)); - ASSERT_FALSE(nu_is_retransmission(481, 1)); - - /* expect 511... check for retransmissions */ - ASSERT_FALSE(nu_is_retransmission(0, 240)); // ahead - ASSERT_FALSE(nu_is_retransmission(0, 511)); // ahead - ASSERT_FALSE(nu_is_retransmission(1, 511)); // ahead - ASSERT_FALSE(nu_is_retransmission(511, 511)); // same - ASSERT_TRUE (nu_is_retransmission(510, 511)); // behind - ASSERT_TRUE (nu_is_retransmission(481, 511)); // behind - ASSERT_FALSE(nu_is_retransmission(479, 511)); // wrapped -} - -static void test_gprs_timer_enc_dec(void) -{ - int i, u, secs, tmr; - const int upper_secs_test_limit = 12000; - int dec_secs, last_dec_secs = -1; - - printf("Test GPRS timer decoding/encoding\n"); - - /* Check gprs_tmr_to_secs with all 256 encoded values */ - for (u = 0; u <= GPRS_TMR_DEACTIVATED; u += 32) { - fprintf(stderr, "Testing decoding with timer value unit %u\n", - u / 32); - for (i = 0; i < 32; i++) { - switch (u) { - case GPRS_TMR_2SECONDS: - OSMO_ASSERT(gprs_tmr_to_secs(u + i) == 2 * i); - break; - - default: - case GPRS_TMR_MINUTE: - OSMO_ASSERT(gprs_tmr_to_secs(u + i) == 60 * i); - break; - - case GPRS_TMR_6MINUTE: - OSMO_ASSERT(gprs_tmr_to_secs(u + i) == 360 * i); - break; - - case GPRS_TMR_DEACTIVATED: - OSMO_ASSERT(gprs_tmr_to_secs(u + i) == -1); - break; - } - - OSMO_ASSERT(gprs_tmr_to_secs(u + i) < upper_secs_test_limit); - } - } - - /* Check gprs_secs_to_tmr_floor for secs that can exactly be - * represented as GPRS timer values */ - for (i = 0; i < GPRS_TMR_DEACTIVATED; i++) { - int j; - secs = gprs_tmr_to_secs(i); - tmr = gprs_secs_to_tmr_floor(secs); - OSMO_ASSERT(secs == gprs_tmr_to_secs(tmr)); - - /* Check that the highest resolution is used */ - for (j = 0; j < tmr; j++) - OSMO_ASSERT(secs != gprs_tmr_to_secs(j)); - } - OSMO_ASSERT(GPRS_TMR_DEACTIVATED == gprs_secs_to_tmr_floor(-1)); - - /* Check properties of gprs_secs_to_tmr_floor */ - for (secs = 0; secs <= upper_secs_test_limit; secs++) { - int tmr = gprs_secs_to_tmr_floor(secs); - int delta_secs = gprs_tmr_to_secs((tmr & ~0x1f) | 1); - dec_secs = gprs_tmr_to_secs(tmr); - - /* Check floor */ - OSMO_ASSERT(dec_secs <= secs); - /* Check monotonicity */ - OSMO_ASSERT(dec_secs >= last_dec_secs); - /* Check max distance (<= resolution) */ - OSMO_ASSERT(dec_secs - last_dec_secs <= delta_secs); - - last_dec_secs = dec_secs; - } -} - -const struct log_info_cat default_categories[] = { - [DGPRS] = { - .name = "DGPRS", - .description = "GPRS Packet Service", - .enabled = 0, .loglevel = LOGL_DEBUG, - }, -}; - -static struct log_info info = { - .cat = default_categories, - .num_cat = ARRAY_SIZE(default_categories), -}; - -int main(int argc, char **argv) -{ - osmo_init_logging(&info); - - test_8_4_2(); - test_gprs_timer_enc_dec(); - - printf("Done.\n"); - return EXIT_SUCCESS; -} diff --git a/tests/gprs/gprs_test.ok b/tests/gprs/gprs_test.ok deleted file mode 100644 index da7888c6a..000000000 --- a/tests/gprs/gprs_test.ok +++ /dev/null @@ -1,17 +0,0 @@ -Testing gprs_llc_is_retransmit. -N(U) = 0, V(UR) = 0 => new -N(U) = 0, V(UR) = 1 => retransmit -N(U) = 0, V(UR) = 1 => retransmit -N(U) = 511, V(UR) = 1 => retransmit -N(U) = 483, V(UR) = 1 => retransmit -N(U) = 482, V(UR) = 1 => retransmit -N(U) = 481, V(UR) = 1 => new -N(U) = 0, V(UR) = 240 => new -N(U) = 0, V(UR) = 511 => new -N(U) = 1, V(UR) = 511 => new -N(U) = 511, V(UR) = 511 => new -N(U) = 510, V(UR) = 511 => retransmit -N(U) = 481, V(UR) = 511 => retransmit -N(U) = 479, V(UR) = 511 => new -Test GPRS timer decoding/encoding -Done. diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c index fcdc8f8ed..d9ff305ef 100644 --- a/tests/gsm0408/gsm0408_test.c +++ b/tests/gsm0408/gsm0408_test.c @@ -25,8 +25,6 @@ #include <arpa/inet.h> #include <openbsc/common_bsc.h> -#include <openbsc/gsm_04_08.h> -#include <openbsc/gsm_04_11.h> #include <openbsc/gsm_subscriber.h> #include <openbsc/gsm_data_shared.h> #include <openbsc/debug.h> @@ -36,6 +34,7 @@ #include <osmocom/core/application.h> #include <osmocom/gsm/sysinfo.h> +#include <osmocom/gsm/gsm48.h> #define COMPARE(result, op, value) \ if (!((result) op (value))) {\ @@ -648,6 +647,7 @@ static void test_si_range_helpers() VERIFY(f0, ==, 1); } +#ifdef BEFORE_MSCSPLIT static void test_gsm411_rp_ref_wrap(void) { struct gsm_subscriber_connection conn; @@ -670,6 +670,7 @@ static void test_gsm411_rp_ref_wrap(void) printf("Allocated reference: %d\n", res); OSMO_ASSERT(res == 1); } +#endif int main(int argc, char **argv) { @@ -683,7 +684,9 @@ int main(int argc, char **argv) test_arfcn_filter(); test_print_encoding(); test_range_encoding(); +#ifdef BEFORE_MSCSPLIT test_gsm411_rp_ref_wrap(); +#endif test_si2q_segfault(); test_si2q_e(); diff --git a/tests/gtphub/Makefile.am b/tests/gtphub/Makefile.am deleted file mode 100644 index f2a6b888e..000000000 --- a/tests/gtphub/Makefile.am +++ /dev/null @@ -1,44 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBGTP_CFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - gtphub_test.ok \ - $(NULL) - -if HAVE_LIBGTP -if HAVE_LIBCARES -noinst_PROGRAMS = \ - gtphub_test \ - $(NULL) -endif -endif - -gtphub_test_SOURCES = \ - gtphub_test.c \ - $(NULL) - -gtphub_test_LDFLAGS = \ - -Wl,--wrap=gtphub_resolve_ggsn_addr \ - -Wl,--wrap=gtphub_ares_init \ - -Wl,--wrap=gtphub_write \ - $(NULL) - -gtphub_test_LDADD = \ - $(top_builddir)/src/gprs/gtphub.o \ - $(top_builddir)/src/gprs/gprs_utils.o \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBGTP_LIBS) \ - -lrt \ - $(NULL) diff --git a/tests/gtphub/gtphub_test.c b/tests/gtphub/gtphub_test.c deleted file mode 100644 index e7c27d2cb..000000000 --- a/tests/gtphub/gtphub_test.c +++ /dev/null @@ -1,1786 +0,0 @@ -/* Test the GTP hub */ - -/* (C) 2015 by sysmocom s.f.m.c. GmbH - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmcom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <stdio.h> -#include <string.h> -#include <limits.h> -#include <unistd.h> - -#include <osmocom/core/utils.h> -#include <osmocom/core/application.h> - -#include <openbsc/debug.h> - -#include <openbsc/gtphub.h> -#include <gtp.h> -#include <gtpie.h> - -#define ZERO_STRUCT(struct_pointer) memset(struct_pointer, '\0', \ - sizeof(*(struct_pointer))) - -#define LVL2_ASSERT(exp) LVL2_ASSERT_R(exp, return 0) -#define LVL2_ASSERT_R(exp, ret) \ - if (!(exp)) { \ - fprintf(stderr, "LVL2 Assert failed %s %s:%d\n", #exp, \ - __FILE__, __LINE__); \ - osmo_generate_backtrace(); \ - ret; \ - } - -/* Convenience makro, note: only within this C file. */ -#define LOG(label) \ - { fprintf(stderr, "\n" label "\n"); \ - printf(label "\n"); } - -void gtphub_init(struct gtphub *hub); -void gtphub_free(struct gtphub *hub); - -void *osmo_gtphub_ctx; - -static void nr_mapping_free(struct expiring_item *e) -{ - struct nr_mapping *m = container_of(e, struct nr_mapping, - expiry_entry); - nr_mapping_del(m); - talloc_free(m); -} - -static struct nr_mapping *nr_mapping_alloc(void) -{ - struct nr_mapping *m; - m = talloc(osmo_gtphub_ctx, struct nr_mapping); - nr_mapping_init(m); - m->expiry_entry.del_cb = nr_mapping_free; - return m; -} - -static struct nr_mapping *nr_map_have(struct nr_map *map, void *origin, - nr_t orig, time_t now) -{ - struct nr_mapping *mapping; - - mapping = nr_map_get(map, origin, orig); - if (!mapping) { - mapping = nr_mapping_alloc(); - mapping->origin = origin; - mapping->orig = orig; - nr_map_add(map, mapping, now); - } - - return mapping; -} - -static nr_t nr_map_verify(const struct nr_map *map, void *origin, nr_t orig, - nr_t expect_repl) -{ - struct nr_mapping *m; - m = nr_map_get(map, origin, orig); - - if (!m) { - printf("mapping not found for %p %d\n", origin, orig); - return 0; - } - - if (m->repl != expect_repl) { - printf("mapping found, but nr mismatches: expect %d, got %d\n", - (int)expect_repl, (int)m->repl); - return 0; - } - - return 1; -} - -static int nr_map_verify_inv(const struct nr_map *map, nr_t repl, - void *expect_origin, nr_t expect_orig) -{ - struct nr_mapping *m; - m = nr_map_get_inv(map, repl); - if (!m) { - printf("mapping not found for %d\n", (int)repl); - return 0; - } - - if (m->origin != expect_origin) { - printf("mapping found, but origin mismatches:" - " expect %p, got %p\n", - expect_origin, m->origin); - return 0; - } - - if (m->orig != expect_orig) { - printf("mapping found, but nr mismatches: expect %d, got %d\n", - (int)expect_orig, (int)m->orig); - return 0; - } - - return 1; -} - - -static void test_nr_map_basic(void) -{ - struct nr_pool _pool; - struct nr_pool *pool = &_pool; - struct nr_map _map; - struct nr_map *map = &_map; - - nr_pool_init(pool, 1, 1000); - nr_map_init(map, pool, NULL); - - OSMO_ASSERT(llist_empty(&map->mappings)); - -#define TEST_N_HALF 100 -#define TEST_N (2*TEST_N_HALF) -#define TEST_I 123 - uint32_t i, check_i; - uint32_t m[TEST_N]; - struct nr_mapping *mapping; - - /* create half of TEST_N mappings from one origin */ - void *origin1 = (void*)0x1234; - for (i = 0; i < TEST_N_HALF; i++) { - nr_t orig = TEST_I + i; - mapping = nr_map_have(map, origin1, orig, 0); - m[i] = mapping->repl; - OSMO_ASSERT(m[i] != 0); - OSMO_ASSERT(llist_count(&map->mappings) == (i+1)); - for (check_i = 0; check_i < i; check_i++) - OSMO_ASSERT(m[check_i] != m[i]); - } - OSMO_ASSERT(llist_count(&map->mappings) == TEST_N_HALF); - - /* create another TEST_N mappings with the same original numbers, but - * from a different origin */ - void *origin2 = (void*)0x5678; - for (i = 0; i < TEST_N_HALF; i++) { - int i2 = TEST_N_HALF + i; - nr_t orig = TEST_I + i; - mapping = nr_map_have(map, origin2, orig, 0); - m[i2] = mapping->repl; - OSMO_ASSERT(m[i2] != 0); - OSMO_ASSERT(llist_count(&map->mappings) == (i2+1)); - for (check_i = 0; check_i < i2; check_i++) - OSMO_ASSERT(m[check_i] != m[i2]); - } - OSMO_ASSERT(llist_count(&map->mappings) == TEST_N); - - /* verify mappings */ - for (i = 0; i < TEST_N_HALF; i++) { - nr_t orig = TEST_I + i; - { - OSMO_ASSERT(nr_map_verify(map, origin1, orig, m[i])); - OSMO_ASSERT(nr_map_verify_inv(map, m[i], origin1, - orig)); - } - { - int i2 = TEST_N_HALF + i; - OSMO_ASSERT(nr_map_verify(map, origin2, orig, m[i2])); - OSMO_ASSERT(nr_map_verify_inv(map, m[i2], origin2, - orig)); - } - } - - /* remove all mappings */ - for (i = 0; i < TEST_N_HALF; i++) { - OSMO_ASSERT(llist_count(&map->mappings) == (TEST_N - 2*i)); - - nr_t orig = TEST_I + i; - nr_mapping_del(nr_map_get(map, origin1, orig)); - nr_mapping_del(nr_map_get(map, origin2, orig)); - } - OSMO_ASSERT(llist_empty(&map->mappings)); -#undef TEST_N -#undef TEST_I -} - -static int nr_map_is(struct nr_map *map, const char *str) -{ - static char buf[4096]; - char *pos = buf; - size_t len = sizeof(buf); - struct nr_mapping *m; - llist_for_each_entry(m, &map->mappings, entry) { - size_t wrote = snprintf(pos, len, "(%u->%u@%d), ", - m->orig, - m->repl, - (int)m->expiry_entry.expiry); - OSMO_ASSERT(wrote < len); - pos += wrote; - len -= wrote; - } - *pos = '\0'; - - if (strncmp(buf, str, sizeof(buf)) != 0) { - printf("FAILURE: nr_map_is() mismatches expected value:\n" - "expected: \"%s\"\n" - "is: \"%s\"\n", - str, buf); - return 0; - } - return 1; -} - -static int test_nr_map_wrap_with(nr_t nr_min, nr_t nr_max, nr_t repl_last, - nr_t orig_start, int orig_n, - const char *expect) -{ - struct nr_pool _pool; - struct nr_pool *pool = &_pool; - struct nr_map _map; - struct nr_map *map = &_map; - - nr_pool_init(pool, nr_min, nr_max); - nr_map_init(map, pool, NULL); - - pool->last_nr = repl_last; - - void *origin = (void*)0x1234; - - int i; - for (i = 0; i < orig_n; i++) - LVL2_ASSERT(nr_map_have(map, origin, orig_start + i, 0)); - - LVL2_ASSERT(nr_map_is(map, expect)); - - nr_map_clear(map); - return 1; -} - -static void test_nr_map_wrap(void) -{ - OSMO_ASSERT(test_nr_map_wrap_with( - 0, UINT_MAX, UINT_MAX - 2, - 1, 5, - "(1->4294967294@0), " - "(2->4294967295@0), " - "(3->0@0), " - "(4->1@0), " - "(5->2@0), " - )); - OSMO_ASSERT(test_nr_map_wrap_with( - 5, 10, 8, - 1, 5, - "(1->9@0), (2->10@0), (3->5@0), (4->6@0), (5->7@0), " - )); -} - -static void test_expiry(void) -{ - struct expiry expiry; - struct nr_pool pool; - struct nr_map map; - int i; - - expiry_init(&expiry, 30); - nr_pool_init(&pool, 1, 1000); - nr_map_init(&map, &pool, &expiry); - OSMO_ASSERT(nr_map_is(&map, "")); - - /* tick on empty map */ - OSMO_ASSERT(expiry_tick(&expiry, 10000) == 0); - OSMO_ASSERT(nr_map_is(&map, "")); - -#define MAP1 \ - "(10->1@10040), " \ - "" - -#define MAP2 \ - "(20->2@10050), " \ - "(21->3@10051), " \ - "(22->4@10052), " \ - "(23->5@10053), " \ - "(24->6@10054), " \ - "(25->7@10055), " \ - "(26->8@10056), " \ - "(27->9@10057), " \ - "" - -#define MAP3 \ - "(420->10@10072), " \ - "(421->11@10072), " \ - "(422->12@10072), " \ - "(423->13@10072), " \ - "(424->14@10072), " \ - "(425->15@10072), " \ - "(426->16@10072), " \ - "(427->17@10072), " \ - "" - - /* add mapping at time 10010. */ - nr_map_have(&map, 0, 10, 10010); - OSMO_ASSERT(nr_map_is(&map, MAP1)); - - /* tick on unexpired item. */ - OSMO_ASSERT(expiry_tick(&expiry, 10010) == 0); - OSMO_ASSERT(expiry_tick(&expiry, 10011) == 0); - OSMO_ASSERT(nr_map_is(&map, MAP1)); - - /* Spread mappings at 10020, 10021, ... 10027. */ - for (i = 0; i < 8; i++) - nr_map_have(&map, 0, 20 + i, 10020 + i); - OSMO_ASSERT(nr_map_is(&map, MAP1 MAP2)); - - /* tick on unexpired items. */ - OSMO_ASSERT(expiry_tick(&expiry, 10030) == 0); - OSMO_ASSERT(expiry_tick(&expiry, 10039) == 0); - OSMO_ASSERT(nr_map_is(&map, MAP1 MAP2)); - - /* expire the first item (from 10010). */ - OSMO_ASSERT(expiry_tick(&expiry, 10010 + 30) == 1); - OSMO_ASSERT(nr_map_is(&map, MAP2)); - - /* again nothing to expire */ - OSMO_ASSERT(expiry_tick(&expiry, 10041) == 0); - OSMO_ASSERT(nr_map_is(&map, MAP2)); - - /* Mappings all at the same time. */ - for (i = 0; i < 8; i++) - nr_map_have(&map, 0, 420 + i, 10042); - OSMO_ASSERT(nr_map_is(&map, MAP2 MAP3)); - - /* Eight to expire, were added further above to be chronologically - * correct, at 10020..10027. */ - OSMO_ASSERT(expiry_tick(&expiry, 10027 + 30) == 8); - OSMO_ASSERT(nr_map_is(&map, MAP3)); - - /* again nothing to expire */ - OSMO_ASSERT(expiry_tick(&expiry, 10027 + 30) == 0); - OSMO_ASSERT(nr_map_is(&map, MAP3)); - - /* Eight to expire, from 10042. Now at 10042 + 30: */ - OSMO_ASSERT(expiry_tick(&expiry, 10042 + 30) == 8); - OSMO_ASSERT(nr_map_is(&map, "")); - -#undef MAP1 -#undef MAP2 -#undef MAP3 -} - -char resolve_ggsn_got_imsi[GSM23003_IMSI_MAX_DIGITS+1]; -char resolve_ggsn_got_ni[GSM_APN_LENGTH]; - -struct osmo_sockaddr resolved_ggsn_addr; -static int resolve_to_ggsn(const char *addr, uint16_t port) -{ - LVL2_ASSERT(osmo_sockaddr_init_udp(&resolved_ggsn_addr, - addr, port) - == 0); - return 1; -} - -struct osmo_sockaddr resolved_sgsn_addr; -static int resolve_to_sgsn(const char *addr, uint16_t port) -{ - LVL2_ASSERT(osmo_sockaddr_init_udp(&resolved_sgsn_addr, - addr, port) - == 0); - return 1; -} - -struct osmo_sockaddr sgsn_sender; -static int send_from_sgsn(const char *addr, uint16_t port) -{ - LVL2_ASSERT(osmo_sockaddr_init_udp(&sgsn_sender, - addr, port) - == 0); - return 1; -} - -struct osmo_sockaddr ggsn_sender; -static int send_from_ggsn(const char *addr, uint16_t port) -{ - LVL2_ASSERT(osmo_sockaddr_init_udp(&ggsn_sender, - addr, port) - == 0); - return 1; -} - - -/* override, requires '-Wl,--wrap=gtphub_resolve_ggsn_addr' */ -struct gtphub_peer_port *__real_gtphub_resolve_ggsn_addr(struct gtphub *hub, - const char *imsi_str, - const char *apn_ni_str); - -struct gtphub_peer_port *__wrap_gtphub_resolve_ggsn_addr(struct gtphub *hub, - const char *imsi_str, - const char *apn_ni_str) -{ - struct gsn_addr resolved_gsna; - uint16_t resolved_port; - - OSMO_ASSERT(gsn_addr_from_sockaddr(&resolved_gsna, &resolved_port, - &resolved_ggsn_addr) == 0); - - struct gtphub_peer_port *pp; - pp = gtphub_port_have(hub, &hub->to_gsns[GTPH_SIDE_GGSN][GTPH_PLANE_CTRL], - &resolved_gsna, resolved_port); - printf("- __wrap_gtphub_resolve_ggsn_addr():\n" - " returning GGSN addr from imsi %s ni %s: %s\n", - imsi_str, apn_ni_str, gtphub_port_str(pp)); - - if (!imsi_str) - imsi_str = "(null)"; - osmo_strlcpy(resolve_ggsn_got_imsi, imsi_str, - sizeof(resolve_ggsn_got_imsi)); - - if (!apn_ni_str) - apn_ni_str = "(null)"; - osmo_strlcpy(resolve_ggsn_got_ni, apn_ni_str, - sizeof(resolve_ggsn_got_ni)); - - return pp; -} - -#define was_resolved_for(IMSI,NI) _was_resolved_for(IMSI, NI, __FILE__, __LINE__) -static int _was_resolved_for(const char *imsi, const char *ni, const char - *file, int line) -{ - int cmp0 = strncmp(imsi, resolve_ggsn_got_imsi, - sizeof(resolve_ggsn_got_imsi)); - - if (cmp0 != 0) { - printf("\n%s:%d: was_resolved_for(): MISMATCH for IMSI\n" - " expecting: '%s'\n" - " got: '%s'\n\n", - file, - line, - imsi, resolve_ggsn_got_imsi); - } - - int cmp1 = strncmp(ni, resolve_ggsn_got_ni, - sizeof(resolve_ggsn_got_ni)); - if (cmp1 != 0) { - printf("\n%s:%d: was_resolved_for(): MISMATCH for NI\n" - " expecting: '%s'\n" - " got: '%s'\n\n", - file, - line, - ni, resolve_ggsn_got_ni); - } - - return (cmp0 == 0) && (cmp1 == 0); -} - -/* override, requires '-Wl,--wrap=gtphub_ares_init' */ -int __real_gtphub_ares_init(struct gtphub *hub); - -int __wrap_gtphub_ares_init(struct gtphub *hub) -{ - /* Do nothing. */ - return 0; -} - -/* override, requires '-Wl,--wrap=gtphub_write' */ -int __real_gtphub_write(const struct osmo_fd *to, - const struct osmo_sockaddr *to_addr, - const uint8_t *buf, size_t buf_len); - -int __wrap_gtphub_write(const struct osmo_fd *to, - const struct osmo_sockaddr *to_addr, - const uint8_t *buf, size_t buf_len) -{ - printf("Out-of-band gtphub_write(%d):\n" - "to %s\n" - "%s\n", - (int)buf_len, - osmo_sockaddr_to_str(to_addr), - osmo_hexdump(buf, buf_len)); - return 0; -} - -#define buf_len 1024 -static uint8_t buf[buf_len]; -static uint8_t *reply_buf; - -static unsigned int msg(const char *hex) -{ - unsigned int l = osmo_hexparse(hex, buf, buf_len); - OSMO_ASSERT(l > 0); - return l; -} - -/* Compare static buf to given string constant. The amount of bytes is obtained - * from parsing the GTP header in buf. hex must match an osmo_hexdump() of the - * desired message. Return 1 if size and content match. */ -#define reply_is(MSG) _reply_is(MSG, __FILE__, __LINE__) -static int _reply_is(const char *hex, const char *file, int line) -{ - struct gtp1_header_long *h = (void*)reply_buf; - int len = ntoh16(h->length) + 8; - const char *dump = osmo_hexdump_nospc(reply_buf, len); - int cmp = strcmp(dump, hex); - - if (cmp != 0) { - printf("\n%s:%d: reply_is(): MISMATCH\n" - " expecting:\n'%s'\n" - " got:\n'%s'\n\n", - file, - line, - hex, dump); - int i; - int l = strlen(hex); - int m = strlen(dump); - if (m < l) - l = m; - for (i = 0; i < l; i++) { - if (hex[i] != dump[i]) { - printf("First mismatch at position %d:\n" - " %s\n %s\n", i, hex + i, dump + i); - break; - } - } - } - return cmp == 0; -} - -#define same_addr(GOT, EXPECTED) _same_addr((GOT),(EXPECTED), __FILE__, __LINE__) -static int _same_addr(const struct osmo_sockaddr *got, - const struct osmo_sockaddr *expected, - const char *file, int line) -{ - int cmp = osmo_sockaddr_cmp(got, expected); - if (!cmp) - return 1; - char buf[256]; - printf("\n%s:%d: addr_is(): MISMATCH\n" - " expecting: '%s'\n" - " got: '%s'\n\n", - file, line, - osmo_sockaddr_to_str(expected), - osmo_sockaddr_to_strb(got, buf, sizeof(buf))); - return 0; -} - - -time_t now; -static struct gtphub _hub; -static struct gtphub *hub = &_hub; - -static int setup_test_hub() -{ - /* Not really needed, but to make 100% sure... */ - ZERO_STRUCT(hub); - - gtphub_init(hub); - - /* Tell this mock gtphub its local address for this test. */ - LVL2_ASSERT(gsn_addr_from_str(&hub->to_gsns[GTPH_SIDE_SGSN][GTPH_PLANE_CTRL].local_addr, - "127.0.1.1") == 0); - LVL2_ASSERT(gsn_addr_from_str(&hub->to_gsns[GTPH_SIDE_SGSN][GTPH_PLANE_USER].local_addr, - "127.0.1.2") == 0); - LVL2_ASSERT(gsn_addr_from_str(&hub->to_gsns[GTPH_SIDE_GGSN][GTPH_PLANE_CTRL].local_addr, - "127.0.2.1") == 0); - LVL2_ASSERT(gsn_addr_from_str(&hub->to_gsns[GTPH_SIDE_GGSN][GTPH_PLANE_USER].local_addr, - "127.0.2.2") == 0); - - hub->restart_counter = 0x23; - now = 345; - LVL2_ASSERT(send_from_sgsn("192.168.42.23", 423)); - LVL2_ASSERT(resolve_to_ggsn("192.168.43.34", 2123)); - LVL2_ASSERT(send_from_ggsn("192.168.43.34", 434)); - LVL2_ASSERT(resolve_to_sgsn("192.168.42.23", 2123)); - -#define GGSNS_CTRL_FD 1 -#define GGSNS_USER_FD 2 -#define SGSNS_CTRL_FD 3 -#define SGSNS_USER_FD 4 - hub->to_gsns[GTPH_SIDE_GGSN][GTPH_PLANE_CTRL].ofd.priv_nr = GGSNS_CTRL_FD; - hub->to_gsns[GTPH_SIDE_GGSN][GTPH_PLANE_USER].ofd.priv_nr = GGSNS_USER_FD; - hub->to_gsns[GTPH_SIDE_SGSN][GTPH_PLANE_CTRL].ofd.priv_nr = SGSNS_CTRL_FD; - hub->to_gsns[GTPH_SIDE_SGSN][GTPH_PLANE_USER].ofd.priv_nr = SGSNS_USER_FD; - - return 1; -} - -static int clear_test_hub() -{ - /* expire all */ - gtphub_gc(hub, now + (60 * GTPH_EXPIRE_SLOWLY_MINUTES) + 1); - - int plane_idx; - plane_idx = GTPH_PLANE_CTRL; - LVL2_ASSERT(llist_empty(&hub->to_gsns[GTPH_SIDE_GGSN][plane_idx].peers)); - LVL2_ASSERT(llist_empty(&hub->to_gsns[GTPH_SIDE_SGSN][plane_idx].peers)); - plane_idx = GTPH_PLANE_USER; - LVL2_ASSERT(llist_empty(&hub->to_gsns[GTPH_SIDE_GGSN][plane_idx].peers)); - LVL2_ASSERT(llist_empty(&hub->to_gsns[GTPH_SIDE_SGSN][plane_idx].peers)); - - LVL2_ASSERT(llist_empty(&hub->tunnels)); - LVL2_ASSERT(llist_empty(&hub->pending_deletes)); - LVL2_ASSERT(llist_empty(&hub->ggsn_lookups)); - LVL2_ASSERT(llist_empty(&hub->resolved_ggsns)); - - gtphub_free(hub); - return 1; -} - -static int tunnels_are(const char *expect) -{ - static char buf[4096]; - char *pos = buf; - size_t len = sizeof(buf); - struct gtphub_tunnel *t; - llist_for_each_entry(t, &hub->tunnels, entry) { - size_t wrote = snprintf(pos, len, "%s @%d\n", - gtphub_tunnel_str(t), - (int)t->expiry_entry.expiry); - LVL2_ASSERT(wrote < len); - pos += wrote; - len -= wrote; - } - *pos = '\0'; - - if (strncmp(buf, expect, sizeof(buf)) != 0) { - fprintf(stderr, "FAILURE: tunnels_are() mismatches expected value:\n" - "EXPECTED:\n%s\n" - "IS:\n%s\n", - expect, buf); - LVL2_ASSERT("tunnels do not match expected listing."); - return 0; - } - return 1; -} - -static void test_echo(void) -{ - LOG("test_echo"); - OSMO_ASSERT(setup_test_hub()); - - now = 123; - - struct osmo_fd *to_ofd; - struct osmo_sockaddr to_addr; - struct gtphub_peer_port *pp; - int send; - - const char *gtp_ping_from_sgsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "01" /* type 01: Echo request */ - "0004" /* length of 4 after header TEI */ - "00000000" /* header TEI == 0 in Echo */ - "abcd" /* some 2 octet sequence nr */ - "0000" /* N-PDU 0, no extension header (why is this here?) */ - ; - - const char *gtp_pong_to_sgsn = - "32" - "02" /* type 02: Echo response */ - "0006" /* length of 6 after header TEI */ - "00000000" /* header TEI == 0 in Echo */ - "abcd" /* same sequence nr */ - "0000" - "0e23" /* Recovery with restart counter */ - ; - - to_ofd = NULL; - ZERO_STRUCT(&to_addr); - send = gtphub_handle_buf(hub, GTPH_SIDE_SGSN, GTPH_PLANE_CTRL, - &sgsn_sender, buf, msg(gtp_ping_from_sgsn), - now, &reply_buf, &to_ofd, &to_addr); - OSMO_ASSERT(send > 0); - OSMO_ASSERT(to_addr.l); - OSMO_ASSERT(same_addr(&to_addr, &sgsn_sender)); - OSMO_ASSERT(to_ofd && (to_ofd->priv_nr == SGSNS_CTRL_FD)); - OSMO_ASSERT(reply_is(gtp_pong_to_sgsn)); - - pp = gtphub_port_find_sa(&hub->to_gsns[GTPH_SIDE_SGSN][GTPH_PLANE_CTRL], - &sgsn_sender); - /* We don't record Echo peers. */ - OSMO_ASSERT(!pp); - - const char *gtp_ping_from_ggsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "01" /* type 01: Echo request */ - "0004" /* length of 4 after header TEI */ - "00000000" /* header TEI == 0 in Echo */ - "cdef" /* some 2 octet sequence nr */ - "0000" /* N-PDU 0, no extension header (why is this here?) */ - ; - - const char *gtp_pong_to_ggsn = - "32" - "02" /* type 02: Echo response */ - "0006" /* length of 6 after header TEI */ - "00000000" /* header TEI == 0 in Echo */ - "cdef" /* same sequence nr */ - "0000" - "0e23" /* Recovery with restart counter */ - ; - - to_ofd = NULL; - ZERO_STRUCT(&to_addr); - send = gtphub_handle_buf(hub, GTPH_SIDE_GGSN, GTPH_PLANE_CTRL, - &ggsn_sender, buf, msg(gtp_ping_from_ggsn), - now, &reply_buf, &to_ofd, &to_addr); - OSMO_ASSERT(send > 0); - OSMO_ASSERT(same_addr(&to_addr, &ggsn_sender)); - OSMO_ASSERT(to_ofd && (to_ofd->priv_nr == GGSNS_CTRL_FD)); - OSMO_ASSERT(reply_is(gtp_pong_to_ggsn)); - - pp = gtphub_port_find_sa(&hub->to_gsns[GTPH_SIDE_GGSN][GTPH_PLANE_CTRL], - &sgsn_sender); - OSMO_ASSERT(!pp); - - - /* And all the same on the user plane. */ - - to_ofd = NULL; - ZERO_STRUCT(&to_addr); - send = gtphub_handle_buf(hub, GTPH_SIDE_SGSN, GTPH_PLANE_USER, - &sgsn_sender, buf, msg(gtp_ping_from_sgsn), - now, &reply_buf, &to_ofd, &to_addr); - OSMO_ASSERT(send > 0); - OSMO_ASSERT(to_addr.l); - OSMO_ASSERT(same_addr(&to_addr, &sgsn_sender)); - OSMO_ASSERT(to_ofd && (to_ofd->priv_nr == SGSNS_USER_FD)); - OSMO_ASSERT(reply_is(gtp_pong_to_sgsn)); - - pp = gtphub_port_find_sa(&hub->to_gsns[GTPH_SIDE_SGSN][GTPH_PLANE_USER], - &sgsn_sender); - OSMO_ASSERT(!pp); - - to_ofd = NULL; - ZERO_STRUCT(&to_addr); - send = gtphub_handle_buf(hub, GTPH_SIDE_GGSN, GTPH_PLANE_USER, - &ggsn_sender, buf, msg(gtp_ping_from_ggsn), - now, &reply_buf, &to_ofd, &to_addr); - OSMO_ASSERT(send > 0); - OSMO_ASSERT(same_addr(&to_addr, &ggsn_sender)); - OSMO_ASSERT(to_ofd && (to_ofd->priv_nr == GGSNS_USER_FD)); - OSMO_ASSERT(reply_is(gtp_pong_to_ggsn)); - - pp = gtphub_port_find_sa(&hub->to_gsns[GTPH_SIDE_GGSN][GTPH_PLANE_USER], - &sgsn_sender); - OSMO_ASSERT(!pp); - - - OSMO_ASSERT(clear_test_hub()); -} - - -#define MSG_PDP_CTX_REQ(len, seq, restart, imsi, tei_u, tei_c, apn, gsn_c, gsn_u) \ - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr. */ \ - "10" /* type 16: Create PDP Context Request */ \ - len /* msg length = 8 + len (2 octets) */ \ - "00000000" /* No TEI yet */ \ - seq /* Sequence nr (2 octets) */ \ - "00" /* N-PDU 0 */ \ - "00" /* No extensions */ \ - /* IEs */ \ - "0e" restart /* 14: Recovery (restart counter: 1 octet) */ \ - "02" /* 2 = IMSI */ \ - imsi /* (8 octets) */ \ - "0f01" /* 15: Selection mode = MS provided APN, subscription not verified*/ \ - "10" /* 16: TEI Data I */ \ - tei_u /* (4 octets) */ \ - "11" /* 17: TEI Control Plane */ \ - tei_c /* (4 octets) */ \ - "1400" /* 20: NSAPI = 0*/ \ - "1a" /* 26: Charging Characteristics */ \ - "0800" \ - "80" /* 128: End User Address */ \ - "0002" /* length = 2: empty PDP Address */ \ - "f121" /* spare 0xf0, PDP organization 1, PDP type number 0x21 = 33 */ \ - "83" /* 131: Access Point Name */ \ - apn /* (2 octets length, N octets encoded APN-NI) */ \ - "84" /* 132: Protocol Configuration Options */ \ - "0015" /* length = 21 */ \ - "80c0231101010011036d69670868656d6d656c6967" \ - "85" /* 133: GSN Address */ \ - gsn_c /* (2 octets length, N octets addr) */ \ - "85" /* 133: GSN Address (second entry) */ \ - gsn_u /* (2 octets length, N octets addr) */ \ - "86" /* 134: MS International PSTN/ISDN Number (MSISDN) */ \ - "0007" /* length */ \ - "916407123254f6" /* 1946702123456(f) */ \ - "87" /* 135: Quality of Service (QoS) Profile */ \ - "0004" /* length */ \ - "00" /* priority */ \ - "0b921f" /* QoS profile data */ - -#define MSG_PDP_CTX_RSP(len, tei_h, seq, restart, tei_u, tei_c, gsn_c, gsn_u) \ - "32" \ - "11" /* Create PDP Context Response */ \ - len /* msg length = 8 + len (2 octets) */ \ - tei_h /* destination TEI (sent in req above) */ \ - seq /* mapped seq */ \ - "00" "00" \ - /* IEs */ \ - "01" /* 1: Cause */ \ - "80" /* value = 0b10000000 = response, no rejection. */ \ - "08" /* 8: Reordering Required */ \ - "00" /* not required. */ \ - "0e" restart /* 14: Recovery */ \ - "10" /* 16: TEI Data I */ \ - tei_u \ - "11" /* 17: TEI Control */ \ - tei_c \ - "7f" /* 127: Charging ID */ \ - "00000001" \ - "80" /* 128: End User Address */ \ - "0006" /* length = 6 */ \ - "f121" /* spare 0xf0, PDP organization 1, PDP type number 0x21 = 33 */ \ - "7f000002" \ - "84" /* 132: Protocol Configuration Options */ \ - "0014" /* len = 20 */ \ - "8080211002000010810608080808830600000000" \ - "85" /* 133: GSN Address (Ctrl) */ \ - gsn_c \ - "85" /* 133: GSN Address (User) */ \ - gsn_u \ - "87" /* 135: Quality of Service (QoS) Profile */ \ - "0004" /* length */ \ - "00" /* priority */ \ - "0b921f" /* QoS profile data */ - -#define msg_from_sgsn_c(A,B,C,D) msg_from_sgsn(GTPH_PLANE_CTRL, A,B,C,D) -#define msg_from_sgsn_u(A,B,C,D) msg_from_sgsn(GTPH_PLANE_USER, A,B,C,D) -static int msg_from_sgsn(int plane_idx, - struct osmo_sockaddr *_sgsn_sender, - struct osmo_sockaddr *ggsn_receiver, - const char *hex_from_sgsn, - const char *hex_to_ggsn) -{ - struct osmo_fd *ggsn_ofd = NULL; - struct osmo_sockaddr ggsn_addr; - int send; - send = gtphub_handle_buf(hub, GTPH_SIDE_SGSN, plane_idx, _sgsn_sender, - buf, msg(hex_from_sgsn), now, - &reply_buf, &ggsn_ofd, &ggsn_addr); - LVL2_ASSERT(send > 0); - LVL2_ASSERT(same_addr(&ggsn_addr, ggsn_receiver)); - LVL2_ASSERT(reply_is(hex_to_ggsn)); - return 1; -} - -#define msg_from_ggsn_c(A,B,C,D) msg_from_ggsn(GTPH_PLANE_CTRL, A,B,C,D) -#define msg_from_ggsn_u(A,B,C,D) msg_from_ggsn(GTPH_PLANE_USER, A,B,C,D) -static int msg_from_ggsn(int plane_idx, - struct osmo_sockaddr *ggsn_sender, - struct osmo_sockaddr *sgsn_receiver, - const char *msg_from_ggsn, - const char *msg_to_sgsn) -{ - struct osmo_fd *sgsn_ofd; - struct osmo_sockaddr sgsn_addr; - int send; - send = gtphub_handle_buf(hub, GTPH_SIDE_GGSN, plane_idx, ggsn_sender, - buf, msg(msg_from_ggsn), now, - &reply_buf, &sgsn_ofd, &sgsn_addr); - if (*msg_to_sgsn) { - LVL2_ASSERT(send > 0); - LVL2_ASSERT(same_addr(&sgsn_addr, sgsn_receiver)); - LVL2_ASSERT(reply_is(msg_to_sgsn)); - } - else - LVL2_ASSERT(send == 0); - return 1; -} - -static int create_pdp_ctx() -{ - const char *gtp_req_from_sgsn = - MSG_PDP_CTX_REQ("0068", - "abcd", - "60", - "42000121436587f9", - "00000123", - "00000321", - "0009""08696e7465726e6574", /* "(8)internet" */ - "0004""c0a82a17", /* same as default sgsn_sender */ - "0004""c0a82a17" - ); - const char *gtp_req_to_ggsn = - MSG_PDP_CTX_REQ("0068", - "6d31", /* mapped seq ("abcd") */ - "23", - "42000121436587f9", - "00000001", /* Data I: tunnel's TEI */ - "00000001", /* Control: tunnel's TEI */ - "0009""08696e7465726e6574", - "0004""7f000201", /* replaced with gtphub's ggsn ctrl */ - "0004""7f000202" /* replaced with gtphub's ggsn user */ - ); - - LVL2_ASSERT(msg_from_sgsn_c(&sgsn_sender, - &resolved_ggsn_addr, - gtp_req_from_sgsn, - gtp_req_to_ggsn)); - LVL2_ASSERT(was_resolved_for("240010123456789", "internet")); - - LVL2_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21945\n")); - - const char *gtp_resp_from_ggsn = - MSG_PDP_CTX_RSP("004e", - "00000001", /* destination TEI (sent in req above) */ - "6d31", /* mapped seq */ - "01", /* restart */ - "00000567", /* TEI U */ - "00000765", /* TEI C */ - "0004""c0a82b22", /* GSN addresses */ - "0004""c0a82b22" /* (== resolved_ggsn_addr) */ - ); - const char *gtp_resp_to_sgsn = - MSG_PDP_CTX_RSP("004e", - "00000321", /* unmapped TEI ("001") */ - "abcd", /* unmapped seq ("6d31") */ - "23", - "00000001", /* mapped TEI from GGSN ("567") */ - "00000001", /* mapped TEI from GGSN ("765") */ - "0004""7f000101", /* gtphub's address towards SGSNs (Ctrl) */ - "0004""7f000102" /* gtphub's address towards SGSNs (User) */ - ); - /* The response should go back to whichever port the request came from - * (unmapped by sequence nr) */ - LVL2_ASSERT(msg_from_ggsn_c(&resolved_ggsn_addr, - &sgsn_sender, - gtp_resp_from_ggsn, - gtp_resp_to_sgsn)); - - return 1; -} - -#define MSG_DEL_PDP_CTX_REQ(tei, seq) \ - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr. */ \ - "14" /* type 20: Delete PDP Context Request */ \ - "0008" /* msg length = 8 + len (2 octets) */ \ - tei /* TEI Ctrl */ \ - seq /* Sequence nr (2 octets) */ \ - "00" /* N-PDU 0 */ \ - "00" /* No extensions */ \ - /* IEs */ \ - "13fe" /* 19: Teardown ind = 0 */ \ - "1400" /* 20: NSAPI = 0*/ \ - -#define MSG_DEL_PDP_CTX_RSP(tei, seq) \ - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr. */ \ - "15" /* type 21: Delete PDP Context Response */ \ - "0006" /* msg length = 8 + len (2 octets) */ \ - tei /* TEI Ctrl */ \ - seq /* Sequence nr (2 octets) */ \ - "00" /* N-PDU 0 */ \ - "00" /* No extensions */ \ - /* IEs */ \ - "01" /* 1: Cause */ \ - "80" /* value = 0b10000000 = response, no rejection. */ \ - -static int delete_pdp_ctx_from_sgsn(void) -{ - now += GTPH_EXPIRE_QUICKLY_SECS + 1; - gtphub_gc(hub, now); - - LVL2_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21945\n")); - - /* TEI Ctrl from above and next sequence after abcd. */ - const char *gtp_req_from_sgsn = MSG_DEL_PDP_CTX_REQ("00000001", "abce"); - const char *gtp_req_to_ggsn = MSG_DEL_PDP_CTX_REQ("00000765", "6d32"); - - LVL2_ASSERT(msg_from_sgsn_c(&sgsn_sender, - &resolved_ggsn_addr, - gtp_req_from_sgsn, - gtp_req_to_ggsn)); - - /* 21945 + 31 = 21976 */ - LVL2_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21976\n")); - - const char *gtp_resp_from_ggsn = - MSG_DEL_PDP_CTX_RSP("00000001", "6d32"); - const char *gtp_resp_to_sgsn = - MSG_DEL_PDP_CTX_RSP("00000321", "abce"); - - /* The response should go back to whichever port the request came from - * (unmapped by sequence nr) */ - LVL2_ASSERT(msg_from_ggsn_c(&resolved_ggsn_addr, - &sgsn_sender, - gtp_resp_from_ggsn, - gtp_resp_to_sgsn)); - - LVL2_ASSERT(tunnels_are("")); - - return 1; -} - -static int delete_pdp_ctx_from_ggsn(void) -{ - now += GTPH_EXPIRE_QUICKLY_SECS + 1; - gtphub_gc(hub, now); - - LVL2_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21945\n")); - - /* TEI Ctrl from above and next sequence after abcd. */ - const char *gtp_req_from_ggsn = MSG_DEL_PDP_CTX_REQ("00000001", "5432"); - const char *gtp_req_to_sgsn = MSG_DEL_PDP_CTX_REQ("00000321", "6d31"); - - LVL2_ASSERT(msg_from_ggsn_c(&ggsn_sender, - &resolved_sgsn_addr, - gtp_req_from_ggsn, - gtp_req_to_sgsn)); - - /* 21945 + 31 = 21976 */ - LVL2_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21976\n")); - - const char *gtp_resp_from_sgsn = - MSG_DEL_PDP_CTX_RSP("00000001", "6d31"); - const char *gtp_resp_to_ggsn = - MSG_DEL_PDP_CTX_RSP("00000765", "5432"); - - /* The response should go back to whichever port the request came from - * (unmapped by sequence nr) */ - LVL2_ASSERT(msg_from_sgsn_c(&resolved_sgsn_addr, - &ggsn_sender, - gtp_resp_from_sgsn, - gtp_resp_to_ggsn)); - - LVL2_ASSERT(tunnels_are("")); - - return 1; -} - -static void test_one_pdp_ctx(int del_from_side) -{ - if (del_from_side == GTPH_SIDE_SGSN) - LOG("test_one_pdp_ctx (del from SGSN)") - else LOG("test_one_pdp_ctx (del from GGSN)"); - OSMO_ASSERT(setup_test_hub()); - - OSMO_ASSERT(create_pdp_ctx()); - - struct gtphub_peer_port *ggsn_port = - gtphub_port_find_sa(&hub->to_gsns[GTPH_SIDE_GGSN][GTPH_PLANE_CTRL], - &resolved_ggsn_addr); - OSMO_ASSERT(ggsn_port); - struct gtphub_peer *ggsn = ggsn_port->peer_addr->peer; - /* now == 345; now + 30 == 375. - * seq mapping from above: - * 0xabcd == 43981 (sent in the packet) - * 0x6d31 == 27953 (harcoded seq mapping start val) */ - OSMO_ASSERT(nr_map_is(&ggsn->seq_map, "(43981->27953@375), ")); - - /* now == 345; now + (6 * 60 * 60) == 21600 + 345 == 21945. - * 0x00000321 == 801 (TEI from SGSN Ctrl) - * 0x00000123 == 291 (TEI from SGSN User) - * 0x00000765 == 1893 (TEI from GGSN Ctrl) - * 0x00000567 == 1383 (TEI from GGSN User) - * Mapped TEIs should be 1 and 2. */ - OSMO_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21945\n")); - - if (del_from_side == GTPH_SIDE_SGSN) { - OSMO_ASSERT(delete_pdp_ctx_from_sgsn()); - } else { - OSMO_ASSERT(delete_pdp_ctx_from_ggsn()); - } - OSMO_ASSERT(tunnels_are("")); - - OSMO_ASSERT(clear_test_hub()); -} - -static void test_user_data(void) -{ - LOG("test_user_data"); - - OSMO_ASSERT(setup_test_hub()); - - OSMO_ASSERT(create_pdp_ctx()); - - /* now == 345; now + (6 * 60 * 60) == 21600 + 345 == 21945. */ - OSMO_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21945\n")); - - LOG("- user data starts"); - /* Now expect default port numbers for User plane. */ - resolve_to_ggsn("192.168.43.34", 2152); - resolve_to_sgsn("192.168.42.23", 2152); - - /* 10 minutes later */ - now += 600; - - const char *u_from_ggsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "ff" /* type 255: G-PDU */ - "0058" /* length: 88 + 8 octets == 96 */ - "00000001" /* mapped TEI for SGSN from create_pdp_ctx() */ - "0070" /* seq */ - "0000" /* No extensions */ - /* User data (ICMP packet), 96 - 12 = 84 octets */ - "45000054daee40004001f7890a172a010a172a02080060d23f590071e3f8" - "4156000000007241010000000000101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f3031323334353637" - ; - const char *u_to_sgsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "ff" /* type 255: G-PDU */ - "0058" /* length: 88 + 8 octets == 96 */ - "00000123" /* unmapped User TEI */ - "6d31" /* new mapped seq */ - "0000" - "45000054daee40004001f7890a172a010a172a02080060d23f590071e3f8" - "4156000000007241010000000000101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f3031323334353637" - ; - - /* This depends on create_pdp_ctx() sending resolved_sgsn_addr as GSN - * Address IEs in the GGSN's Create PDP Ctx Response. */ - OSMO_ASSERT(msg_from_ggsn_u(&ggsn_sender, - &resolved_sgsn_addr, - u_from_ggsn, - u_to_sgsn)); - - /* Make sure the user plane messages have refreshed the TEI mapping - * timeouts: 21945 + 600 == 22545. */ - OSMO_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @22545\n")); - - const char *u_from_sgsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "ff" /* type 255: G-PDU */ - "0058" /* length: 88 + 8 octets == 96 */ - "00000001" /* mapped User TEI for GGSN from create_pdp_ctx() */ - "1234" /* unknown seq */ - "0000" /* No extensions */ - /* User data (ICMP packet), 96 - 12 = 84 octets */ - "45000054daee40004001f7890a172a010a172a02080060d23f590071e3f8" - "4156000000007241010000000000101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f3031323334353637" - ; - const char *u_to_ggsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "ff" /* type 255: G-PDU */ - "0058" /* length: 88 + 8 octets == 96 */ - "00000567" /* unmapped User TEI */ - "6d31" /* unmapped seq */ - "0000" - "45000054daee40004001f7890a172a010a172a02080060d23f590071e3f8" - "4156000000007241010000000000101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f3031323334353637" - ; - - OSMO_ASSERT(msg_from_sgsn_u(&sgsn_sender, - &resolved_ggsn_addr, - u_from_sgsn, - u_to_ggsn)); - - /* Make sure the user plane messages have refreshed the TEI mapping - * timeouts: 21945 + 600 == 22545. Both timeouts refreshed: */ - OSMO_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @22545\n")); - - OSMO_ASSERT(clear_test_hub()); -} - -static void test_reused_tei(void) -{ - LOG("test_reused_tei"); - - OSMO_ASSERT(setup_test_hub()); - - OSMO_ASSERT(create_pdp_ctx()); - - const char *gtp_req_from_sgsn = - MSG_PDP_CTX_REQ("0068", - "abce", /* Next seq */ - "60", - "42000121436587f9", - "00000123", /* Same TEIs as before */ - "00000321", - "0009""08696e7465726e6574", /* "(8)internet" */ - "0004""c0a82a17", /* same as default sgsn_sender */ - "0004""c0a82a17" - ); - const char *gtp_req_to_ggsn = - MSG_PDP_CTX_REQ("0068", - "6d32", /* mapped seq ("abce") */ - "23", - "42000121436587f9", - "00000002", /* mapped TEI Data I ("123") */ - "00000002", /* mapped TEI Control ("321") */ - "0009""08696e7465726e6574", - "0004""7f000201", /* replaced with gtphub's ggsn ctrl */ - "0004""7f000202" /* replaced with gtphub's ggsn user */ - ); - - OSMO_ASSERT(msg_from_sgsn_c(&sgsn_sender, - &resolved_ggsn_addr, - gtp_req_from_sgsn, - gtp_req_to_ggsn)); - OSMO_ASSERT(was_resolved_for("240010123456789", "internet")); - - OSMO_ASSERT(tunnels_are( - "TEI=2:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21945\n")); - - const char *gtp_resp_from_ggsn = - MSG_PDP_CTX_RSP("004e", - "00000002", /* destination TEI (sent in req above) */ - "6d32", /* mapped seq */ - "01", /* restart */ - "00000567", /* TEI U */ - "00000765", /* TEI C */ - "0004""c0a82b22", /* GSN addresses */ - "0004""c0a82b22" /* (== resolved_ggsn_addr) */ - ); - const char *gtp_resp_to_sgsn = - MSG_PDP_CTX_RSP("004e", - "00000321", /* unmapped TEI ("001") */ - "abce", /* unmapped seq ("6d32") */ - "23", - "00000002", /* mapped TEI from GGSN ("567") */ - "00000002", /* mapped TEI from GGSN ("765") */ - "0004""7f000101", /* gtphub's address towards SGSNs (Ctrl) */ - "0004""7f000102" /* gtphub's address towards SGSNs (User) */ - ); - /* The response should go back to whichever port the request came from - * (unmapped by sequence nr) */ - OSMO_ASSERT(msg_from_ggsn_c(&resolved_ggsn_addr, - &sgsn_sender, - gtp_resp_from_ggsn, - gtp_resp_to_sgsn)); - - OSMO_ASSERT(clear_test_hub()); -} - -static void test_peer_restarted(void) -{ - LOG("test_peer_restarted"); - - OSMO_ASSERT(setup_test_hub()); - - OSMO_ASSERT(create_pdp_ctx()); - - now += 10; - - const char *gtp_req_from_sgsn = - MSG_PDP_CTX_REQ("0068", - "1234", /* brand new seq */ - "61", /* DIFFERING restart counter */ - "42000121436587f9", - "00000abc", - "00000cba", - "0009""08696e7465726e6574", /* "(8)internet" */ - "0004""c0a82a17", /* same as default sgsn_sender */ - "0004""c0a82a17" - ); - const char *gtp_req_to_ggsn = - MSG_PDP_CTX_REQ("0068", - "6d33", /* mapped seq ("1234") */ - "23", - "42000121436587f9", - "00000002", /* mapped TEI Data I ("123") */ - "00000002", /* mapped TEI Control ("321") */ - "0009""08696e7465726e6574", - "0004""7f000201", /* replaced with gtphub's ggsn ctrl */ - "0004""7f000202" /* replaced with gtphub's ggsn user */ - ); - - OSMO_ASSERT(msg_from_sgsn_c(&sgsn_sender, - &resolved_ggsn_addr, - gtp_req_from_sgsn, - gtp_req_to_ggsn)); - OSMO_ASSERT(was_resolved_for("240010123456789", "internet")); - - OSMO_ASSERT(tunnels_are( - "TEI=2:" - " 192.168.42.23 (TEI C=cba U=abc)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21955\n" - "TEI=1:" - " (uninitialized) (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21945\n" - )); - - const char *gtp_resp_from_ggsn = - MSG_PDP_CTX_RSP("004e", - "00000002", /* destination TEI (sent in req above) */ - "6d33", /* mapped seq */ - "01", /* restart */ - "00000def", /* TEI U */ - "00000fde", /* TEI C */ - "0004""c0a82b22", /* GSN addresses */ - "0004""c0a82b22" /* (== resolved_ggsn_addr) */ - ); - const char *gtp_resp_to_sgsn = - MSG_PDP_CTX_RSP("004e", - "00000cba", /* unmapped TEI ("005") */ - "1234", /* unmapped seq ("6d32") */ - "23", - "00000002", /* mapped TEI from GGSN ("567") */ - "00000002", /* mapped TEI from GGSN ("765") */ - "0004""7f000101", /* gtphub's address towards SGSNs (Ctrl) */ - "0004""7f000102" /* gtphub's address towards SGSNs (User) */ - ); - /* The response should go back to whichever port the request came from - * (unmapped by sequence nr) */ - OSMO_ASSERT(msg_from_ggsn_c(&resolved_ggsn_addr, - &sgsn_sender, - gtp_resp_from_ggsn, - gtp_resp_to_sgsn)); - - OSMO_ASSERT(clear_test_hub()); -} - -static void test_peer_restarted_reusing_tei(void) -{ - LOG("test_peer_restarted_reusing_tei"); - - OSMO_ASSERT(setup_test_hub()); - - OSMO_ASSERT(create_pdp_ctx()); - - now += 10; - - const char *gtp_req_from_sgsn = - MSG_PDP_CTX_REQ("0068", - "1234", /* brand new seq */ - "61", /* DIFFERING restart counter */ - "42000121436587f9", - "00000123", /* SAME TEI */ - "00000321", - "0009""08696e7465726e6574", /* "(8)internet" */ - "0004""c0a82a17", /* same as default sgsn_sender */ - "0004""c0a82a17" - ); - const char *gtp_req_to_ggsn = - MSG_PDP_CTX_REQ("0068", - "6d33", /* seq 6d31 + 2, after "out-of-band" Delete PDP Ctx - due to differing restart counter. */ - "23", - "42000121436587f9", - "00000002", /* mapped TEI Data I ("123") */ - "00000002", /* mapped TEI Control ("321") */ - "0009""08696e7465726e6574", - "0004""7f000201", /* replaced with gtphub's ggsn ctrl */ - "0004""7f000202" /* replaced with gtphub's ggsn user */ - ); - - OSMO_ASSERT(msg_from_sgsn_c(&sgsn_sender, - &resolved_ggsn_addr, - gtp_req_from_sgsn, - gtp_req_to_ggsn)); - OSMO_ASSERT(was_resolved_for("240010123456789", "internet")); - - OSMO_ASSERT(tunnels_are( - "TEI=2:" /* being established after restart */ - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21955\n" - "TEI=1:" /* invalidated due to restart */ - " (uninitialized) (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21945\n" - )); - - /* An "out-of-band" delete request should have been sent to the GGSN - * (checked by expected log output in gtphub_test.ok), and the GGSN - * will (usually) send a Delete Response like this: */ - const char *gtp_del_resp_from_ggsn = - MSG_DEL_PDP_CTX_RSP("00000001", "6d32"); - - /* For this response (due to peer restart) we expect no forwarded - * message. */ - OSMO_ASSERT(msg_from_ggsn_c(&resolved_ggsn_addr, - &sgsn_sender, - gtp_del_resp_from_ggsn, - "")); - - OSMO_ASSERT(tunnels_are( - "TEI=2:" /* still being established after restart */ - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21955\n" - )); - - const char *gtp_resp_from_ggsn = - MSG_PDP_CTX_RSP("004e", - "00000002", /* destination TEI (sent in req above) */ - "6d33", /* mapped seq */ - "01", /* restart */ - "00000def", /* TEI U */ - "00000fde", /* TEI C */ - "0004""c0a82b22", /* GSN addresses */ - "0004""c0a82b22" /* (== resolved_ggsn_addr) */ - ); - const char *gtp_resp_to_sgsn = - MSG_PDP_CTX_RSP("004e", - "00000321", /* unmapped TEI ("005") */ - "1234", /* unmapped seq ("6d33") */ - "23", - "00000002", /* mapped TEI from GGSN ("567") */ - "00000002", /* mapped TEI from GGSN ("765") */ - "0004""7f000101", /* gtphub's address towards SGSNs (Ctrl) */ - "0004""7f000102" /* gtphub's address towards SGSNs (User) */ - ); - /* The response should go back to whichever port the request came from - * (unmapped by sequence nr) */ - OSMO_ASSERT(msg_from_ggsn_c(&resolved_ggsn_addr, - &sgsn_sender, - gtp_resp_from_ggsn, - gtp_resp_to_sgsn)); - - OSMO_ASSERT(tunnels_are( - "TEI=2:" /* still being established after restart */ - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=fde U=def)" - " @21955\n" - )); - - OSMO_ASSERT(clear_test_hub()); -} - -static void test_sgsn_behind_nat(void) -{ - LOG("test_user_data"); - - OSMO_ASSERT(setup_test_hub()); - hub->sgsn_use_sender = 1; /* <-- Main difference to test_user_data() */ - resolve_to_sgsn("192.168.42.23", 423); /* Same as sender */ - - OSMO_ASSERT(create_pdp_ctx()); - - /* now == 345; now + (6 * 60 * 60) == 21600 + 345 == 21945. */ - OSMO_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21945\n")); - - LOG("- user data starts"); - /* Now expect default port numbers for User plane -- except SGSN. */ - resolve_to_ggsn("192.168.43.34", 2152); - - /* 10 minutes later */ - now += 600; - - const char *u_from_ggsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "ff" /* type 255: G-PDU */ - "0058" /* length: 88 + 8 octets == 96 */ - "00000001" /* mapped User TEI for SGSN from create_pdp_ctx() */ - "0070" /* seq */ - "0000" /* No extensions */ - /* User data (ICMP packet), 96 - 12 = 84 octets */ - "45000054daee40004001f7890a172a010a172a02080060d23f590071e3f8" - "4156000000007241010000000000101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f3031323334353637" - ; - const char *u_to_sgsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "ff" /* type 255: G-PDU */ - "0058" /* length: 88 + 8 octets == 96 */ - "00000123" /* unmapped User TEI */ - "6d31" /* new mapped seq */ - "0000" - "45000054daee40004001f7890a172a010a172a02080060d23f590071e3f8" - "4156000000007241010000000000101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f3031323334353637" - ; - - /* This depends on create_pdp_ctx() sending resolved_sgsn_addr as GSN - * Address IEs in the GGSN's Create PDP Ctx Response. */ - OSMO_ASSERT(msg_from_ggsn_u(&ggsn_sender, - &resolved_sgsn_addr, - u_from_ggsn, - u_to_sgsn)); - - /* Make sure the user plane messages have refreshed the TEI mapping - * timeouts: 21945 + 600 == 22545. */ - OSMO_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @22545\n")); - - const char *u_from_sgsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "ff" /* type 255: G-PDU */ - "0058" /* length: 88 + 8 octets == 96 */ - "00000001" /* mapped User TEI for GGSN from create_pdp_ctx() */ - "1234" /* unknown seq */ - "0000" /* No extensions */ - /* User data (ICMP packet), 96 - 12 = 84 octets */ - "45000054daee40004001f7890a172a010a172a02080060d23f590071e3f8" - "4156000000007241010000000000101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f3031323334353637" - ; - const char *u_to_ggsn = - "32" /* 0b001'1 0010: version 1, protocol GTP, with seq nr */ - "ff" /* type 255: G-PDU */ - "0058" /* length: 88 + 8 octets == 96 */ - "00000567" /* unmapped User TEI */ - "6d31" /* unmapped seq */ - "0000" - "45000054daee40004001f7890a172a010a172a02080060d23f590071e3f8" - "4156000000007241010000000000101112131415161718191a1b1c1d1e1f" - "202122232425262728292a2b2c2d2e2f3031323334353637" - ; - - OSMO_ASSERT(msg_from_sgsn_u(&sgsn_sender, - &resolved_ggsn_addr, - u_from_sgsn, - u_to_ggsn)); - - /* Make sure the user plane messages have refreshed the TEI mapping - * timeouts: 21945 + 600 == 22545. Both timeouts refreshed: */ - OSMO_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @22545\n")); - - OSMO_ASSERT(clear_test_hub()); -} - -void test_parallel_context_creation(void) -{ - LOG("test_parallel_context_creation"); - - OSMO_ASSERT(setup_test_hub()); - - const char *gtp_req_from_sgsn1 = - MSG_PDP_CTX_REQ("0068", - "abcd", - "60", - "42000121436587f9", - "00000123", - "00000321", - "0009""08696e7465726e6574", /* "(8)internet" */ - "0004""c0a82a17", /* same as default sgsn_sender */ - "0004""c0a82a17" - ); - const char *gtp_req_to_ggsn1 = - MSG_PDP_CTX_REQ("0068", - "6d31", /* mapped seq ("abcd") */ - "23", - "42000121436587f9", - "00000001", /* mapped TEI Data I ("123") */ - "00000001", /* mapped TEI Control ("321") */ - "0009""08696e7465726e6574", - "0004""7f000201", /* replaced with gtphub's ggsn ctrl */ - "0004""7f000202" /* replaced with gtphub's ggsn user */ - ); - - OSMO_ASSERT(msg_from_sgsn_c(&sgsn_sender, - &resolved_ggsn_addr, - gtp_req_from_sgsn1, - gtp_req_to_ggsn1)); - - OSMO_ASSERT(tunnels_are( - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21945\n")); - - now ++; - - const char *gtp_req_from_sgsn2 = - MSG_PDP_CTX_REQ("0068", - "abce", - "60", - "42000121436588f9", - "00000124", - "00000322", - "0009""08696e7465726e6574", /* "(8)internet" */ - "0004""c0a82a17", /* same as default sgsn_sender */ - "0004""c0a82a17" - ); - const char *gtp_req_to_ggsn2 = - MSG_PDP_CTX_REQ("0068", - "6d32", /* mapped seq ("abce") */ - "23", - "42000121436588f9", - "00000002", /* mapped TEI Data I ("124") */ - "00000002", /* mapped TEI Control ("322") */ - "0009""08696e7465726e6574", - "0004""7f000201", /* replaced with gtphub's ggsn ctrl */ - "0004""7f000202" /* replaced with gtphub's ggsn user */ - ); - - OSMO_ASSERT(msg_from_sgsn_c(&sgsn_sender, - &resolved_ggsn_addr, - gtp_req_from_sgsn2, - gtp_req_to_ggsn2)); - - OSMO_ASSERT(tunnels_are( - "TEI=2:" - " 192.168.42.23 (TEI C=322 U=124)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21946\n" - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21945\n" - )); - - now ++; - - const char *gtp_resp_from_ggsn1 = - MSG_PDP_CTX_RSP("004e", - "00000001", /* destination TEI (sent in req above) */ - "6d31", /* mapped seq */ - "01", /* restart */ - "00000567", /* TEI U */ - "00000765", /* TEI C */ - "0004""c0a82b22", /* GSN addresses */ - "0004""c0a82b22" /* (== resolved_ggsn_addr) */ - ); - const char *gtp_resp_to_sgsn1 = - MSG_PDP_CTX_RSP("004e", - "00000321", /* unmapped TEI ("001") */ - "abcd", /* unmapped seq ("6d31") */ - "23", - "00000001", /* mapped TEI from GGSN ("567") */ - "00000001", /* mapped TEI from GGSN ("765") */ - "0004""7f000101", /* gtphub's address towards SGSNs (Ctrl) */ - "0004""7f000102" /* gtphub's address towards SGSNs (User) */ - ); - - OSMO_ASSERT(msg_from_ggsn_c(&resolved_ggsn_addr, - &sgsn_sender, - gtp_resp_from_ggsn1, - gtp_resp_to_sgsn1)); - - OSMO_ASSERT(tunnels_are( - "TEI=2:" - " 192.168.42.23 (TEI C=322 U=124)" - " <-> 192.168.43.34/(uninitialized) (TEI C=0 U=0)" - " @21946\n" - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21947\n" - )); - - now ++; - - const char *gtp_resp_from_ggsn2 = - MSG_PDP_CTX_RSP("004e", - "00000002", /* destination TEI (sent in req above) */ - "6d32", /* mapped seq */ - "01", /* restart */ - "00000568", /* TEI U */ - "00000766", /* TEI C */ - "0004""c0a82b22", /* GSN addresses */ - "0004""c0a82b22" /* (== resolved_ggsn_addr) */ - ); - const char *gtp_resp_to_sgsn2 = - MSG_PDP_CTX_RSP("004e", - "00000322", /* unmapped TEI ("001") */ - "abce", /* unmapped seq ("6d31") */ - "23", - "00000002", /* mapped TEI from GGSN ("567") */ - "00000002", /* mapped TEI from GGSN ("765") */ - "0004""7f000101", /* gtphub's address towards SGSNs (Ctrl) */ - "0004""7f000102" /* gtphub's address towards SGSNs (User) */ - ); - - OSMO_ASSERT(msg_from_ggsn_c(&resolved_ggsn_addr, - &sgsn_sender, - gtp_resp_from_ggsn2, - gtp_resp_to_sgsn2)); - - OSMO_ASSERT(tunnels_are( - "TEI=2:" - " 192.168.42.23 (TEI C=322 U=124)" - " <-> 192.168.43.34 (TEI C=766 U=568)" - " @21948\n" - "TEI=1:" - " 192.168.42.23 (TEI C=321 U=123)" - " <-> 192.168.43.34 (TEI C=765 U=567)" - " @21947\n" - )); - - OSMO_ASSERT(clear_test_hub()); -} - - -static struct log_info_cat gtphub_categories[] = { - [DGTPHUB] = { - .name = "DGTPHUB", - .description = "GTP Hub", - .color = "\033[1;33m", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -static struct log_info info = { - .cat = gtphub_categories, - .num_cat = ARRAY_SIZE(gtphub_categories), -}; - -int main(int argc, char **argv) -{ - osmo_init_logging(&info); - osmo_gtphub_ctx = talloc_named_const(NULL, 0, "osmo_gtphub"); - - test_nr_map_basic(); - test_nr_map_wrap(); - test_expiry(); - test_echo(); - test_one_pdp_ctx(GTPH_SIDE_SGSN); - test_one_pdp_ctx(GTPH_SIDE_GGSN); - test_user_data(); - test_reused_tei(); - test_peer_restarted(); - test_peer_restarted_reusing_tei(); - test_sgsn_behind_nat(); - test_parallel_context_creation(); - printf("Done\n"); - - talloc_report_full(osmo_gtphub_ctx, stderr); - OSMO_ASSERT(talloc_total_blocks(osmo_gtphub_ctx) == 1); - return 0; -} - diff --git a/tests/gtphub/gtphub_test.ok b/tests/gtphub/gtphub_test.ok deleted file mode 100644 index e60d5f2b2..000000000 --- a/tests/gtphub/gtphub_test.ok +++ /dev/null @@ -1,42 +0,0 @@ -test_echo -test_one_pdp_ctx (del from SGSN) -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -test_one_pdp_ctx (del from GGSN) -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -test_user_data -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -- user data starts -test_reused_tei -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -test_peer_restarted -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -Out-of-band gtphub_write(16): -to 192.168.43.34 port 2123 -32 14 00 08 00 00 07 65 6d 32 00 00 13 ff 14 00 -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -test_peer_restarted_reusing_tei -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -Out-of-band gtphub_write(16): -to 192.168.43.34 port 2123 -32 14 00 08 00 00 07 65 6d 32 00 00 13 ff 14 00 -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -test_user_data -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -- user data starts -test_parallel_context_creation -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456789 ni internet: 192.168.43.34 port 2123 -- __wrap_gtphub_resolve_ggsn_addr(): - returning GGSN addr from imsi 240010123456889 ni internet: 192.168.43.34 port 2123 -Done diff --git a/tests/msc_vlr/Makefile.am b/tests/msc_vlr/Makefile.am deleted file mode 100644 index 10184fa4b..000000000 --- a/tests/msc_vlr/Makefile.am +++ /dev/null @@ -1,168 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBSMPP34_CFLAGS) \ - $(LIBCRYPTO_CFLAGS) \ - $(LIBOSMOVTY_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBOSMOSIGTRAN_CFLAGS) \ - $(LIBOSMORANAP_CFLAGS) \ - $(LIBASN1C_CFLAGS) \ - $(LIBOSMOLEGACYMGCP_CFLAGS) \ - $(NULL) - -noinst_HEADERS = \ - msc_vlr_tests.h \ - $(NULL) - -EXTRA_DIST = \ - msc_vlr_test_no_authen.ok \ - msc_vlr_test_no_authen.err \ - msc_vlr_test_gsm_authen.ok \ - msc_vlr_test_gsm_authen.err \ - msc_vlr_test_gsm_ciph.ok \ - msc_vlr_test_gsm_ciph.err \ - msc_vlr_test_umts_authen.ok \ - msc_vlr_test_umts_authen.err \ - msc_vlr_test_hlr_reject.ok \ - msc_vlr_test_hlr_reject.err \ - msc_vlr_test_hlr_timeout.ok \ - msc_vlr_test_hlr_timeout.err \ - msc_vlr_test_ms_timeout.ok \ - msc_vlr_test_ms_timeout.err \ - msc_vlr_test_reject_concurrency.ok \ - msc_vlr_test_reject_concurrency.err \ - msc_vlr_test_rest.ok \ - msc_vlr_test_rest.err \ - $(NULL) - -COMMON_LDADD = \ - $(top_builddir)/src/libmsc/libmsc.a \ - $(top_builddir)/src/libcommon-cs/libcommon-cs.a \ - $(top_builddir)/src/libvlr/libvlr.a \ - $(top_builddir)/src/libbsc/libbsc.a \ - $(top_builddir)/src/libtrau/libtrau.a \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(LIBSMPP34_LIBS) \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBCRYPTO_LIBS) \ - $(LIBOSMOVTY_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOSIGTRAN_LIBS) \ - $(LIBOSMORANAP_LIBS) \ - $(LIBASN1C_LIBS) \ - $(LIBOSMOLEGACYMGCP_LIBS) \ - $(LIBRARY_GSM) \ - -ldbi \ - -lrt \ - $(NULL) - -COMMON_LDFLAGS = \ - -Wl,--wrap=gsup_client_create \ - -Wl,--wrap=gsup_client_send \ - -Wl,--wrap=a_iface_tx_dtap \ - -Wl,--wrap=a_iface_tx_clear_cmd \ - -Wl,--wrap=a_iface_tx_paging \ - -Wl,--wrap=ranap_iu_tx \ - -Wl,--wrap=ranap_iu_tx_release \ - -Wl,--wrap=ranap_iu_tx_common_id \ - -Wl,--wrap=ranap_iu_page_cs \ - -Wl,--wrap=msc_stop_paging \ - -Wl,--wrap=gsm340_gen_scts \ - -Wl,--wrap=RAND_bytes \ - $(NULL) - -noinst_PROGRAMS = \ - msc_vlr_test_no_authen \ - msc_vlr_test_gsm_authen \ - msc_vlr_test_gsm_ciph \ - msc_vlr_test_umts_authen \ - msc_vlr_test_hlr_reject \ - msc_vlr_test_hlr_timeout \ - msc_vlr_test_ms_timeout \ - msc_vlr_test_reject_concurrency \ - msc_vlr_test_rest \ - $(NULL) - -msc_vlr_test_no_authen_SOURCES = \ - msc_vlr_test_no_authen.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_no_authen_LDADD = $(COMMON_LDADD) -msc_vlr_test_no_authen_LDFLAGS = $(COMMON_LDFLAGS) - -msc_vlr_test_gsm_authen_SOURCES = \ - msc_vlr_test_gsm_authen.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_gsm_authen_LDADD = $(COMMON_LDADD) -msc_vlr_test_gsm_authen_LDFLAGS = $(COMMON_LDFLAGS) - -msc_vlr_test_gsm_ciph_SOURCES = \ - msc_vlr_test_gsm_ciph.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_gsm_ciph_LDADD = $(COMMON_LDADD) -msc_vlr_test_gsm_ciph_LDFLAGS = $(COMMON_LDFLAGS) - -msc_vlr_test_umts_authen_SOURCES = \ - msc_vlr_test_umts_authen.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_umts_authen_LDADD = $(COMMON_LDADD) -msc_vlr_test_umts_authen_LDFLAGS = $(COMMON_LDFLAGS) - -msc_vlr_test_hlr_reject_SOURCES = \ - msc_vlr_test_hlr_reject.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_hlr_reject_LDADD = $(COMMON_LDADD) -msc_vlr_test_hlr_reject_LDFLAGS = $(COMMON_LDFLAGS) - -msc_vlr_test_hlr_timeout_SOURCES = \ - msc_vlr_test_hlr_timeout.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_hlr_timeout_LDADD = $(COMMON_LDADD) -msc_vlr_test_hlr_timeout_LDFLAGS = $(COMMON_LDFLAGS) - -msc_vlr_test_ms_timeout_SOURCES = \ - msc_vlr_test_ms_timeout.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_ms_timeout_LDADD = $(COMMON_LDADD) -msc_vlr_test_ms_timeout_LDFLAGS = $(COMMON_LDFLAGS) - -msc_vlr_test_reject_concurrency_SOURCES = \ - msc_vlr_test_reject_concurrency.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_reject_concurrency_LDADD = $(COMMON_LDADD) -msc_vlr_test_reject_concurrency_LDFLAGS = $(COMMON_LDFLAGS) - -msc_vlr_test_rest_SOURCES = \ - msc_vlr_test_rest.c \ - msc_vlr_tests.c \ - $(NULL) -msc_vlr_test_rest_LDADD = $(COMMON_LDADD) -msc_vlr_test_rest_LDFLAGS = $(COMMON_LDFLAGS) - -.PHONY: update_exp -update_exp: - $(builddir)/msc_vlr_test_no_authen >$(srcdir)/msc_vlr_test_no_authen.ok 2>$(srcdir)/msc_vlr_test_no_authen.err - $(builddir)/msc_vlr_test_gsm_authen >$(srcdir)/msc_vlr_test_gsm_authen.ok 2>$(srcdir)/msc_vlr_test_gsm_authen.err - $(builddir)/msc_vlr_test_gsm_ciph >$(srcdir)/msc_vlr_test_gsm_ciph.ok 2>$(srcdir)/msc_vlr_test_gsm_ciph.err - $(builddir)/msc_vlr_test_umts_authen >$(srcdir)/msc_vlr_test_umts_authen.ok 2>$(srcdir)/msc_vlr_test_umts_authen.err - $(builddir)/msc_vlr_test_hlr_reject >$(srcdir)/msc_vlr_test_hlr_reject.ok 2>$(srcdir)/msc_vlr_test_hlr_reject.err - $(builddir)/msc_vlr_test_hlr_timeout >$(srcdir)/msc_vlr_test_hlr_timeout.ok 2>$(srcdir)/msc_vlr_test_hlr_timeout.err - $(builddir)/msc_vlr_test_ms_timeout >$(srcdir)/msc_vlr_test_ms_timeout.ok 2>$(srcdir)/msc_vlr_test_ms_timeout.err - $(builddir)/msc_vlr_test_reject_concurrency >$(srcdir)/msc_vlr_test_reject_concurrency.ok 2>$(srcdir)/msc_vlr_test_reject_concurrency.err - $(builddir)/msc_vlr_test_rest >$(srcdir)/msc_vlr_test_rest.ok 2>$(srcdir)/msc_vlr_test_rest.err diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.c b/tests/msc_vlr/msc_vlr_test_gsm_authen.c deleted file mode 100644 index 70b7614d0..000000000 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.c +++ /dev/null @@ -1,924 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -void test_gsm_authen() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - net->authentication_required = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject"); - gsup_rx("06010809710000004026f0", NULL); - EXPECT_ACCEPTED(false); - - thwart_rx_non_initial_requests(); - - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - BTW("after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector"); - auth_request_sent = false; - auth_request_expect_rand = "12aca96fb4ffdea5c985cbafa9b6e18b"; - cm_service_result_sent = RES_NONE; - ms_sends_msg("05247803305886089910070000006402"); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts with a CM Service Accept"); - gsup_expect_tx(NULL); - ms_sends_msg("0554" "20bde240" /* 2nd vector's sres, s.a. */); - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - BTW("an SMS is sent, MS is paged"); - paging_expect_imsi(imsi); - paging_sent = false; - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("the subscriber and its pending request should remain"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - - btw("MS replies with Paging Response, and VLR sends Auth Request with third key"); - auth_request_sent = false; - auth_request_expect_rand = "e7c03ba7cf0e2fde82b2dc4d63077d42"; - ms_sends_msg("06270703305882089910070000006402"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts and sends pending SMS"); - dtap_expect_tx("09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05806470f1" /* originating address 46071 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"); - ms_sends_msg("0554" "a29514ae" /* 3rd vector's sres, s.a. */); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - - btw("SMS was delivered, no requests pending for subscr"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); - - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - expect_bssap_clear(); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("SMS is done, conn is gone"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_gsm_authen_tmsi() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - net->authentication_required = true; - net->vlr->cfg.assign_tmsi = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject"); - gsup_rx("06010809710000004026f0", NULL); - EXPECT_ACCEPTED(false); - - thwart_rx_non_initial_requests(); - - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000004026f0", NULL); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x03020100, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == GSM_RESERVED_TMSI, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the new TMSI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == GSM_RESERVED_TMSI, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("after a while, a new conn sends a CM Service Request using above TMSI. VLR responds with Auth Req, 2nd auth vector"); - auth_request_sent = false; - auth_request_expect_rand = "12aca96fb4ffdea5c985cbafa9b6e18b"; - cm_service_result_sent = RES_NONE; - ms_sends_msg("05247803305886" "05f4" "03020100"); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts with a CM Service Accept"); - gsup_expect_tx(NULL); - ms_sends_msg("0554" "20bde240" /* 2nd vector's sres, s.a. */); - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - BTW("an SMS is sent, MS is paged"); - paging_expect_tmsi(0x03020100); - paging_sent = false; - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("the subscriber and its pending request should remain"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - - btw("MS replies with Paging Response using TMSI, and VLR sends Auth Request with third key"); - auth_request_sent = false; - auth_request_expect_rand = "e7c03ba7cf0e2fde82b2dc4d63077d42"; - ms_sends_msg("06270703305882" "05f4" "03020100"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts and sends pending SMS"); - dtap_expect_tx("09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05806470f1" /* originating address 46071 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"); - ms_sends_msg("0554" "a29514ae" /* 3rd vector's sres, s.a. */); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - - btw("SMS was delivered, no requests pending for subscr"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); - - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - expect_bssap_clear(); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("SMS is done, conn is gone"); - EXPECT_CONN_COUNT(0); - - /* TODO: when the subscriber detaches, the vlr_subscr gets - * deallocated and we no longer know the TMSI. This case is covered by - * test_lu_unknown_tmsi(), so here I'd like to still have the TMSI. - BTW("subscriber detaches, using TMSI"); - expect_bssap_clear(); - ms_sends_msg("050130" "05f4" "03020100"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - */ - - BTW("subscriber sends LU Request, this time with the TMSI"); - btw("Location Update request causes an Auth Req to MS"); - lu_result_sent = RES_NONE; - auth_request_sent = false; - auth_request_expect_rand = "fa8f20b781b5881329d4fea26b1a3c51"; - ms_sends_msg("050802008168000130" "05f4" "03020100"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05545afc8d72"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000004026f0", NULL); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x07060504); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x07060504, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - btw("subscriber has the new TMSI"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x07060504); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == GSM_RESERVED_TMSI, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x07060504, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches, using new TMSI"); - expect_bssap_clear(); - ms_sends_msg("050130" "05f4" "07060504"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_gsm_authen_imei() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - net->authentication_required = true; - net->vlr->cfg.check_imei_rqd = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject"); - gsup_rx("06010809710000004026f0", NULL); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS"); - dtap_expect_tx("051802"); - gsup_rx("06010809710000004026f0", NULL); - - btw("We will only do business when the IMEI is known"); - EXPECT_CONN_COUNT(1); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imei[0], == 0, "%d"); - vlr_subscr_put(vsub); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS replies with an Identity Response"); - expect_bssap_clear(); - ms_sends_msg("0559084a32244332244302"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the IMEI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imei, "423423423423420"), == 0, "%d"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_gsm_authen_tmsi_imei() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - net->authentication_required = true; - net->vlr->cfg.assign_tmsi = true; - net->vlr->cfg.check_imei_rqd = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject"); - gsup_rx("06010809710000004026f0", NULL); - EXPECT_ACCEPTED(false); - - thwart_rx_non_initial_requests(); - - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS"); - dtap_expect_tx("051802"); - gsup_rx("06010809710000004026f0", NULL); - - btw("We will only do business when the IMEI is known"); - EXPECT_CONN_COUNT(1); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imei[0], == 0, "%d"); - vlr_subscr_put(vsub); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS replies with an Identity Response"); - ms_sends_msg("0559084a32244332244302"); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x03020100, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == GSM_RESERVED_TMSI, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the IMEI and TMSI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imei, "423423423423420"), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches, using TMSI"); - expect_bssap_clear(); - ms_sends_msg("050130" "05f4" "03020100"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_gsm_milenage_authen() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000010650"; - - comment_start(); - - net->authentication_required = true; - rx_from_ran = RAN_GERAN_A; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("080108" "09710000000156f0"); - ms_sends_msg("0508" /* MM LU */ - "7" /* ciph key seq: no key available */ - "0" /* LU type: normal */ - "ffffff" "0000" /* LAI, LAC */ - "30" /* classmark 1: GSM phase 2 */ - "089910070000106005" /* IMSI */ - ); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - /* based on auc_3g: - * K = 'EB215756028D60E3275E613320AEC880', - * OPC = 'FB2A3D1B360F599ABAB99DB8669F8308' - * SQN = 0 - */ - auth_request_sent = false; - auth_request_expect_rand = "39fa2f4e3d523d8619a73b4f65c3e14d"; - auth_request_expect_autn = NULL; - gsup_rx("0a" - /* imsi */ - "0108" "09710000000156f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0362" "2010" "39fa2f4e3d523d8619a73b4f65c3e14d" - /* TL sres TL kc */ - "2104" "9b36efdf" "2208" "059a4f668f6fbe39" - /* TL 3G IK */ - "2310" "27497388b6cb044648f396aa155b95ef" - /* TL 3G CK */ - "2410" "f64735036e5871319c679f4742a75ea1" - /* TL AUTN */ - "2510" "8704f5ba55f30000d2ee44b22c8ea919" - /* TL RES */ - "2708" "e229c19e791f2e41" - "0362" "2010" "c187a53a5e6b9d573cac7c74451fd46d" - "2104" "85aa3130" "2208" "d3d50a000bf04f6e" - "2310" "1159ec926a50e98c034a6b7d7c9f418d" - "2410" "df3a03d9ca5335641efc8e36d76cd20b" - "2510" "1843a645b98d00005b2d666af46c45d9" - "2708" "7db47cf7f81e4dc7" - "0362" "2010" "efa9c29a9742148d5c9070348716e1bb" - "2104" "69d5f9fb" "2208" "3df176f0c29f1a3d" - "2310" "eb50e770ddcc3060101d2f43b6c2b884" - "2410" "76542abce5ff9345b0e8947f4c6e019c" - "2510" "f9375e6d41e1000096e7fe4ff1c27e39" - "2708" "706f996719ba609c" - ,NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000000156f0"); - ms_sends_msg("0554" "9b36efdf"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000000156f00804032443f2", - "12010809710000000156f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000000156f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - BTW("after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector"); - auth_request_sent = false; - auth_request_expect_rand = "c187a53a5e6b9d573cac7c74451fd46d"; - auth_request_expect_autn = NULL; - cm_service_result_sent = RES_NONE; - ms_sends_msg("052478" - "03305886" /* classmark 2: GSM phase 2 */ - "089910070000106005" /* IMSI */); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts with a CM Service Accept"); - gsup_expect_tx(NULL); - ms_sends_msg("0554" "85aa3130"); /* 2nd vector's sres, s.a. */ - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 42342\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - BTW("an SMS is sent, MS is paged"); - paging_expect_imsi(imsi); - paging_sent = false; - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("the subscriber and its pending request should remain"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - - btw("MS replies with Paging Response, and VLR sends Auth Request with third key"); - auth_request_sent = false; - auth_request_expect_rand = "efa9c29a9742148d5c9070348716e1bb"; - auth_request_expect_autn = NULL; - ms_sends_msg("062707" - "03305886" /* classmark 2 */ - "089910070000106005" /* IMSI */); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts and sends pending SMS"); - dtap_expect_tx("09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05802443f2" /* originating address 42342 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"); - ms_sends_msg("0554" "69d5f9fb"); /* 3nd vector's sres, s.a. */ - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - - btw("SMS was delivered, no requests pending for subscr"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); - - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - expect_bssap_clear(); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("SMS is done, conn is gone"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130" - "089910070000106005" /* IMSI */); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_gsm_authen, - test_gsm_authen_tmsi, - test_gsm_authen_imei, - test_gsm_authen_tmsi_imei, - test_gsm_milenage_authen, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.err b/tests/msc_vlr/msc_vlr_test_gsm_authen.err deleted file mode 100644 index c12eba118..000000000 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.err +++ /dev/null @@ -1,1997 +0,0 @@ -===== test_gsm_authen -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Event VLR_ULA_E_HLR_LU_RES not permitted -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=1 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=1 auth_types=0x1 and... -- ...rand=12aca96fb4ffdea5c985cbafa9b6e18b -- ...expecting sres=20bde240 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 0 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts with a CM Service Accept - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = 20bde240) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: 20 bd e2 40 -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 46071
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:46071: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0xffffffff, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -- MS replies with Paging Response, and VLR sends Auth Request with third key - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=2 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=2 auth_types=0x1 and... -- ...rand=e7c03ba7cf0e2fde82b2dc4d63077d42 -- ...expecting sres=a29514ae -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and sends pending SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = a29514ae) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: a2 95 14 ae -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:46071 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_gsm_authen: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_gsm_authen_tmsi -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Event VLR_ULA_E_HLR_LU_RES not permitted -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -- Subscriber has the new TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0xffffffff - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- after a while, a new conn sends a CM Service Request using above TMSI. VLR responds with Auth Req, 2nd auth vector - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(TMSI)=50462976 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: is child of Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=1 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=1 auth_types=0x1 and... -- ...rand=12aca96fb4ffdea5c985cbafa9b6e18b -- ...expecting sres=20bde240 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 0 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts with a CM Service Accept - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = 20bde240) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: 20 bd e2 40 -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 46071
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:46071: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0x03020100, LAC 0 - paging_expecting_tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -- MS replies with Paging Response using TMSI, and VLR sends Auth Request with third key - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(TMSI)=50462976 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: is child of Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=2 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=2 auth_types=0x1 and... -- ...rand=e7c03ba7cf0e2fde82b2dc4d63077d42 -- ...expecting sres=a29514ae -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and sends pending SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = a29514ae) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: a2 95 14 ae -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:46071 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber sends LU Request, this time with the TMSI -- Location Update request causes an Auth Req to MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(TMSI)=50462976 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: is child of Subscr_Conn(50462976) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=3 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=3 auth_types=0x1 and... -- ...rand=fa8f20b781b5881329d4fea26b1a3c51 -- ...expecting sres=5afc8d72 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = 5afc8d72) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: 5a fc 8d 72 -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(50462976) -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(50462976) -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(50462976) -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(50462976) -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(50462976) -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x07060504 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 3 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x07060504 - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(50462976) -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(50462976) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -- subscriber has the new TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0xffffffff - vsub->tmsi == 0x07060504 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches, using new TMSI - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_gsm_authen_tmsi: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_gsm_authen_imei -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Event VLR_ULA_E_HLR_LU_RES not permitted -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051802 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- We will only do business when the IMEI is known - llist_count(&net->subscr_conns) == 1 -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->imei[0] == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS replies with an Identity Response - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI)=423423423423420 -DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -- Subscriber has the IMEI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - strcmp(vsub->imei, "423423423423420") == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_gsm_authen_imei: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_gsm_authen_tmsi_imei -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- If the HLR were to send a GSUP _UPDATE_LOCATION_RESULT we'd still reject -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Event VLR_ULA_E_HLR_LU_RES not permitted -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI_TMSI -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051802 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- We will only do business when the IMEI is known - llist_count(&net->subscr_conns) == 1 -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->imei[0] == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS replies with an Identity Response - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI)=423423423423420 -DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x03020100 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -- Subscriber has the IMEI and TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - strcmp(vsub->imei, "423423423423420") == 0 - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches, using TMSI - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_gsm_authen_tmsi_imei: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_gsm_milenage_authen -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000010650 type=NORMAL -DMM LU/new-LAC: 0/0 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650 -DVLR New subscr, IMSI: 901700000010650 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e4103622010c187a53a5e6b9d573cac7c74451fd46d210485aa31302208d3d50a000bf04f6e23101159ec926a50e98c034a6b7d7c9f418d2410df3a03d9ca5335641efc8e36d76cd20b25101843a645b98d00005b2d666af46c45d927087db47cf7f81e4dc703622010efa9c29a9742148d5c9070348716e1bb210469d5f9fb22083df176f0c29f1a3d2310eb50e770ddcc3060101d2f43b6c2b884241076542abce5ff9345b0e8947f4c6e019c2510f9375e6d41e1000096e7fe4ff1c27e392708706f996719ba609c -DVLR GSUP rx 311: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e4103622010c187a53a5e6b9d573cac7c74451fd46d210485aa31302208d3d50a000bf04f6e23101159ec926a50e98c034a6b7d7c9f418d2410df3a03d9ca5335641efc8e36d76cd20b25101843a645b98d00005b2d666af46c45d927087db47cf7f81e4dc703622010efa9c29a9742148d5c9070348716e1bb210469d5f9fb22083df176f0c29f1a3d2310eb50e770ddcc3060101d2f43b6c2b884241076542abce5ff9345b0e8947f4c6e019c2510f9375e6d41e1000096e7fe4ff1c27e392708706f996719ba609c -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000010650) Received 3 auth tuples -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000010650: tuple use_count=1 key_seq=0 auth_types=0x3 and... -- ...rand=39fa2f4e3d523d8619a73b4f65c3e14d -- ...expecting sres=9b36efdf -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000010650: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000010650: MM GSM AUTHENTICATION RESPONSE (sres = 9b36efdf) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000010650) received res: 9b 36 ef df -DVLR SUBSCR(IMSI:901700000010650) AUTH established GSM security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000000156f0 -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000000156f00804032443f2 -DVLR GSUP rx 17: 10010809710000000156f00804032443f2 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR IMSI:901700000010650 has MSISDN:42342 -DVLR GSUP tx: 12010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000000156f0 -DVLR GSUP rx 11: 06010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:42342 -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000010650 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=1 -- sending GSM Auth Request for MSISDN:42342: tuple use_count=1 key_seq=1 auth_types=0x3 and... -- ...rand=c187a53a5e6b9d573cac7c74451fd46d -- ...expecting sres=85aa3130 -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:42342: MSC conn use - 1 == 1 - cm_service_result_sent == 0 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts with a CM Service Accept - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM GSM AUTHENTICATION RESPONSE (sres = 85aa3130) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: 85 aa 31 30 -DVLR SUBSCR(MSISDN:42342) AUTH established GSM security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:42342 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:42342: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:42342: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:42342 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DMM Subscriber MSISDN:42342 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000010650, TMSI 0xffffffff, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:42342 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:42342 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 3 -- MS replies with Paging Response, and VLR sends Auth Request with third key - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000010650 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:42342 usage increases to: 4 -DREF VLR subscr MSISDN:42342 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=2 -- sending GSM Auth Request for MSISDN:42342: tuple use_count=1 key_seq=2 auth_types=0x3 and... -- ...rand=efa9c29a9742148d5c9070348716e1bb -- ...expecting sres=69d5f9fb -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:42342: MSC conn use - 1 == 1 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and sends pending SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM GSM AUTHENTICATION RESPONSE (sres = 69d5f9fb) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: 69 d5 f9 fb -DVLR SUBSCR(MSISDN:42342) AUTH established GSM security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:42342 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:42342 usage increases to: 5 -DREF MSISDN:42342: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005802443f2000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:42342: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:42342 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:42342: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:42342: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:42342: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 3 -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DMM IMSI DETACH for MSISDN:42342 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:42342 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_gsm_milenage_authen: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.ok b/tests/msc_vlr/msc_vlr_test_gsm_authen.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c deleted file mode 100644 index e0bd9673a..000000000 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ /dev/null @@ -1,845 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -void test_ciph() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - /* implicit: net->authentication_required = true; */ - net->a5_encryption = VLR_CIPH_A5_1; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS"); - cipher_mode_cmd_sent = false; - ms_sends_msg("05542d8b2c3e"); - OSMO_ASSERT(cipher_mode_cmd_sent); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Ciphering Mode Complete, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0632"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - BTW("after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector"); - cm_service_result_sent = RES_NONE; - auth_request_sent = false; - auth_request_expect_rand = "12aca96fb4ffdea5c985cbafa9b6e18b"; - ms_sends_msg("05247803305886089910070000006402"); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts and requests Ciphering"); - cipher_mode_cmd_sent = false; - ms_sends_msg("0554" "20bde240" /* 2nd vector's sres, s.a. */); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Ciphering Mode Complete, VLR accepts; above Ciphering is an implicit CM Service Accept"); - ms_sends_msg("0632"); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - BTW("an SMS is sent, MS is paged"); - paging_expect_imsi(imsi); - paging_sent = false; - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("the subscriber and its pending request should remain"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - - btw("MS replies with Paging Response, and VLR sends Auth Request with third key"); - auth_request_sent = false; - auth_request_expect_rand = "e7c03ba7cf0e2fde82b2dc4d63077d42"; - ms_sends_msg("06270703305882089910070000006402"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts and requests Ciphering"); - cipher_mode_cmd_sent = false; - ms_sends_msg("0554" "a29514ae" /* 3rd vector's sres, s.a. */); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Ciphering Mode Complete, VLR accepts and sends pending SMS"); - dtap_expect_tx("09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05806470f1" /* originating address 46071 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"); - ms_sends_msg("0632"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - - btw("SMS was delivered, no requests pending for subscr"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); - - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - expect_bssap_clear(); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("SMS is done, conn is gone"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_ciph_tmsi() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - /* implicit: net->authentication_required = true; */ - net->a5_encryption = VLR_CIPH_A5_1; - net->vlr->cfg.assign_tmsi = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS"); - cipher_mode_cmd_sent = false; - ms_sends_msg("05542d8b2c3e"); - OSMO_ASSERT(cipher_mode_cmd_sent); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Ciphering Mode Complete, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0632"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000004026f0", NULL); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x03020100, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == GSM_RESERVED_TMSI, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the new TMSI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == GSM_RESERVED_TMSI, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("after a while, a new conn sends a CM Service Request using above TMSI. VLR responds with Auth Req, 2nd auth vector"); - cm_service_result_sent = RES_NONE; - auth_request_sent = false; - auth_request_expect_rand = "12aca96fb4ffdea5c985cbafa9b6e18b"; - auth_request_expect_autn = NULL; - ms_sends_msg("05247803305886" "05f4" "03020100"); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts and requests Ciphering"); - cipher_mode_cmd_sent = false; - ms_sends_msg("0554" "20bde240" /* 2nd vector's sres, s.a. */); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Ciphering Mode Complete, VLR accepts; above Ciphering is an implicit CM Service Accept"); - ms_sends_msg("0632"); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - BTW("an SMS is sent, MS is paged"); - paging_expect_tmsi(0x03020100); - paging_sent = false; - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("the subscriber and its pending request should remain"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - - btw("MS replies with Paging Response using TMSI, and VLR sends Auth Request with third key"); - auth_request_sent = false; - auth_request_expect_rand = "e7c03ba7cf0e2fde82b2dc4d63077d42"; - ms_sends_msg("06270703305882" "05f4" "03020100"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Authen Response, VLR accepts and requests Ciphering"); - cipher_mode_cmd_sent = false; - ms_sends_msg("0554" "a29514ae" /* 3rd vector's sres, s.a. */); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends Ciphering Mode Complete, VLR accepts and sends pending SMS"); - dtap_expect_tx("09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05806470f1" /* originating address 46071 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"); - ms_sends_msg("0632"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - - btw("SMS was delivered, no requests pending for subscr"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); - - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - expect_bssap_clear(); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("SMS is done, conn is gone"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches, using TMSI"); - expect_bssap_clear(); - ms_sends_msg("050130" "05f4" "03020100"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_ciph_imei() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - /* implicit: net->authentication_required = true; */ - net->a5_encryption = VLR_CIPH_A5_1; - net->vlr->cfg.check_imei_rqd = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS"); - cipher_mode_cmd_sent = false; - ms_sends_msg("05542d8b2c3e"); - OSMO_ASSERT(cipher_mode_cmd_sent); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Ciphering Mode Complete, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0632"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS"); - dtap_expect_tx("051802"); - gsup_rx("06010809710000004026f0", NULL); - - btw("We will only do business when the IMEI is known"); - EXPECT_CONN_COUNT(1); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imei[0], == 0, "%d"); - vlr_subscr_put(vsub); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS replies with an Identity Response"); - expect_bssap_clear(); - ms_sends_msg("0559084a32244332244302"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the IMEI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imei, "423423423423420"), == 0, "%d"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_ciph_imeisv() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - /* implicit: net->authentication_required = true; */ - net->a5_encryption = VLR_CIPH_A5_1; - net->vlr->cfg.retrieve_imeisv_ciphered = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS"); - cipher_mode_cmd_sent = false; - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - VERBOSE_ASSERT(cipher_mode_cmd_sent_with_imeisv, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imeisv[0], == 0, "%d"); - vlr_subscr_put(vsub); - - btw("MS sends Ciphering Mode Complete with IMEISV, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("063217094b32244332244372f5"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("Subscriber has the IMEISV"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imeisv, "4234234234234275"), == 0, "%d"); - vlr_subscr_put(vsub); - - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_ciph_tmsi_imei() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - /* implicit: net->authentication_required = true; */ - net->a5_encryption = VLR_CIPH_A5_1; - net->vlr->cfg.assign_tmsi = true; - net->vlr->cfg.check_imei_rqd = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS"); - cipher_mode_cmd_sent = false; - ms_sends_msg("05542d8b2c3e"); - OSMO_ASSERT(cipher_mode_cmd_sent); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("needs ciph, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Ciphering Mode Complete, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0632"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS"); - dtap_expect_tx("051802"); - gsup_rx("06010809710000004026f0", NULL); - - btw("We will only do business when the IMEI is known"); - EXPECT_CONN_COUNT(1); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imei[0], == 0, "%d"); - vlr_subscr_put(vsub); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS replies with an Identity Response"); - ms_sends_msg("0559084a32244332244302"); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x03020100, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == GSM_RESERVED_TMSI, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the IMEI and TMSI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imei, "423423423423420"), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches, using TMSI"); - expect_bssap_clear(); - ms_sends_msg("050130" "05f4" "03020100"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_lu_unknown_tmsi() -{ - comment_start(); - - btw("Location Update request with unknown TMSI sends ID Request for IMSI"); - lu_result_sent = RES_NONE; - dtap_expect_tx("051801"); - ms_sends_msg("050802008168000130" "05f4" "23422342"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS tells us the IMSI, causes a GSUP LU request to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0559089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_ciph, - test_ciph_tmsi, - test_ciph_imei, - test_ciph_imeisv, - test_ciph_tmsi_imei, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err deleted file mode 100644 index b26f0d20e..000000000 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ /dev/null @@ -1,1679 +0,0 @@ -===== test_ciph -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth+Ciph -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 - auth_request_sent == 1 -- MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -- sending Ciphering Mode Command for IMSI:901700000004620: cipher=VLR_CIPH_A5_1 kc=61855fb81fc2a800 retrieve_imeisv=0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- MS sends Ciphering Mode Complete, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR IMSI:901700000004620: CIPHERING MODE COMPLETE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth+Ciph -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=1 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=1 auth_types=0x1 and... -- ...rand=12aca96fb4ffdea5c985cbafa9b6e18b -- ...expecting sres=20bde240 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - auth_request_sent == 1 - cm_service_result_sent == 0 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and requests Ciphering - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = 20bde240) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: 20 bd e2 40 -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -- sending Ciphering Mode Command for MSISDN:46071: cipher=VLR_CIPH_A5_1 kc=07fa7502e07e1c00 retrieve_imeisv=0 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 0 - cipher_mode_cmd_sent == 1 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Ciphering Mode Complete, VLR accepts; above Ciphering is an implicit CM Service Accept - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR MSISDN:46071: CIPHERING MODE COMPLETE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request - cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 46071
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:46071: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0xffffffff, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -- MS replies with Paging Response, and VLR sends Auth Request with third key - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth+Ciph -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=2 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=2 auth_types=0x1 and... -- ...rand=e7c03ba7cf0e2fde82b2dc4d63077d42 -- ...expecting sres=a29514ae -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and requests Ciphering - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = a29514ae) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: a2 95 14 ae -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -- sending Ciphering Mode Command for MSISDN:46071: cipher=VLR_CIPH_A5_1 kc=e2b234f807886400 retrieve_imeisv=0 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - cipher_mode_cmd_sent == 1 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Ciphering Mode Complete, VLR accepts and sends pending SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR MSISDN:46071: CIPHERING MODE COMPLETE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_CIPH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DREF MSISDN:46071: MSC conn use + 1 == 2 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS - dtap_tx_confirmed == 1 - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:46071 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_ciph: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_ciph_tmsi -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth+Ciph -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -- sending Ciphering Mode Command for IMSI:901700000004620: cipher=VLR_CIPH_A5_1 kc=61855fb81fc2a800 retrieve_imeisv=0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - auth_request_sent == 1 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- MS sends Ciphering Mode Complete, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR IMSI:901700000004620: CIPHERING MODE COMPLETE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -- Subscriber has the new TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0xffffffff - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- after a while, a new conn sends a CM Service Request using above TMSI. VLR responds with Auth Req, 2nd auth vector - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(TMSI)=50462976 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: is child of Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth+Ciph -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=1 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=1 auth_types=0x1 and... -- ...rand=12aca96fb4ffdea5c985cbafa9b6e18b -- ...expecting sres=20bde240 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - auth_request_sent == 1 - cm_service_result_sent == 0 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and requests Ciphering - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = 20bde240) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: 20 bd e2 40 -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -- sending Ciphering Mode Command for MSISDN:46071: cipher=VLR_CIPH_A5_1 kc=07fa7502e07e1c00 retrieve_imeisv=0 -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 0 - cipher_mode_cmd_sent == 1 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Ciphering Mode Complete, VLR accepts; above Ciphering is an implicit CM Service Accept - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR MSISDN:46071: CIPHERING MODE COMPLETE -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request - cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 46071
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:46071: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0x03020100, LAC 0 - paging_expecting_tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -- MS replies with Paging Response using TMSI, and VLR sends Auth Request with third key - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(TMSI)=50462976 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: is child of Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth+Ciph -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=2 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=2 auth_types=0x1 and... -- ...rand=e7c03ba7cf0e2fde82b2dc4d63077d42 -- ...expecting sres=a29514ae -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and requests Ciphering - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = a29514ae) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: a2 95 14 ae -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(50462976) -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(50462976){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -- sending Ciphering Mode Command for MSISDN:46071: cipher=VLR_CIPH_A5_1 kc=e2b234f807886400 retrieve_imeisv=0 -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - cipher_mode_cmd_sent == 1 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Ciphering Mode Complete, VLR accepts and sends pending SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR MSISDN:46071: CIPHERING MODE COMPLETE -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_WAIT_CIPH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DREF MSISDN:46071: MSC conn use + 1 == 2 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS - dtap_tx_confirmed == 1 - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:46071 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches, using TMSI - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_ciph_tmsi: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_ciph_imei -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth+Ciph -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -- sending Ciphering Mode Command for IMSI:901700000004620: cipher=VLR_CIPH_A5_1 kc=61855fb81fc2a800 retrieve_imeisv=0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- MS sends Ciphering Mode Complete, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR IMSI:901700000004620: CIPHERING MODE COMPLETE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051802 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- We will only do business when the IMEI is known - llist_count(&net->subscr_conns) == 1 -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->imei[0] == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS replies with an Identity Response - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI)=423423423423420 -DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -- Subscriber has the IMEI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - strcmp(vsub->imei, "423423423423420") == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_ciph_imei: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_ciph_imeisv -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth+Ciph -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -- sending Ciphering Mode Command for IMSI:901700000004620: cipher=VLR_CIPH_A5_1 kc=61855fb81fc2a800 retrieve_imeisv=1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - cipher_mode_cmd_sent == 1 - cipher_mode_cmd_sent_with_imeisv == 1 - lu_result_sent == 0 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 - vsub->imeisv[0] == 0 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -- MS sends Ciphering Mode Complete with IMEISV, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR IMSI:901700000004620: CIPHERING MODE COMPLETE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: got IMEISV: 4234234234234275F -DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA - lu_result_sent == 0 -- Subscriber has the IMEISV -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 - strcmp(vsub->imeisv, "4234234234234275") == 0 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_ciph_imeisv: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_ciph_tmsi_imei -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth+Ciph -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends Ciphering Mode Command to MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -- sending Ciphering Mode Command for IMSI:901700000004620: cipher=VLR_CIPH_A5_1 kc=61855fb81fc2a800 retrieve_imeisv=0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- needs ciph, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr IMSI:901700000004620: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- MS sends Ciphering Mode Complete, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_CIPH_M_COMPL -DRR IMSI:901700000004620: CIPHERING MODE COMPLETE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI_TMSI -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051802 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- We will only do business when the IMEI is known - llist_count(&net->subscr_conns) == 1 -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->imei[0] == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS replies with an Identity Response - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI)=423423423423420 -DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x03020100 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -- Subscriber has the IMEI and TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - strcmp(vsub->imei, "423423423423420") == 0 - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches, using TMSI - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(TMSI)=50462976 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_ciph_tmsi_imei: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.ok b/tests/msc_vlr/msc_vlr_test_gsm_ciph.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.c b/tests/msc_vlr/msc_vlr_test_hlr_reject.c deleted file mode 100644 index 095da8172..000000000 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.c +++ /dev/null @@ -1,447 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -void test_hlr_rej_auth_info_unknown_imsi() -{ - comment_start(); - - net->authentication_required = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _SEND_AUTH_INFO_ERROR = unknown IMSI"); - auth_request_sent = false; - expect_bssap_clear(); - gsup_rx("09" "010809710000004026f0" "020102", NULL); - VERBOSE_ASSERT(auth_request_sent, == false, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_hlr_rej_auth_info_net_fail() -{ - comment_start(); - - net->authentication_required = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _SEND_AUTH_INFO_ERROR = net fail"); - auth_request_sent = false; - expect_bssap_clear(); - gsup_rx("09" "010809710000004026f0" "020111", NULL); - VERBOSE_ASSERT(auth_request_sent, == false, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_hlr_rej_auth_info_net_fail_no_reuse_tuples() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - net->authentication_required = true; - net->vlr->cfg.auth_reuse_old_sets_on_error = false; - net->vlr->cfg.auth_tuple_max_use_count = 0; - - BTW("Submit a used auth tuple in the VLR"); - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - ,NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - - BTW("Now one auth tuple is available, but used."); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - OSMO_ASSERT(vsub->last_tuple); - VERBOSE_ASSERT(vsub->last_tuple->use_count, == 1, "%d"); - /* no need to look at all auth tuples, the ongoing test would take an - * unexpected course if there were more. */ - vlr_subscr_put(vsub); - - BTW("Another LU wants to get new tuples; HLR sends Network Failure, we reject."); - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _SEND_AUTH_INFO_ERROR = net fail"); - auth_request_sent = false; - expect_bssap_clear(); - gsup_rx("09" "010809710000004026f0" "020111", NULL); - VERBOSE_ASSERT(auth_request_sent, == false, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_hlr_rej_auth_info_unkown_imsi_no_reuse_tuples() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - net->authentication_required = true; - net->vlr->cfg.auth_reuse_old_sets_on_error = true; - net->vlr->cfg.auth_tuple_max_use_count = 0; - - BTW("Submit a used auth tuple in the VLR"); - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - ,NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - - BTW("Now one auth tuple is available, but used."); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - OSMO_ASSERT(vsub->last_tuple); - VERBOSE_ASSERT(vsub->last_tuple->use_count, == 1, "%d"); - /* no need to look at all auth tuples, the ongoing test would take an - * unexpected course if there were more. */ - vlr_subscr_put(vsub); - - BTW("Another LU wants to get new tuples; HLR sends IMSI Unknown. Even though we would re-use an old tuple, reject the unknown IMSI."); - VERBOSE_ASSERT(net->vlr->cfg.auth_reuse_old_sets_on_error, == true, "%d"); - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _SEND_AUTH_INFO_ERROR = unknown IMSI"); - auth_request_sent = false; - expect_bssap_clear(); - gsup_rx("09" "010809710000004026f0" "020102", NULL); - VERBOSE_ASSERT(auth_request_sent, == false, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_hlr_acc_but_no_auth_tuples() -{ - comment_start(); - - net->authentication_required = true; - net->vlr->cfg.auth_reuse_old_sets_on_error = true; - net->vlr->cfg.auth_tuple_max_use_count = 0; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT but it lacks auth tuples"); - auth_request_sent = false; - expect_bssap_clear(); - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* NO auth vectors */ - ,NULL); - VERBOSE_ASSERT(auth_request_sent, == false, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_hlr_rej_auth_info_net_fail_reuse_tuples() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - comment_start(); - - net->authentication_required = true; - net->vlr->cfg.auth_reuse_old_sets_on_error = true; - net->vlr->cfg.auth_tuple_max_use_count = 0; - - BTW("Submit a used auth tuple in the VLR"); - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - ,NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - - BTW("Now one auth tuple is available, but used."); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - OSMO_ASSERT(vsub->last_tuple); - VERBOSE_ASSERT(vsub->last_tuple->use_count, == 1, "%d"); - /* no need to look at all auth tuples, the ongoing test would take an - * unexpected course if there were more. */ - vlr_subscr_put(vsub); - - BTW("Another LU wants to get new tuples; even though HLR sends Network Failure, we are reusing the old tuples."); - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _SEND_AUTH_INFO_ERROR = net fail"); - auth_request_sent = false; - gsup_rx("09" "010809710000004026f0" "020111", NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -void test_hlr_rej_lu() -{ - comment_start(); - - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends UPDATE_LOCATION_ERROR"); - expect_bssap_clear(); - gsup_rx("05" "010809710000004026f0" "020102", - NULL); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -void test_hlr_no_insert_data() -{ - comment_start(); - - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends only _UPDATE_LOCATION_RESULT, no INSERT DATA"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - /* TODO should we wait for OSMO_GSUP_MSGT_INSERT_DATA_REQUEST? */ - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_hlr_rej_auth_info_unknown_imsi, - test_hlr_rej_auth_info_net_fail, - test_hlr_rej_auth_info_net_fail_reuse_tuples, - test_hlr_rej_auth_info_net_fail_no_reuse_tuples, - test_hlr_rej_auth_info_unkown_imsi_no_reuse_tuples, - test_hlr_acc_but_no_auth_tuples, - test_hlr_rej_lu, - test_hlr_no_insert_data, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.err b/tests/msc_vlr/msc_vlr_test_hlr_reject.err deleted file mode 100644 index c946c1efa..000000000 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.err +++ /dev/null @@ -1,1165 +0,0 @@ -===== test_hlr_rej_auth_info_unknown_imsi -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _SEND_AUTH_INFO_ERROR = unknown IMSI -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: 09010809710000004026f0020102 -DVLR GSUP rx 14: 09010809710000004026f0020102 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_NACK -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: GSUP: rx Auth Info Error cause: 2: IMSI unknown in HLR -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Authentication terminating with result VLR_AUTH_RES_UNKNOWN_SUBSCR -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_AUTH_FAILED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -- sending LU Reject for IMSI:901700000004620, cause 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=IMSI:901700000004620, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF IMSI:901700000004620: MSC conn use - 1 == 0 -DRLL subscr IMSI:901700000004620: Freeing subscriber connection -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr IMSI:901700000004620 usage decreases to: 0 -DREF freeing VLR subscr IMSI:901700000004620 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 0 - lu_result_sent == 2 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_hlr_rej_auth_info_unknown_imsi: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_hlr_rej_auth_info_net_fail -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _SEND_AUTH_INFO_ERROR = net fail -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: 09010809710000004026f0020111 -DVLR GSUP rx 14: 09010809710000004026f0020111 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_NACK -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: GSUP: rx Auth Info Error cause: 17: Network failure -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Authentication terminating with result VLR_AUTH_RES_PROC_ERR -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_AUTH_FAILED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -- sending LU Reject for IMSI:901700000004620, cause 17 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=IMSI:901700000004620, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF IMSI:901700000004620: MSC conn use - 1 == 0 -DRLL subscr IMSI:901700000004620: Freeing subscriber connection -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr IMSI:901700000004620 usage decreases to: 0 -DREF freeing VLR subscr IMSI:901700000004620 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 0 - lu_result_sent == 2 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_hlr_rej_auth_info_net_fail: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_hlr_rej_auth_info_net_fail_reuse_tuples ---- -- Submit a used auth tuple in the VLR -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a800 -DVLR GSUP rx 47: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a800 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 1 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- Now one auth tuple is available, but used. -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->last_tuple->use_count == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- Another LU wants to get new tuples; even though HLR sends Network Failure, we are reusing the old tuples. -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _SEND_AUTH_INFO_ERROR = net fail -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: 09010809710000004026f0020111 -DVLR GSUP rx 14: 09010809710000004026f0020111 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_NACK -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: GSUP: rx Auth Info Error cause: 17: Network failure -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=2 key_seq=0 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=2 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:46071: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:46071) received res: 2d 8b 2c 3e -DVLR SUBSCR(MSISDN:46071) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_hlr_rej_auth_info_net_fail_reuse_tuples: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_hlr_rej_auth_info_net_fail_no_reuse_tuples ---- -- Submit a used auth tuple in the VLR -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a800 -DVLR GSUP rx 47: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a800 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 1 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- Now one auth tuple is available, but used. -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->last_tuple->use_count == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- Another LU wants to get new tuples; HLR sends Network Failure, we reject. -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _SEND_AUTH_INFO_ERROR = net fail -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: 09010809710000004026f0020111 -DVLR GSUP rx 14: 09010809710000004026f0020111 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_NACK -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: GSUP: rx Auth Info Error cause: 17: Network failure -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Authentication terminating with result VLR_AUTH_RES_PROC_ERR -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_AUTH_FAILED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -- sending LU Reject for MSISDN:46071, cause 17 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 0 - lu_result_sent == 2 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_hlr_rej_auth_info_net_fail_no_reuse_tuples: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_hlr_rej_auth_info_unkown_imsi_no_reuse_tuples ---- -- Submit a used auth tuple in the VLR -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a800 -DVLR GSUP rx 47: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a800 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 1 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- Now one auth tuple is available, but used. -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->last_tuple->use_count == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- Another LU wants to get new tuples; HLR sends IMSI Unknown. Even though we would re-use an old tuple, reject the unknown IMSI. - net->vlr->cfg.auth_reuse_old_sets_on_error == 1 -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _SEND_AUTH_INFO_ERROR = unknown IMSI -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: 09010809710000004026f0020102 -DVLR GSUP rx 14: 09010809710000004026f0020102 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_NACK -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: GSUP: rx Auth Info Error cause: 2: IMSI unknown in HLR -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Authentication terminating with result VLR_AUTH_RES_UNKNOWN_SUBSCR -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_AUTH_FAILED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -- sending LU Reject for MSISDN:46071, cause 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 0 - lu_result_sent == 2 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_hlr_rej_auth_info_unkown_imsi_no_reuse_tuples: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_hlr_acc_but_no_auth_tuples -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT but it lacks auth tuples -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f0 -DVLR GSUP rx 11: 0a010809710000004026f0 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Authentication terminating with result VLR_AUTH_RES_PROC_ERR -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_AUTH_FAILED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTH_FAILED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -- sending LU Reject for IMSI:901700000004620, cause 17 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=IMSI:901700000004620, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF IMSI:901700000004620: MSC conn use - 1 == 0 -DRLL subscr IMSI:901700000004620: Freeing subscriber connection -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr IMSI:901700000004620 usage decreases to: 0 -DREF freeing VLR subscr IMSI:901700000004620 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 0 - lu_result_sent == 2 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_hlr_acc_but_no_auth_tuples: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_hlr_rej_lu -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends UPDATE_LOCATION_ERROR -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR: 05010809710000004026f0020102 -DVLR GSUP rx 14: 05010809710000004026f0020102 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR SUBSCR(IMSI:901700000004620) UpdateLocation failed; gmm_cause: IMSI unknown in HLR -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_NACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -- sending LU Reject for IMSI:901700000004620, cause 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=IMSI:901700000004620, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF IMSI:901700000004620: MSC conn use - 1 == 0 -DRLL subscr IMSI:901700000004620: Freeing subscriber connection -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr IMSI:901700000004620 usage decreases to: 0 -DREF freeing VLR subscr IMSI:901700000004620 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 2 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_hlr_rej_lu: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_hlr_no_insert_data -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends only _UPDATE_LOCATION_RESULT, no INSERT DATA -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for IMSI:901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=IMSI:901700000004620, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF IMSI:901700000004620: MSC conn use - 1 == 0 -DRLL subscr IMSI:901700000004620: Freeing subscriber connection -DREF VLR subscr IMSI:901700000004620 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr IMSI:901700000004620 -===== test_hlr_no_insert_data: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.ok b/tests/msc_vlr/msc_vlr_test_hlr_reject.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.c b/tests/msc_vlr/msc_vlr_test_hlr_timeout.c deleted file mode 100644 index c2f17c85f..000000000 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.c +++ /dev/null @@ -1,118 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -#include <osmocom/core/logging.h> - -void test_hlr_timeout_lu_auth_info() -{ - comment_start(); - - fake_time_start(); - - net->authentication_required = true; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - BTW("HLR never replies"); - - btw("At first, we're still waiting"); - fake_time_passes(0, 423); - EXPECT_CONN_COUNT(1); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - expect_bssap_clear(); - fake_time_passes(1, 235); - btw("SUBSCR_CONN_TIMEOUT has passed, conn is gone."); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - - clear_vlr(); - comment_end(); -} - -void test_hlr_timeout_lu_upd_loc_result() -{ - comment_start(); - - fake_time_start(); - - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - BTW("HLR never sends GSUP _UPDATE_LOCATION_RESULT"); - - btw("At first, we're still waiting"); - fake_time_passes(0, 423); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - expect_bssap_clear(); - fake_time_passes(1, 235); - btw("SUBSCR_CONN_TIMEOUT has passed, conn is gone."); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - - clear_vlr(); - comment_end(); -} - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_hlr_timeout_lu_auth_info, - test_hlr_timeout_lu_upd_loc_result, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err b/tests/msc_vlr/msc_vlr_test_hlr_timeout.err deleted file mode 100644 index e34490d8c..000000000 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.err +++ /dev/null @@ -1,189 +0,0 @@ -===== test_hlr_timeout_lu_auth_info -- Total time passed: 0.000000 s -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 ---- -- HLR never replies -- At first, we're still waiting -- Total time passed: 0.000423 s - llist_count(&net->subscr_conns) == 1 -- Total time passed: 1.000658 s - llist_count(&net->subscr_conns) == 1 -- Total time passed: 2.000893 s - llist_count(&net->subscr_conns) == 1 -- Total time passed: 3.001128 s - llist_count(&net->subscr_conns) == 1 -- Total time passed: 4.001363 s - llist_count(&net->subscr_conns) == 1 -- Total time passed: 5.001598 s -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Timeout of T0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Connection timed out -- sending LU Reject for IMSI:901700000004620, cause 22 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=IMSI:901700000004620, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF IMSI:901700000004620: MSC conn use - 1 == 0 -DRLL subscr IMSI:901700000004620: Freeing subscriber connection -DREF VLR subscr IMSI:901700000004620 usage decreases to: 0 -DREF freeing VLR subscr IMSI:901700000004620 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Event SUBSCR_CONN_E_CN_CLOSE not permitted -- SUBSCR_CONN_TIMEOUT has passed, conn is gone. - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 - lu_result_sent == 2 -===== test_hlr_timeout_lu_auth_info: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_hlr_timeout_lu_upd_loc_result -- Total time passed: 0.000000 s -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 ---- -- HLR never sends GSUP _UPDATE_LOCATION_RESULT -- At first, we're still waiting -- Total time passed: 0.000423 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 1.000658 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 2.000893 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 3.001128 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 4.001363 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 5.001598 s -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Timeout of T0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Connection timed out -- sending LU Reject for MSISDN:46071, cause 22 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Event SUBSCR_CONN_E_CN_CLOSE not permitted -- SUBSCR_CONN_TIMEOUT has passed, conn is gone. - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 - lu_result_sent == 2 -===== test_hlr_timeout_lu_upd_loc_result: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.ok b/tests/msc_vlr/msc_vlr_test_hlr_timeout.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.c b/tests/msc_vlr/msc_vlr_test_ms_timeout.c deleted file mode 100644 index d8a3a314e..000000000 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.c +++ /dev/null @@ -1,189 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -void test_ms_timeout_lu_auth_resp() -{ - comment_start(); - - net->authentication_required = true; - - fake_time_start(); - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - ,NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - BTW("MS fails to send an Authentication Response"); - - btw("At first, we're still waiting"); - fake_time_passes(0, 423); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - expect_bssap_clear(); - fake_time_passes(1, 235); - btw("SUBSCR_CONN_TIMEOUT has passed, conn is gone."); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - - comment_end(); -} - -void test_ms_timeout_cm_auth_resp() -{ - comment_start(); - - net->authentication_required = true; - - fake_time_start(); - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("08010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - auth_request_sent = false; - auth_request_expect_rand = "585df1ae287f6e273dce07090d61320b"; - auth_request_expect_autn = NULL; - /* Based on a Ki of 000102030405060708090a0b0c0d0e0f */ - gsup_rx("0a" - /* imsi */ - "0108" "09710000004026f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0322" "2010" "585df1ae287f6e273dce07090d61320b" - /* TL sres TL kc */ - "2104" "2d8b2c3e" "2208" "61855fb81fc2a800" - "0322" "2010" "12aca96fb4ffdea5c985cbafa9b6e18b" - "2104" "20bde240" "2208" "07fa7502e07e1c00" - "0322" "2010" "e7c03ba7cf0e2fde82b2dc4d63077d42" - "2104" "a29514ae" "2208" "e2b234f807886400" - "0322" "2010" "fa8f20b781b5881329d4fea26b1a3c51" - "2104" "5afc8d72" "2208" "2392f14f709ae000" - "0322" "2010" "0fd4cc8dbe8715d1f439e304edfd68dc" - "2104" "bc8d1c5b" "2208" "da7cdd6bfe2d7000", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("05542d8b2c3e"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - BTW("after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector"); - auth_request_sent = false; - auth_request_expect_rand = "12aca96fb4ffdea5c985cbafa9b6e18b"; - cm_service_result_sent = RES_NONE; - ms_sends_msg("05247803305886089910070000006402"); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - BTW("MS fails to send an Authentication Response"); - - btw("At first, we're still waiting"); - fake_time_passes(0, 423); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - fake_time_passes(1, 235); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - expect_bssap_clear(); - fake_time_passes(1, 235); - btw("SUBSCR_CONN_TIMEOUT has passed, conn is gone."); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - VERBOSE_ASSERT(cm_service_result_sent, == RES_REJECT, "%d"); - - clear_vlr(); - comment_end(); -} - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_ms_timeout_lu_auth_resp, - test_ms_timeout_cm_auth_resp, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err deleted file mode 100644 index e267c5b0c..000000000 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ /dev/null @@ -1,342 +0,0 @@ -===== test_ms_timeout_lu_auth_resp -- Total time passed: 0.000000 s -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a800 -DVLR GSUP rx 47: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a800 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 1 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 ---- -- MS fails to send an Authentication Response -- At first, we're still waiting -- Total time passed: 0.000423 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 1.000658 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 2.000893 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 3.001128 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 4.001363 s - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 0 -- Total time passed: 5.001598 s -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Timeout of T0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Connection timed out -- sending LU Reject for IMSI:901700000004620, cause 22 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=IMSI:901700000004620, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF IMSI:901700000004620: MSC conn use - 1 == 0 -DRLL subscr IMSI:901700000004620: Freeing subscriber connection -DREF VLR subscr IMSI:901700000004620 usage decreases to: 0 -DREF freeing VLR subscr IMSI:901700000004620 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Event SUBSCR_CONN_E_CN_CLOSE not permitted -- SUBSCR_CONN_TIMEOUT has passed, conn is gone. - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 - lu_result_sent == 2 -===== test_ms_timeout_lu_auth_resp: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_ms_timeout_cm_auth_resp -- Total time passed: 0.000000 s -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000004026f0 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DVLR GSUP rx 191: 0a010809710000004026f003222010585df1ae287f6e273dce07090d61320b21042d8b2c3e220861855fb81fc2a8000322201012aca96fb4ffdea5c985cbafa9b6e18b210420bde240220807fa7502e07e1c0003222010e7c03ba7cf0e2fde82b2dc4d63077d422104a29514ae2208e2b234f80788640003222010fa8f20b781b5881329d4fea26b1a3c5121045afc8d7222082392f14f709ae000032220100fd4cc8dbe8715d1f439e304edfd68dc2104bc8d1c5b2208da7cdd6bfe2d7000 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000004620) Received 5 auth tuples -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending GSM Auth Request for IMSI:901700000004620: tuple use_count=1 key_seq=0 auth_types=0x1 and... -- ...rand=585df1ae287f6e273dce07090d61320b -- ...expecting sres=2d8b2c3e -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000004620: MM GSM AUTHENTICATION RESPONSE (sres = 2d8b2c3e) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000004620) received res: 2d 8b 2c 3e -DVLR SUBSCR(IMSI:901700000004620) AUTH established GSM security context -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=1 -- sending GSM Auth Request for MSISDN:46071: tuple use_count=1 key_seq=1 auth_types=0x1 and... -- ...rand=12aca96fb4ffdea5c985cbafa9b6e18b -- ...expecting sres=20bde240 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 0 - auth_request_sent == 1 ---- -- MS fails to send an Authentication Response -- At first, we're still waiting -- Total time passed: 0.000423 s - llist_count(&net->subscr_conns) == 1 - cm_service_result_sent == 0 -- Total time passed: 1.000658 s - llist_count(&net->subscr_conns) == 1 - cm_service_result_sent == 0 -- Total time passed: 2.000893 s - llist_count(&net->subscr_conns) == 1 - cm_service_result_sent == 0 -- Total time passed: 3.001128 s - llist_count(&net->subscr_conns) == 1 - cm_service_result_sent == 0 -- Total time passed: 4.001363 s - llist_count(&net->subscr_conns) == 1 - cm_service_result_sent == 0 -- Total time passed: 5.001598 s -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Timeout of T0 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: Connection timed out -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_TIMEOUT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_TIMEOUT -- sending CM Service Reject for MSISDN:46071, result VLR_PR_ARQ_RES_TIMEOUT -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Removing from parent Process_Access_Request_VLR(901700000004620) -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Freeing instance -DVLR VLR_Authenticate(901700000004620){VLR_SUB_AS_WAIT_RESP}: Deallocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Event SUBSCR_CONN_E_CN_CLOSE not permitted -- SUBSCR_CONN_TIMEOUT has passed, conn is gone. - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 - cm_service_result_sent == 2 -DREF freeing VLR subscr MSISDN:46071 -===== test_ms_timeout_cm_auth_resp: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.ok b/tests/msc_vlr/msc_vlr_test_ms_timeout.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.c b/tests/msc_vlr/msc_vlr_test_no_authen.c deleted file mode 100644 index 32e0b40e2..000000000 --- a/tests/msc_vlr/msc_vlr_test_no_authen.c +++ /dev/null @@ -1,908 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -void test_no_authen() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - /* No auth only works on GERAN */ - rx_from_ran = RAN_GERAN_A; - - comment_start(); - - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - - thwart_rx_non_initial_requests(); - - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - - BTW("after a while, a new conn sends a CM Service Request"); - cm_service_result_sent = RES_NONE; - ms_sends_msg("05247803305886089910070000006402"); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(true); - - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - BTW("an SMS is sent, MS is paged"); - paging_expect_imsi(imsi); - paging_sent = false; - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("the subscriber and its pending request should remain"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - - btw("MS replies with Paging Response, we deliver the SMS"); - dtap_expect_tx("09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05806470f1" /* originating address 46071 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"); - ms_sends_msg("06270703305882089910070000006402"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - - btw("SMS was delivered, no requests pending for subscr"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); - - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - expect_bssap_clear(); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("SMS is done, conn is gone"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_no_authen_tmsi() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - rx_from_ran = RAN_GERAN_A; - - comment_start(); - - net->vlr->cfg.assign_tmsi = true; - - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000004026f0", NULL); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x03020100, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == GSM_RESERVED_TMSI, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the new TMSI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == GSM_RESERVED_TMSI, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("after a while, a new conn sends a CM Service Request using above TMSI"); - cm_service_result_sent = RES_NONE; - ms_sends_msg("05247803305886" "05f4" "03020100"); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(true); - - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - BTW("an SMS is sent, MS is paged using above TMSI"); - paging_expect_tmsi(0x03020100); - paging_sent = false; - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("the subscriber and its pending request should remain"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - - btw("MS replies with Paging Response using TMSI, we deliver the SMS"); - dtap_expect_tx("09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05806470f1" /* originating address 46071 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"); - ms_sends_msg("06270703305882" "05f4" "03020100"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - - btw("SMS was delivered, no requests pending for subscr"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); - - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - expect_bssap_clear(); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("SMS is done, conn is gone"); - EXPECT_CONN_COUNT(0); - - /* TODO: when the subscriber detaches, the vlr_subscr gets - * deallocated and we no longer know the TMSI. This case is covered by - * test_lu_unknown_tmsi(), so here I'd like to still have the TMSI. - BTW("subscriber detaches, using TMSI"); - ms_sends_msg("050130" "05f4" "03020100"); - EXPECT_CONN_COUNT(0); - */ - - BTW("subscriber sends LU Request, this time with the TMSI"); - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130" "05f4" "03020100"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000004026f0", NULL); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x07060504); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x07060504, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - btw("subscriber has the new TMSI"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x07060504); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == GSM_RESERVED_TMSI, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x07060504, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches, using new TMSI"); - expect_bssap_clear(); - ms_sends_msg("050130" "05f4" "07060504"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_no_authen_imei() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - rx_from_ran = RAN_GERAN_A; - - comment_start(); - - net->vlr->cfg.check_imei_rqd = true; - - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS"); - dtap_expect_tx("051802"); - gsup_rx("06010809710000004026f0", NULL); - - btw("We will only do business when the IMEI is known"); - EXPECT_CONN_COUNT(1); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imei[0], == 0, "%d"); - vlr_subscr_put(vsub); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS replies with an Identity Response"); - expect_bssap_clear(); - /* 3GPP TS 23.003: 6.2.1 Composition of IMEI: the IMEI ends with a - * spare digit that shall be sent as zero by the MS. */ - ms_sends_msg("0559084a32244332244302"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the IMEI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imei, "423423423423420"), == 0, "%d"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_no_authen_tmsi_imei() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - rx_from_ran = RAN_GERAN_A; - - comment_start(); - - net->vlr->cfg.assign_tmsi = true; - net->vlr->cfg.check_imei_rqd = true; - - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS"); - dtap_expect_tx("051802"); - gsup_rx("06010809710000004026f0", NULL); - - btw("We will only do business when the IMEI is known"); - EXPECT_CONN_COUNT(1); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imei[0], == 0, "%d"); - vlr_subscr_put(vsub); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS replies with an Identity Response"); - ms_sends_msg("0559084a32244332244302"); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the IMEI and TMSI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imei, "423423423423420"), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_no_authen_imeisv() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - /* No auth only works on GERAN */ - rx_from_ran = RAN_GERAN_A; - - comment_start(); - - net->vlr->cfg.retrieve_imeisv_early = true; - - btw("Location Update request causes an IMEISV ID request back to the MS"); - lu_result_sent = RES_NONE; - dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(dtap_tx_confirmed); - - btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0559094332244332244372f5"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("Subscriber has the IMEISV from the ID Response"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imeisv, "4234234234234275"), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - - thwart_rx_non_initial_requests(); - - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_no_authen_imeisv_imei() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - rx_from_ran = RAN_GERAN_A; - - comment_start(); - - net->vlr->cfg.retrieve_imeisv_early = true; - net->vlr->cfg.check_imei_rqd = true; - - btw("Location Update request causes an IMEISV ID request back to the MS"); - lu_result_sent = RES_NONE; - dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(dtap_tx_confirmed); - - btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0559094332244332244372f5"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("Subscriber has the IMEISV from the ID Response"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imeisv, "4234234234234275"), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS"); - dtap_expect_tx("051802"); - gsup_rx("06010809710000004026f0", NULL); - - btw("We will only do business when the IMEI is known"); - EXPECT_CONN_COUNT(1); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imei[0], == 0, "%d"); - vlr_subscr_put(vsub); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS replies with an Identity Response"); - expect_bssap_clear(); - ms_sends_msg("0559084a32244332244302"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the IMEI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imei, "423423423423420"), == 0, "%d"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_no_authen_imeisv_tmsi() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - rx_from_ran = RAN_GERAN_A; - - comment_start(); - - net->vlr->cfg.retrieve_imeisv_early = true; - net->vlr->cfg.assign_tmsi = true; - - btw("Location Update request causes an IMEISV ID request back to the MS"); - lu_result_sent = RES_NONE; - dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(dtap_tx_confirmed); - - btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0559094332244332244372f5"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("Subscriber has the IMEISV from the ID Response"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imeisv, "4234234234234275"), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000004026f0", NULL); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x03020100, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == GSM_RESERVED_TMSI, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - - BTW("subscriber sends LU Request, this time with the TMSI"); - btw("Location Update request causes an IMEISV ID request back to the MS"); - lu_result_sent = RES_NONE; - dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(dtap_tx_confirmed); - - btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0559095332244332244372f6"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("Subscriber has the IMEISV from the ID Response"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imeisv, "5234234234234276"), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000004026f0", NULL); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x07060504); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x07060504, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - btw("subscriber has the new TMSI"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x07060504); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == GSM_RESERVED_TMSI, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == 0x07060504, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches, using new TMSI"); - expect_bssap_clear(); - ms_sends_msg("050130" "05f4" "07060504"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_no_authen_imeisv_tmsi_imei() -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000004620"; - - rx_from_ran = RAN_GERAN_A; - - comment_start(); - - net->vlr->cfg.retrieve_imeisv_early = true; - net->vlr->cfg.assign_tmsi = true; - net->vlr->cfg.check_imei_rqd = true; - - btw("Location Update request causes an IMEISV ID request back to the MS"); - lu_result_sent = RES_NONE; - dtap_expect_tx("051803"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(dtap_tx_confirmed); - - btw("MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0559094332244332244372f5"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("Subscriber has the IMEISV from the ID Response"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imeisv, "4234234234234275"), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS"); - dtap_expect_tx("051802"); - gsup_rx("06010809710000004026f0", NULL); - - btw("We will only do business when the IMEI is known"); - EXPECT_CONN_COUNT(1); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(vsub->imei[0], == 0, "%d"); - vlr_subscr_put(vsub); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS replies with an Identity Response"); - ms_sends_msg("0559084a32244332244302"); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS sends TMSI Realloc Complete"); - expect_bssap_clear(); - ms_sends_msg("055b"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - btw("Subscriber has the IMEISV, IMEI and TMSI"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(strcmp(vsub->imeisv, "4234234234234275"), == 0, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imei, "423423423423420"), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi, == 0x03020100, "0x%08x"); - vlr_subscr_put(vsub); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_no_authen, - test_no_authen_tmsi, - test_no_authen_imei, - test_no_authen_tmsi_imei, - test_no_authen_imeisv, - test_no_authen_imeisv_imei, - test_no_authen_imeisv_tmsi, - test_no_authen_imeisv_tmsi_imei, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.err b/tests/msc_vlr/msc_vlr_test_no_authen.err deleted file mode 100644 index 931a72f78..000000000 --- a/tests/msc_vlr/msc_vlr_test_no_authen.err +++ /dev/null @@ -1,2119 +0,0 @@ -===== test_no_authen -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- after a while, a new conn sends a CM Service Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -msc_subscr_conn_is_accepted() == true -- a USSD request is serviced - expecting USSD: - Your extension is 46071
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:46071: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0xffffffff, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -- MS replies with Paging Response, we deliver the SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 6 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 5 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:46071 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_no_authen: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_no_authen_tmsi -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -- Subscriber has the new TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0xffffffff - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- after a while, a new conn sends a CM Service Request using above TMSI - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(TMSI)=50462976 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: is child of Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -msc_subscr_conn_is_accepted() == true -- a USSD request is serviced - expecting USSD: - Your extension is 46071
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:46071: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged using above TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0x03020100, LAC 0 - paging_expecting_tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -- MS replies with Paging Response using TMSI, we deliver the SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(TMSI)=50462976 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: is child of Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 6 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 5 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:46071 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(50462976) -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(50462976){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber sends LU Request, this time with the TMSI -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(TMSI)=50462976 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: is child of Subscr_Conn(50462976) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(50462976) -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(50462976) -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(50462976){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(50462976) -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(50462976) -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(50462976) -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(50462976){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x07060504 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 3 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x07060504 - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(50462976) -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(50462976){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(50462976) -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(50462976){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(50462976){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -- subscriber has the new TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0xffffffff - vsub->tmsi == 0x07060504 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches, using new TMSI - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_no_authen_tmsi: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_no_authen_imei -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051802 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- We will only do business when the IMEI is known - llist_count(&net->subscr_conns) == 1 -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->imei[0] == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS replies with an Identity Response - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI)=423423423423420 -DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -- Subscriber has the IMEI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - strcmp(vsub->imei, "423423423423420") == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_no_authen_imei: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_no_authen_tmsi_imei -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI_TMSI -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051802 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- We will only do business when the IMEI is known - llist_count(&net->subscr_conns) == 1 -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->imei[0] == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS replies with an Identity Response - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI)=423423423423420 -DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x03020100 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -- Subscriber has the IMEI and TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - strcmp(vsub->imei, "423423423423420") == 0 - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_no_authen_tmsi_imei: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_no_authen_imeisv -- Location Update request causes an IMEISV ID request back to the MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DMSC msc_tx 3 bytes to IMSI:901700000004620 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051803 -- DTAP matches expected message -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_IMEISV -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 -- MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI-SV)=4234234234234275 -DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- Subscriber has the IMEISV from the ID Response -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 - strcmp(vsub->imeisv, "4234234234234275") == 0 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_no_authen_imeisv: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_no_authen_imeisv_imei -- Location Update request causes an IMEISV ID request back to the MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DMSC msc_tx 3 bytes to IMSI:901700000004620 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051803 -- DTAP matches expected message -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_IMEISV -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 -- MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI-SV)=4234234234234275 -DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- Subscriber has the IMEISV from the ID Response -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 - strcmp(vsub->imeisv, "4234234234234275") == 0 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051802 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- We will only do business when the IMEI is known - llist_count(&net->subscr_conns) == 1 -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->imei[0] == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS replies with an Identity Response - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI)=423423423423420 -DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -- Subscriber has the IMEI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - strcmp(vsub->imei, "423423423423420") == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_no_authen_imeisv_imei: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_no_authen_imeisv_tmsi -- Location Update request causes an IMEISV ID request back to the MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DMSC msc_tx 3 bytes to IMSI:901700000004620 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051803 -- DTAP matches expected message -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_IMEISV -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 -- MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI-SV)=4234234234234275 -DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- Subscriber has the IMEISV from the ID Response -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 - strcmp(vsub->imeisv, "4234234234234275") == 0 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 ---- -- subscriber sends LU Request, this time with the TMSI -- Location Update request causes an IMEISV ID request back to the MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051803 -- DTAP matches expected message -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_IMEISV -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 -- MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI-SV)=5234234234234276 -DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=5234234234234276 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 -- Subscriber has the IMEISV from the ID Response -DREF VLR subscr MSISDN:46071 usage increases to: 3 - strcmp(vsub->imeisv, "5234234234234276") == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x07060504 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:46071 usage increases to: 3 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x07060504 - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -- subscriber has the new TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0xffffffff - vsub->tmsi == 0x07060504 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches, using new TMSI - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(TMSI)=117835012 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_no_authen_imeisv_tmsi: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_no_authen_imeisv_tmsi_imei -- Location Update request causes an IMEISV ID request back to the MS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DMSC msc_tx 3 bytes to IMSI:901700000004620 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051803 -- DTAP matches expected message -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_IMEISV -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 -- MS replies with an Identity Response, causes LU to commence with a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI-SV)=4234234234234275 -DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234275 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: Received Event VLR_ULA_E_ID_IMEISV -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_IMEISV}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- Subscriber has the IMEISV from the ID Response -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 - strcmp(vsub->imeisv, "4234234234234275") == 0 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT, and we send an ID Request for the IMEI to the MS -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_IMEI_TMSI -DMSC msc_tx 3 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051802 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 -- We will only do business when the IMEI is known - llist_count(&net->subscr_conns) == 1 -DREF VLR subscr MSISDN:46071 usage increases to: 2 - vsub->imei[0] == 0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS replies with an Identity Response - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMEI)=423423423423420 -DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423420 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_ID_IMEI -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: Received Event LU_COMPL_VLR_E_IMEI_CHECK_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_IMEI_TMSI}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:46071, with TMSI 0x03020100 -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 - lu_result_sent == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:46071 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -- Subscriber has the IMEISV, IMEI and TMSI -DREF VLR subscr MSISDN:46071 usage increases to: 2 - strcmp(vsub->imeisv, "4234234234234275") == 0 - strcmp(vsub->imei, "423423423423420") == 0 - vsub->tmsi == 0x03020100 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_no_authen_imeisv_tmsi_imei: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.ok b/tests/msc_vlr/msc_vlr_test_no_authen.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_no_authen.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c deleted file mode 100644 index 2377c19b3..000000000 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c +++ /dev/null @@ -1,397 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -void test_reject_2nd_conn() -{ - struct gsm_subscriber_connection *conn1; - comment_start(); - - btw("Location Update Request on one connection"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - EXPECT_CONN_COUNT(1); - - btw("Another Location Update Request from the same subscriber on another connection is rejected"); - conn1 = g_conn; - g_conn = NULL; - expect_bssap_clear(); - ms_sends_msg("050802008168000130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_REJECT, "%d"); - EXPECT_CONN_COUNT(1); - - - BTW("The first connection can still complete its LU"); - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - g_conn = conn1; - lu_result_sent = RES_NONE; - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -void _normal_lu_part1() -{ - btw("Location Update Request"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - EXPECT_CONN_COUNT(1); -} - -void _normal_lu_part2() -{ - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - lu_result_sent = RES_NONE; - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); -} - -void _normal_lu() -{ - BTW("Subscriber does a normal LU"); - _normal_lu_part1(); - _normal_lu_part2(); -} - -void _normal_cm_service_req() -{ - BTW("Subscriber does a normal CM Service Request"); - cm_service_result_sent = RES_NONE; - ms_sends_msg("05247803305886089910070000006402"); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - EXPECT_ACCEPTED(true); -} - -void _page() -{ - const char *imsi = "901700000004620"; - struct vlr_subscr *vsub; - - BTW("an SMS is sent, MS is paged"); - paging_expect_imsi(imsi); - paging_sent = false; - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); -} - -void _paging_resp_part1() -{ - btw("MS replies with Paging Response, we deliver the SMS"); - dtap_expect_tx("09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05806470f1" /* originating address 46071 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"); - ms_sends_msg("06270703305882089910070000006402"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); -} - -void _paging_resp_part2(int expect_conn_count, bool expect_clear) -{ - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - if (expect_clear) - expect_bssap_clear(); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - if (expect_clear) - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("SMS is done"); - EXPECT_CONN_COUNT(expect_conn_count); -} - -void test_reject_lu_during_lu() -{ - comment_start(); - - _normal_lu_part1(); - - BTW("Another Location Update Request from the same subscriber on the same conn is dropped silently"); - ms_sends_msg("050802008168000130089910070000006402"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - EXPECT_CONN_COUNT(1); - - BTW("The first LU can still complete"); - _normal_lu_part2(); - - clear_vlr(); - comment_end(); -} - -void test_reject_cm_during_lu() -{ - comment_start(); - - _normal_lu_part1(); - - BTW("A CM Service Request in the middle of a LU is rejected"); - cm_service_result_sent = RES_NONE; - dtap_expect_tx("052211"); - ms_sends_msg("05247803305886089910070000006402"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - EXPECT_CONN_COUNT(1); - - BTW("The first LU can still complete"); - _normal_lu_part2(); - - clear_vlr(); - comment_end(); -} - -void test_reject_paging_resp_during_lu() -{ - comment_start(); - - _normal_lu_part1(); - - BTW("An erratic Paging Response is dropped silently"); - ms_sends_msg("06270703305882089910070000006402"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - EXPECT_CONN_COUNT(1); - - BTW("The first LU can still complete"); - _normal_lu_part2(); - - clear_vlr(); - comment_end(); -} - -void test_reject_lu_during_cm() -{ - comment_start(); - - _normal_lu(); - _normal_cm_service_req(); - - btw("A LU request on an open conn is dropped silently"); - /* TODO: accept periodic LU on an already open conn? */ - lu_result_sent = RES_NONE; - ms_sends_msg("050802008168000130089910070000006402"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - EXPECT_CONN_COUNT(1); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -void test_reject_cm_during_cm() -{ - comment_start(); - - _normal_lu(); - _normal_cm_service_req(); - - btw("A second CM Service Request on the same conn is accepted without another auth dance"); - cm_service_result_sent = RES_NONE; - ms_sends_msg("05247803305886089910070000006402"); - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(1); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -void test_reject_paging_resp_during_cm() -{ - comment_start(); - - _normal_lu(); - _normal_cm_service_req(); - - BTW("An erratic Paging Response on the same conn is dropped silently"); - ms_sends_msg("06270703305882089910070000006402"); - EXPECT_CONN_COUNT(1); - - BTW("The original CM Service Request can conclude"); - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 46071\r"); - expect_bssap_clear(); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -void test_reject_paging_resp_during_paging_resp() -{ - comment_start(); - - _normal_lu(); - _page(); - _paging_resp_part1(); - - BTW("MS sends another erratic Paging Response which is dropped silently"); - ms_sends_msg("06270703305882089910070000006402"); - - _paging_resp_part2(0, true); - - clear_vlr(); - comment_end(); -} - -void test_reject_lu_during_paging_resp() -{ - comment_start(); - - _normal_lu(); - _page(); - _paging_resp_part1(); - - BTW("MS sends erratic LU Request, which is dropped silently"); - lu_result_sent = RES_NONE; - ms_sends_msg("050802008168000130089910070000006402"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - EXPECT_CONN_COUNT(1); - - _paging_resp_part2(0, true); - - clear_vlr(); - comment_end(); -} - -void test_accept_cm_during_paging_resp() -{ - comment_start(); - - _normal_lu(); - _page(); - _paging_resp_part1(); - - BTW("CM Service Request during open connection is accepted"); - cm_service_result_sent = RES_NONE; - ms_sends_msg("05247803305886089910070000006402"); - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(1); - VERBOSE_ASSERT(g_conn->received_cm_service_request, == true, "%d"); - - _paging_resp_part2(1, false); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_reject_2nd_conn, - test_reject_lu_during_lu, - test_reject_cm_during_lu, - test_reject_paging_resp_during_lu, - test_reject_lu_during_cm, - test_reject_cm_during_cm, - test_reject_paging_resp_during_cm, - test_reject_lu_during_paging_resp, - test_accept_cm_during_paging_resp, - test_reject_paging_resp_during_paging_resp, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err b/tests/msc_vlr/msc_vlr_test_reject_concurrency.err deleted file mode 100644 index 00945cb89..000000000 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.err +++ /dev/null @@ -1,1817 +0,0 @@ -===== test_reject_2nd_conn -- Location Update Request on one connection - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 -- Another Location Update Request from the same subscriber on another connection is rejected - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: A Location Updating process is already pending for this subscriber. Aborting. -- sending LU Reject for unknown, cause 22 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=unknown, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DRR 901700000004620: internal error during Location Updating attempt -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - lu_result_sent == 2 - llist_count(&net->subscr_conns) == 1 ---- -- The first connection can still complete its LU -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_reject_2nd_conn: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_reject_lu_during_lu -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 ---- -- Another Location Update Request from the same subscriber on the same conn is dropped silently - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DMM 901700000004620: Error: connection already in use -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 ---- -- The first LU can still complete -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_reject_lu_during_lu: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_reject_cm_during_lu -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 ---- -- A CM Service Request in the middle of a LU is rejected - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DMM IMSI:901700000004620: connection already in use -DMM -> CM SERVICE Reject cause: 17 -DMSC msc_tx 3 bytes to IMSI:901700000004620 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_CM_SERV_REJ: 052211 -- DTAP matches expected message -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - cm_service_result_sent == 0 - llist_count(&net->subscr_conns) == 1 ---- -- The first LU can still complete -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_reject_cm_during_lu: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_reject_paging_resp_during_lu -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 ---- -- An erratic Paging Response is dropped silently - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP -DREF IMSI:901700000004620: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DMM 901700000004620: Error: connection already in use -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 ---- -- The first LU can still complete -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_reject_paging_resp_during_lu: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_reject_lu_during_cm ---- -- Subscriber does a normal LU -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- Subscriber does a normal CM Service Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -msc_subscr_conn_is_accepted() == true -- A LU request on an open conn is dropped silently - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DMM 901700000004620: Error: connection already in use -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM IMSI DETACH for MSISDN:46071 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_ERROR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=0): already dispatching release, ignore. -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_reject_lu_during_cm: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_reject_cm_during_cm ---- -- Subscriber does a normal LU -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- Subscriber does a normal CM Service Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -msc_subscr_conn_is_accepted() == true -- A second CM Service Request on the same conn is accepted without another auth dance - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DMM MSISDN:46071: re-using already accepted connection -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 1 - llist_count(&net->subscr_conns) == 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM IMSI DETACH for MSISDN:46071 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_ERROR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=0): already dispatching release, ignore. -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_reject_cm_during_cm: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_reject_paging_resp_during_cm ---- -- Subscriber does a normal LU -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- Subscriber does a normal CM Service Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -msc_subscr_conn_is_accepted() == true ---- -- An erratic Paging Response on the same conn is dropped silently - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DMM 901700000004620: Error: connection already in use -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - llist_count(&net->subscr_conns) == 1 ---- -- The original CM Service Request can conclude -- a USSD request is serviced - expecting USSD: - Your extension is 46071
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:46071: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:46071: MSISDN = 46071 -DMSC msc_tx 43 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d27310cd06bbc51a0d -- DTAP matches expected message -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_reject_paging_resp_during_cm: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_reject_lu_during_paging_resp ---- -- Subscriber does a normal LU -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0xffffffff, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- MS replies with Paging Response, we deliver the SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 6 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 5 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 ---- -- MS sends erratic LU Request, which is dropped silently - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DMM 901700000004620: Error: connection already in use -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_reject_lu_during_paging_resp: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_accept_cm_during_paging_resp ---- -- Subscriber does a normal LU -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0xffffffff, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- MS replies with Paging Response, we deliver the SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 6 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 5 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 ---- -- CM Service Request during open connection is accepted - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DMM MSISDN:46071: re-using already accepted connection -- sending CM Service Accept for MSISDN:46071 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 2 - cm_service_result_sent == 1 - llist_count(&net->subscr_conns) == 1 - g_conn->received_cm_service_request == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:46071: MSC conn use - 1 == 1 - dtap_tx_confirmed == 1 -- SMS is done - llist_count(&net->subscr_conns) == 1 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND -DREF MSISDN:46071: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM IMSI DETACH for MSISDN:46071 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_ERROR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=0): already dispatching release, ignore. -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_accept_cm_during_paging_resp: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_reject_paging_resp_during_paging_resp ---- -- Subscriber does a normal LU -- Location Update Request - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 - llist_count(&net->subscr_conns) == 1 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:46071 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DMM Subscriber MSISDN:46071 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000004620, TMSI 0xffffffff, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:46071 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- MS replies with Paging Response, we deliver the SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:46071 usage increases to: 4 -DREF VLR subscr MSISDN:46071 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:46071 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:46071 usage increases to: 6 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005806470f1000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 5 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF VLR subscr MSISDN:46071 usage decreases to: 4 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 ---- -- MS sends another erratic Paging Response which is dropped silently - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000004620 -DMM 901700000004620: Error: connection already in use -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:46071: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:46071: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:46071 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:46071 usage decreases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DREF MSISDN:46071: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_reject_paging_resp_during_paging_resp: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.ok b/tests/msc_vlr/msc_vlr_test_reject_concurrency.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_test_rest.c b/tests/msc_vlr/msc_vlr_test_rest.c deleted file mode 100644 index c5f7fcfb9..000000000 --- a/tests/msc_vlr/msc_vlr_test_rest.c +++ /dev/null @@ -1,201 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -void test_early_stage() -{ - comment_start(); - - btw("NULL conn"); - EXPECT_ACCEPTED(false); - - btw("freshly allocated conn"); - g_conn = msc_subscr_con_allocate(net); - g_conn->bts = the_bts; - EXPECT_ACCEPTED(false); - - btw("conn_fsm present, in state NEW"); - OSMO_ASSERT(msc_create_conn_fsm(g_conn, "test") == 0); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->conn_fsm->state == SUBSCR_CONN_S_NEW); - EXPECT_ACCEPTED(false); - - thwart_rx_non_initial_requests(); - - btw("fake: acceptance"); - g_conn->vsub = vlr_subscr_alloc(net->vlr); - g_conn->via_ran = RAN_GERAN_A; - OSMO_ASSERT(g_conn->vsub); - /* mark as silent call so it sticks around */ - g_conn->silent_call = 1; - osmo_fsm_inst_state_chg(g_conn->conn_fsm, SUBSCR_CONN_S_ACCEPTED, 0, 0); - EXPECT_CONN_COUNT(1); - EXPECT_ACCEPTED(true); - - btw("CLOSE event marks conn_fsm as released and frees the conn"); - expect_bssap_clear(); - osmo_fsm_inst_dispatch(g_conn->conn_fsm, SUBSCR_CONN_E_CN_CLOSE, NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -void test_cm_service_without_lu() -{ - comment_start(); - - btw("CM Service Request without a prior Location Updating"); - expect_bssap_clear(); - ms_sends_msg("05247803305886089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("conn was released"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); - comment_end(); -} - -void test_two_lu() -{ - comment_start(); - - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - - thwart_rx_non_initial_requests(); - - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - - BTW("verify that the MS can send another LU request"); - btw("Location Update request causes a GSUP LU request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("050802008168000130089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - - thwart_rx_non_initial_requests(); - - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches"); - expect_bssap_clear(); - ms_sends_msg("050130089910070000006402"); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -void test_lu_unknown_tmsi() -{ - comment_start(); - - btw("Location Update request with unknown TMSI sends ID Request for IMSI"); - lu_result_sent = RES_NONE; - dtap_expect_tx("051801"); - ms_sends_msg("050802008168000130" "05f4" "23422342"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("MS tells us the IMSI, causes a GSUP LU request to HLR"); - gsup_expect_tx("04010809710000004026f0"); - ms_sends_msg("0559089910070000006402"); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000004026f00804036470f1", - "12010809710000004026f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("having received subscriber data does not mean acceptance"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - expect_bssap_clear(); - gsup_rx("06010809710000004026f0", NULL); - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); - - btw("LU was successful, and the conn has already been closed"); - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - EXPECT_CONN_COUNT(0); - clear_vlr(); - comment_end(); -} - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_early_stage, - test_cm_service_without_lu, - test_two_lu, - test_lu_unknown_tmsi, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_rest.err b/tests/msc_vlr/msc_vlr_test_rest.err deleted file mode 100644 index 1b5f3406d..000000000 --- a/tests/msc_vlr/msc_vlr_test_rest.err +++ /dev/null @@ -1,493 +0,0 @@ -===== test_early_stage -- NULL conn -msc_subscr_conn_is_accepted() == false -- freshly allocated conn -msc_subscr_conn_is_accepted() == false -- conn_fsm present, in state NEW -DREF unknown: MSC conn use + 1 == 1 -DMM Subscr_Conn(test){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(test){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(test){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr unknown: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr unknown: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr unknown: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr unknown: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- fake: acceptance -DREF VLR subscr unknown usage increases to: 1 -DMM Subscr_Conn(test){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED - llist_count(&net->subscr_conns) == 1 -msc_subscr_conn_is_accepted() == true -- CLOSE event marks conn_fsm as released and frees the conn -DMM Subscr_Conn(test){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(test){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(test){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DMM msc_subscr_conn_close(vsub=unknown, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL subscr unknown: Freeing subscriber connection -DREF VLR subscr unknown usage decreases to: 0 -DREF freeing VLR subscr unknown -DMM Subscr_Conn(test){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(test){SUBSCR_CONN_S_RELEASED}: Deallocated - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_early_stage: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_cm_service_without_lu -- CM Service Request without a prior Location Updating - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000004620 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: rev=GSM net=GERAN (no Auth) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: proc_arq_fsm_done(VLR_PR_ARQ_RES_UNIDENT_SUBSCR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_UNIDENT_SUBSCR -- sending CM Service Reject for unknown, result VLR_PR_ARQ_RES_UNIDENT_SUBSCR -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_CN_CLOSE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Close event, cause 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000004620){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=unknown, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 -- conn was released - llist_count(&net->subscr_conns) == 0 -===== test_cm_service_without_lu: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_two_lu -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR New subscr, IMSI: 901700000004620 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DREF VLR subscr IMSI:901700000004620 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- verify that the MS can send another LU request -- Location Update request causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000004620 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM MSISDN:46071: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:46071: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000004620){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000004620) -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000004620){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000004620) -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000004620){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000004620) -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000004620){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000004620 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DMM IMSI DETACH for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -DREF VLR subscr MSISDN:46071 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:46071 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_two_lu: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_lu_unknown_tmsi -- Location Update request with unknown TMSI sends ID Request for IMSI - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(TMSI)=591536962 type=IMSI ATTACH -DMM LU/new-LAC: 1/0 -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_IDLE}: is child of Subscr_Conn(591536962) -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_IDLE}: rev=GSM net=GERAN (no Auth) -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR New subscr, TMSI: 0x23422342 -DREF VLR subscr TMSI:0x23422342 usage increases to: 2 -DREF VLR subscr TMSI:0x23422342 usage decreases to: 1 -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_IDLE}: vlr_loc_upd_want_imsi() -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_IMSI -DMSC msc_tx 3 bytes to TMSI:0x23422342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_MT_MM_ID_REQ: 051801 -- DTAP matches expected message -DMM TMSI:0x23422342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF TMSI:0x23422342: MSC conn use - 1 == 1 - lu_result_sent == 0 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr TMSI:0x23422342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr TMSI:0x23422342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr TMSI:0x23422342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr TMSI:0x23422342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS tells us the IMSI, causes a GSUP LU request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_ID_RESP -DREF TMSI:0x23422342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_ID_RESP (0x5:0x19) -DMM IDENTITY RESPONSE: MI(IMSI)=901700000004620 -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_IMSI}: Received Event VLR_ULA_E_ID_IMSI -DVLR set IMSI on subscriber; IMSI=901700000004620 id=901700000004620 -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_IMSI}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_IMSI}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_IMSI}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_IMSI}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_IMSI}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(591536962) -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000004026f0 -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000004620: MSC conn use - 1 == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000004026f00804036470f1 -DVLR GSUP rx 17: 10010809710000004026f00804036470f1 -DREF VLR subscr IMSI:901700000004620 usage increases to: 2 -DVLR IMSI:901700000004620 has MSISDN:46071 -DVLR GSUP tx: 12010809710000004026f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- having received subscriber data does not mean acceptance -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:46071: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000004026f0 -DVLR GSUP rx 11: 06010809710000004026f0 -DREF VLR subscr MSISDN:46071 usage increases to: 2 -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(591536962) -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(591536962){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(591536962) -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(591536962){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(591536962){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(591536962) -DVLR sub_pres_vlr_fsm(591536962){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(591536962){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(591536962){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(591536962){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(591536962) -DVLR sub_pres_vlr_fsm(591536962){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(591536962){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -- sending LU Accept for MSISDN:46071 -DREF VLR subscr MSISDN:46071 usage increases to: 3 -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(591536962) -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(591536962){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(591536962) -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(591536962){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:46071, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:46071: MSC conn use - 1 == 0 -DRLL subscr MSISDN:46071: Freeing subscriber connection -DREF VLR subscr MSISDN:46071 usage decreases to: 2 -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(591536962){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF VLR subscr MSISDN:46071 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - lu_result_sent == 1 - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:46071 -===== test_lu_unknown_tmsi: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_rest.ok b/tests/msc_vlr/msc_vlr_test_rest.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_rest.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.c b/tests/msc_vlr/msc_vlr_test_umts_authen.c deleted file mode 100644 index 1175bf875..000000000 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.c +++ /dev/null @@ -1,581 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include "msc_vlr_tests.h" - -#define ASSERT_RELEASE_CLEAR(via_ran) \ - switch (via_ran) { \ - case RAN_GERAN_A: \ - VERBOSE_ASSERT(bssap_clear_sent, == true, "%d"); \ - break; \ - case RAN_UTRAN_IU: \ - VERBOSE_ASSERT(iu_release_sent, == true, "%d"); \ - break; \ - default: \ - OSMO_ASSERT(false); \ - break; \ - } - -void _test_umts_authen(enum ran_type via_ran) -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000010650"; - const char *sms = - "09" /* SMS messages */ - "01" /* CP-DATA */ - "58" /* length */ - "01" /* Network to MS */ - "00" /* reference */ - /* originator (gsm411_send_sms() hardcodes this weird nr) */ - "0791" "447758100650" /* 447785016005 */ - "00" /* dest */ - /* SMS TPDU */ - "4c" /* len */ - "00" /* SMS deliver */ - "05802443f2" /* originating address 42342 */ - "00" /* TP-PID */ - "00" /* GSM default alphabet */ - "071010" /* Y-M-D (from wrapped gsm340_gen_scts())*/ - "000000" /* H-M-S */ - "00" /* GMT+0 */ - "44" /* data length */ - "5079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0e" - "d3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb" - "0c7ac3e9e9b7db05"; - - net->authentication_required = true; - net->vlr->cfg.assign_tmsi = true; - rx_from_ran = via_ran; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("080108" "09710000000156f0"); - ms_sends_msg("0508" /* MM LU */ - "7" /* ciph key seq: no key available */ - "0" /* LU type: normal */ - "ffffff" "0000" /* LAI, LAC */ - "57" /* classmark 1: R99, early classmark, no power lvl */ - "089910070000106005" /* IMSI */ - "3303575886" /* classmark 2 */ - ); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - /* based on auc_3g: - * K = 'EB215756028D60E3275E613320AEC880', - * OPC = 'FB2A3D1B360F599ABAB99DB8669F8308' - * SQN = 0 - */ - auth_request_sent = false; - auth_request_expect_rand = "39fa2f4e3d523d8619a73b4f65c3e14d"; - auth_request_expect_autn = "8704f5ba55f30000d2ee44b22c8ea919"; - gsup_rx("0a" - /* imsi */ - "0108" "09710000000156f0" - /* 5 auth vectors... */ - /* TL TL rand */ - "0362" "2010" "39fa2f4e3d523d8619a73b4f65c3e14d" - /* TL sres TL kc */ - "2104" "9b36efdf" "2208" "059a4f668f6fbe39" - /* TL 3G IK */ - "2310" "27497388b6cb044648f396aa155b95ef" - /* TL 3G CK */ - "2410" "f64735036e5871319c679f4742a75ea1" - /* TL AUTN */ - "2510" "8704f5ba55f30000d2ee44b22c8ea919" - /* TL RES */ - "2708" "e229c19e791f2e41" - /* TL TL rand */ - "0362" "2010" "c187a53a5e6b9d573cac7c74451fd46d" - "2104" "85aa3130" "2208" "d3d50a000bf04f6e" - "2310" "1159ec926a50e98c034a6b7d7c9f418d" - "2410" "df3a03d9ca5335641efc8e36d76cd20b" - "2510" "1843a645b98d00005b2d666af46c45d9" - "2708" "7db47cf7f81e4dc7" - "0362" "2010" "efa9c29a9742148d5c9070348716e1bb" - "2104" "69d5f9fb" "2208" "3df176f0c29f1a3d" - "2310" "eb50e770ddcc3060101d2f43b6c2b884" - "2410" "76542abce5ff9345b0e8947f4c6e019c" - "2510" "f9375e6d41e1000096e7fe4ff1c27e39" - "2708" "706f996719ba609c" - "0362" "2010" "f023d5a3b24726e0631b64b3840f8253" - "2104" "d570c03f" "2208" "ec011be8919883d6" - "2310" "c4e58af4ba43f3bcd904e16984f086d7" - "2410" "0593f65e752e5cb7f473862bda05aa0a" - "2510" "541ff1f077270000c5ea00d658bc7e9a" - "2708" "3fd26072eaa2a04d" - "0362" "2010" "2f8f90c780d6a9c0c53da7ac57b6707e" - "2104" "b072446f220823f39f9f425ad6e6" - "2310" "65af0527fda95b0dc5ae4aa515cdf32f" - "2410" "537c3b35a3b13b08d08eeb28098f45cc" - "2510" "4bf4e564f75300009bc796706bc65744" - "2708" "0edb0eadbea94ac2", - NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - if (via_ran == RAN_GERAN_A) { - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000000156f0"); - ms_sends_msg("0554" "e229c19e" "2104" "791f2e41"); - VERBOSE_ASSERT(gsup_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - } else { - /* On UTRAN */ - btw("MS sends Authen Response, VLR accepts and sends SecurityModeControl"); - cipher_mode_cmd_sent = false; - ms_sends_msg("0554" "e229c19e" "2104" "791f2e41"); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends SecurityModeControl acceptance, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000000156f0"); - ms_sends_security_mode_complete(); - VERBOSE_ASSERT(gsup_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - } - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000000156f00804032443f2", - "12010809710000000156f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000000156f0", NULL); - - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x03020100, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == GSM_RESERVED_TMSI, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_release_clear(via_ran); - ms_sends_msg("055b"); - ASSERT_RELEASE_CLEAR(via_ran); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - BTW("after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector"); - auth_request_sent = false; - auth_request_expect_rand = "c187a53a5e6b9d573cac7c74451fd46d"; - auth_request_expect_autn = "1843a645b98d00005b2d666af46c45d9"; - cm_service_result_sent = RES_NONE; - ms_sends_msg("052478" - "03575886" /* classmark 2 */ - "089910070000106005" /* IMSI */); - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->conn_fsm); - OSMO_ASSERT(g_conn->vsub); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - if (via_ran == RAN_GERAN_A) { - btw("MS sends Authen Response, VLR accepts with a CM Service Accept"); - gsup_expect_tx(NULL); - ms_sends_msg("0554" "7db47cf7" "2104" "f81e4dc7"); /* 2nd vector's res, s.a. */ - VERBOSE_ASSERT(cm_service_result_sent, == RES_ACCEPT, "%d"); - } else { - /* On UTRAN */ - btw("MS sends Authen Response, VLR accepts and sends SecurityModeControl"); - cipher_mode_cmd_sent = false; - ms_sends_msg("0554" "7db47cf7" "2104" "f81e4dc7"); /* 2nd vector's res, s.a. */ - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - - btw("MS sends SecurityModeControl acceptance, VLR accepts; above Ciphering is an implicit CM Service Accept"); - ms_sends_security_mode_complete(); - VERBOSE_ASSERT(cm_service_result_sent, == RES_NONE, "%d"); - } - - btw("a USSD request is serviced"); - dtap_expect_tx_ussd("Your extension is 42342\r"); - expect_release_clear(via_ran); - ms_sends_msg("0b3b1c15a11302010002013b300b04010f0406aa510c061b017f0100"); - OSMO_ASSERT(dtap_tx_confirmed); - ASSERT_RELEASE_CLEAR(via_ran); - - btw("all requests serviced, conn has been released"); - EXPECT_CONN_COUNT(0); - - BTW("an SMS is sent, MS is paged"); - paging_expect_imsi(imsi); - paging_sent = false; - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - - send_sms(vsub, vsub, - "Privacy in residential applications is a desirable" - " marketing option."); - - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - vsub = NULL; - VERBOSE_ASSERT(paging_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("the subscriber and its pending request should remain"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 1, "%d"); - vlr_subscr_put(vsub); - - btw("MS replies with Paging Response, and VLR sends Auth Request with third key"); - auth_request_sent = false; - auth_request_expect_rand = "efa9c29a9742148d5c9070348716e1bb"; - auth_request_expect_autn = "f9375e6d41e1000096e7fe4ff1c27e39"; - ms_sends_msg("062707" - "03575886" /* classmark 2 */ - "089910070000106005" /* IMSI */); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - - btw("needs auth, not yet accepted"); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - if (via_ran == RAN_GERAN_A) { - btw("MS sends Authen Response, VLR accepts and sends pending SMS"); - dtap_expect_tx(sms); - ms_sends_msg("0554" "706f9967" "2104" "19ba609c"); /* 3nd vector's res, s.a. */ - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - } else { - /* On UTRAN */ - btw("MS sends Authen Response, VLR accepts and sends SecurityModeControl"); - cipher_mode_cmd_sent = false; - ms_sends_msg("0554" "706f9967" "2104" "19ba609c"); /* 3nd vector's res, s.a. */ - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - VERBOSE_ASSERT(paging_stopped, == false, "%d"); - - btw("MS sends SecurityModeControl acceptance, VLR accepts and sends SMS"); - dtap_expect_tx(sms); - ms_sends_security_mode_complete(); - VERBOSE_ASSERT(paging_stopped, == true, "%d"); - } - - btw("SMS was delivered, no requests pending for subscr"); - vsub = vlr_subscr_find_by_imsi(net->vlr, imsi); - OSMO_ASSERT(vsub); - VERBOSE_ASSERT(llist_count(&vsub->cs.requests), == 0, "%d"); - vlr_subscr_put(vsub); - - btw("conn is still open to wait for SMS ack dance"); - EXPECT_CONN_COUNT(1); - - btw("MS replies with CP-ACK for received SMS"); - ms_sends_msg("8904"); - EXPECT_CONN_COUNT(1); - - btw("MS also sends RP-ACK, MSC in turn sends CP-ACK for that"); - dtap_expect_tx("0904"); - expect_release_clear(via_ran); - ms_sends_msg("890106020041020000"); - VERBOSE_ASSERT(dtap_tx_confirmed, == true, "%d"); - ASSERT_RELEASE_CLEAR(via_ran); - - btw("SMS is done, conn is gone"); - EXPECT_CONN_COUNT(0); - - BTW("subscriber detaches"); - expect_release_clear(via_ran); - ms_sends_msg("050130" - "089910070000106005" /* IMSI */); - ASSERT_RELEASE_CLEAR(via_ran); - - EXPECT_CONN_COUNT(0); - clear_vlr(); -} - -void test_umts_authen_geran() -{ - comment_start(); - _test_umts_authen(RAN_GERAN_A); - comment_end(); -} - -void test_umts_authen_utran() -{ - comment_start(); - _test_umts_authen(RAN_UTRAN_IU); - comment_end(); -} - -#define RECALC_AUTS 0 - -#if RECALC_AUTS -typedef uint8_t u8; -extern int milenage_f2345(const u8 *opc, const u8 *k, const u8 *_rand, - u8 *res, u8 *ck, u8 *ik, u8 *ak, u8 *akstar); -extern int milenage_f1(const u8 *opc, const u8 *k, const u8 *_rand, - const u8 *sqn, const u8 *amf, u8 *mac_a, u8 *mac_s); -#endif - -void _test_umts_authen_resync(enum ran_type via_ran) -{ - struct vlr_subscr *vsub; - const char *imsi = "901700000010650"; - - net->authentication_required = true; - net->vlr->cfg.assign_tmsi = true; - rx_from_ran = via_ran; - - btw("Location Update request causes a GSUP Send Auth Info request to HLR"); - lu_result_sent = RES_NONE; - gsup_expect_tx("080108" "09710000000156f0"); - ms_sends_msg("0508" /* MM LU */ - "7" /* ciph key seq: no key available */ - "0" /* LU type: normal */ - "ffffff" "0000" /* LAI, LAC */ - "57" /* classmark 1: R99, early classmark, no power lvl */ - "089910070000106005" /* IMSI */ - "3303575886" /* classmark 2 */ - ); - OSMO_ASSERT(gsup_tx_confirmed); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS"); - /* based on auc_3g: - * K = 'EB215756028D60E3275E613320AEC880', - * OPC = 'FB2A3D1B360F599ABAB99DB8669F8308' - * SQN = 0 - */ - auth_request_sent = false; - auth_request_expect_rand = "39fa2f4e3d523d8619a73b4f65c3e14d"; - auth_request_expect_autn = "8704f5ba55f30000d2ee44b22c8ea919"; - gsup_rx("0a" - /* imsi */ - "0108" "09710000000156f0" - /* auth vectors... */ - /* TL TL rand */ - "0362" "2010" "39fa2f4e3d523d8619a73b4f65c3e14d" - /* TL sres TL kc */ - "2104" "9b36efdf" "2208" "059a4f668f6fbe39" - /* TL 3G IK */ - "2310" "27497388b6cb044648f396aa155b95ef" - /* TL 3G CK */ - "2410" "f64735036e5871319c679f4742a75ea1" - /* TL AUTN */ - "2510" "8704f5ba55f30000d2ee44b22c8ea919" - /* TL RES */ - "2708" "e229c19e791f2e41" - ,NULL); - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - /* The AUTN sent was 8704f5ba55f30000d2ee44b22c8ea919 - * (see expected error output) - * with the first 6 bytes being SQN ^ AK. - * K = EB215756028D60E3275E613320AEC880 - * OPC = FB2A3D1B360F599ABAB99DB8669F8308 - * RAND = 39fa2f4e3d523d8619a73b4f65c3e14d - * --milenage-f5--> - * AK = 8704f5ba55f3 - * - * The first six bytes are 8704f5ba55f3, - * and 8704f5ba55f3 ^ AK = 0. - * --> SQN = 0. - * - * Say the USIM doesn't like that, let's say it is at SQN 23. - * SQN_MS = 000000000017 - * - * AUTS = Conc(SQN_MS) || MAC-S - * Conc(SQN_MS) = SQN_MS ⊕ f5*[K](RAND) - * MAC-S = f1*[K] (SQN MS || RAND || AMF) - * - * f5*--> Conc(SQN_MS) = 000000000017 ^ 979498b1f73a - * = 979498b1f72d - * AMF = 0000 (TS 33.102 v7.0.0, 6.3.3) - * - * MAC-S = f1*[K] (000000000017 || 39fa2f4e3d523d8619a73b4f65c3e14d || 0000) - * = 3e28c59fa2e72f9c - * - * AUTS = 979498b1f72d || 3e28c59fa2e72f9c - */ -#if RECALC_AUTS - uint8_t ak[6]; - uint8_t akstar[6]; - uint8_t opc[16]; - uint8_t k[16]; - uint8_t rand[16]; - osmo_hexparse("EB215756028D60E3275E613320AEC880", k, sizeof(k)); - osmo_hexparse("FB2A3D1B360F599ABAB99DB8669F8308", opc, sizeof(opc)); - osmo_hexparse("39fa2f4e3d523d8619a73b4f65c3e14d", rand, sizeof(rand)); - milenage_f2345(opc, k, rand, NULL, NULL, NULL, ak, akstar); - btw("ak = %s", osmo_hexdump_nospc(ak, sizeof(ak))); - btw("akstar = %s", osmo_hexdump_nospc(akstar, sizeof(akstar))); - - uint8_t sqn_ms[6] = { 0, 0, 0, 0, 0, 23 }; - uint8_t amf[2] = { 0 }; - uint8_t mac_s[8]; - milenage_f1(opc, k, rand, sqn_ms, amf, NULL, mac_s); - btw("mac_s = %s", osmo_hexdump_nospc(mac_s, sizeof(mac_s))); - /* verify valid AUTS resulting in SQN 23 with: - osmo-auc-gen -3 -a milenage -k EB215756028D60E3275E613320AEC880 \ - -o FB2A3D1B360F599ABAB99DB8669F8308 \ - -r 39fa2f4e3d523d8619a73b4f65c3e14d \ - -A 979498b1f72d3e28c59fa2e72f9c - */ -#endif - - btw("MS sends Authen Failure with Resync cause, VLR sends GSUP to HLR to resync"); - auth_request_sent = false; - gsup_expect_tx("08" /* OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST */ - "0108" "09710000000156f0" /* IMSI */ - "260e" "979498b1f72d3e28c59fa2e72f9c" /* AUTS */ - "2010" "39fa2f4e3d523d8619a73b4f65c3e14d" /* RAND */); - ms_sends_msg("051c" /* 05 = MM; 1c = Auth Failure */ - "15" /* cause = Synch Failure */ - "220e" "979498b1f72d3e28c59fa2e72f9c" /* AUTS */); - VERBOSE_ASSERT(gsup_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(auth_request_sent, == false, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR replies with new tuples"); - auth_request_sent = false; - auth_request_expect_rand = "0f1feb1623e1bf626334e37ec448ac18"; - auth_request_expect_autn = "02a83f62e9470000660d51afc75f169d"; - gsup_rx("0a" - /* imsi */ - "0108" "09710000000156f0" - /* 1 auth vector */ - /* TL TL rand */ - "0362" "2010" "0f1feb1623e1bf626334e37ec448ac18" - /* TL sres TL kc */ - "2104" "efde99da" "2208" "14778c855c523730" - /* TL 3G IK */ - "2310" "8a90c769b7272f3bb7a1c1fbb1ea9349" - /* TL 3G CK */ - "2410" "43ffc1cf8c89a7fd6ab94bd8d6162cbf" - /* TL AUTN */ - "2510" "02a83f62e9470000660d51afc75f169d" - /* TL RES */ - "2708" "1df5f0b4f22b696e" - /* TL TL rand */ - "0362" "2010" "ac21d34937b4e1142a2c757af2949319" - /* TL sres TL kc */ - "2104" "7818bfdc" "2208" "d175571f41f314a4" - /* TL 3G IK */ - "2310" "ff8edbceb6dd24799c77c3b9a6790c10" - /* TL 3G CK */ - "2410" "157c39022ca9d885a7f0766a7dfee448" - /* TL AUTN */ - "2510" "8a43b91898e500002cf354c6f5d1f8c3" - /* TL RES */ - "2708" "f748a7078f5018db" - ,NULL); - - VERBOSE_ASSERT(auth_request_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - if (via_ran == RAN_GERAN_A) { - btw("MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000000156f0"); - ms_sends_msg("0554" "1df5f0b4" "2104" "f22b696e"); - VERBOSE_ASSERT(gsup_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - } else { - /* On UTRAN */ - btw("MS sends Authen Response, VLR accepts and sends SecurityModeControl"); - cipher_mode_cmd_sent = false; - ms_sends_msg("0554" "1df5f0b4" "2104" "f22b696e"); - VERBOSE_ASSERT(cipher_mode_cmd_sent, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("MS sends SecurityModeControl acceptance, VLR accepts and sends GSUP LU Req to HLR"); - gsup_expect_tx("04010809710000000156f0"); - ms_sends_security_mode_complete(); - VERBOSE_ASSERT(gsup_tx_confirmed, == true, "%d"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - } - - btw("HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT"); - gsup_rx("10010809710000000156f00804032443f2", - "12010809710000000156f0"); - VERBOSE_ASSERT(lu_result_sent, == RES_NONE, "%d"); - - btw("HLR also sends GSUP _UPDATE_LOCATION_RESULT"); - gsup_rx("06010809710000000156f0", NULL); - - VERBOSE_ASSERT(lu_result_sent, == RES_ACCEPT, "%d"); - - btw("a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl"); - EXPECT_CONN_COUNT(1); - EXPECT_ACCEPTED(false); - thwart_rx_non_initial_requests(); - - btw("even though the TMSI is not acked, we can already find the subscr with it"); - vsub = vlr_subscr_find_by_tmsi(net->vlr, 0x03020100); - VERBOSE_ASSERT(vsub != NULL, == true, "%d"); - VERBOSE_ASSERT(strcmp(vsub->imsi, imsi), == 0, "%d"); - VERBOSE_ASSERT(vsub->tmsi_new, == 0x03020100, "0x%08x"); - VERBOSE_ASSERT(vsub->tmsi, == GSM_RESERVED_TMSI, "0x%08x"); - vlr_subscr_put(vsub); - - btw("MS sends TMSI Realloc Complete"); - expect_release_clear(via_ran); - ms_sends_msg("055b"); - ASSERT_RELEASE_CLEAR(via_ran); - - btw("LU was successful, and the conn has already been closed"); - EXPECT_CONN_COUNT(0); - - clear_vlr(); -} - -void test_umts_authen_resync_geran() -{ - comment_start(); - _test_umts_authen_resync(RAN_GERAN_A); - comment_end(); -} - -void test_umts_authen_resync_utran() -{ - comment_start(); - _test_umts_authen_resync(RAN_UTRAN_IU); - comment_end(); -} - -msc_vlr_test_func_t msc_vlr_tests[] = { - test_umts_authen_geran, - test_umts_authen_utran, - test_umts_authen_resync_geran, - test_umts_authen_resync_utran, - NULL -}; diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.err b/tests/msc_vlr/msc_vlr_test_umts_authen.err deleted file mode 100644 index 57f5e8e85..000000000 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.err +++ /dev/null @@ -1,1381 +0,0 @@ -===== test_umts_authen_geran -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000010650 type=NORMAL -DMM LU/new-LAC: 0/0 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: rev=R99 net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650 -DVLR New subscr, IMSI: 901700000010650 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e4103622010c187a53a5e6b9d573cac7c74451fd46d210485aa31302208d3d50a000bf04f6e23101159ec926a50e98c034a6b7d7c9f418d2410df3a03d9ca5335641efc8e36d76cd20b25101843a645b98d00005b2d666af46c45d927087db47cf7f81e4dc703622010efa9c29a9742148d5c9070348716e1bb210469d5f9fb22083df176f0c29f1a3d2310eb50e770ddcc3060101d2f43b6c2b884241076542abce5ff9345b0e8947f4c6e019c2510f9375e6d41e1000096e7fe4ff1c27e392708706f996719ba609c03622010f023d5a3b24726e0631b64b3840f82532104d570c03f2208ec011be8919883d62310c4e58af4ba43f3bcd904e16984f086d724100593f65e752e5cb7f473862bda05aa0a2510541ff1f077270000c5ea00d658bc7e9a27083fd26072eaa2a04d036220102f8f90c780d6a9c0c53da7ac57b6707e2104b072446f220823f39f9f425ad6e6231065af0527fda95b0dc5ae4aa515cdf32f2410537c3b35a3b13b08d08eeb28098f45cc25104bf4e564f75300009bc796706bc6574427080edb0eadbea94ac2 -DVLR GSUP rx 511: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e4103622010c187a53a5e6b9d573cac7c74451fd46d210485aa31302208d3d50a000bf04f6e23101159ec926a50e98c034a6b7d7c9f418d2410df3a03d9ca5335641efc8e36d76cd20b25101843a645b98d00005b2d666af46c45d927087db47cf7f81e4dc703622010efa9c29a9742148d5c9070348716e1bb210469d5f9fb22083df176f0c29f1a3d2310eb50e770ddcc3060101d2f43b6c2b884241076542abce5ff9345b0e8947f4c6e019c2510f9375e6d41e1000096e7fe4ff1c27e392708706f996719ba609c03622010f023d5a3b24726e0631b64b3840f82532104d570c03f2208ec011be8919883d62310c4e58af4ba43f3bcd904e16984f086d724100593f65e752e5cb7f473862bda05aa0a2510541ff1f077270000c5ea00d658bc7e9a27083fd26072eaa2a04d036220102f8f90c780d6a9c0c53da7ac57b6707e2104b072446f220823f39f9f425ad6e6231065af0527fda95b0dc5ae4aa515cdf32f2410537c3b35a3b13b08d08eeb28098f45cc25104bf4e564f75300009bc796706bc6574427080edb0eadbea94ac2 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000010650) Received 5 auth tuples -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending UMTS Auth Request for IMSI:901700000010650: tuple use_count=1 key_seq=0 auth_types=0x3 and... -- ...rand=39fa2f4e3d523d8619a73b4f65c3e14d -- ...autn=8704f5ba55f30000d2ee44b22c8ea919 -- ...expecting res=e229c19e791f2e41 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000010650: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000010650: MM R99 AUTHENTICATION RESPONSE (res = e229c19e791f2e41) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000010650) received res: e2 29 c1 9e 79 1f 2e 41 -DVLR SUBSCR(IMSI:901700000010650) AUTH established UMTS security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000000156f0 -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - gsup_tx_confirmed == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000000156f00804032443f2 -DVLR GSUP rx 17: 10010809710000000156f00804032443f2 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR IMSI:901700000010650 has MSISDN:42342 -DVLR GSUP tx: 12010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000000156f0 -DVLR GSUP rx 11: 06010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:42342, with TMSI 0x03020100 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 1 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:42342 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:42342 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 ---- -- after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000010650 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: rev=R99 net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=1 -- sending UMTS Auth Request for MSISDN:42342: tuple use_count=1 key_seq=1 auth_types=0x3 and... -- ...rand=c187a53a5e6b9d573cac7c74451fd46d -- ...autn=1843a645b98d00005b2d666af46c45d9 -- ...expecting res=7db47cf7f81e4dc7 -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:42342: MSC conn use - 1 == 1 - cm_service_result_sent == 0 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts with a CM Service Accept - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: 7d b4 7c f7 f8 1e 4d c7 -DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -- sending CM Service Accept for MSISDN:42342 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request -DREF MSISDN:42342: MSC conn use - 1 == 1 - cm_service_result_sent == 1 -- a USSD request is serviced - expecting USSD: - Your extension is 42342
- MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:42342: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - bssap_clear_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:42342 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DMM Subscriber MSISDN:42342 not paged yet, start paging. - RAN_GERAN_A sends out paging request to IMSI 901700000010650, TMSI 0x03020100, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:42342 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:42342 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 3 -- MS replies with Paging Response, and VLR sends Auth Request with third key - MSC <--RAN_GERAN_A-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000010650 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: rev=R99 net=GERAN Auth (no Ciph) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:42342 usage increases to: 4 -DREF VLR subscr MSISDN:42342 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=2 -- sending UMTS Auth Request for MSISDN:42342: tuple use_count=1 key_seq=2 auth_types=0x3 and... -- ...rand=efa9c29a9742148d5c9070348716e1bb -- ...autn=f9375e6d41e1000096e7fe4ff1c27e39 -- ...expecting res=706f996719ba609c -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:42342: MSC conn use - 1 == 1 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and sends pending SMS - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = 706f996719ba609c) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: 70 6f 99 67 19 ba 60 9c -DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_ciph() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:42342 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:42342 usage increases to: 5 -DREF MSISDN:42342: MSC conn use + 1 == 3 -DMSC msc_tx 91 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005802443f2000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:42342: MSC conn use - 1 == 2 - dtap_tx_confirmed == 1 - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:42342 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:42342: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:42342: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_GERAN_A-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:42342: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:42342 via RAN_GERAN_A -- DTAP --RAN_GERAN_A--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 3 -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - dtap_tx_confirmed == 1 - bssap_clear_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DMM IMSI DETACH for MSISDN:42342 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:42342 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - bssap_clear_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_umts_authen_geran: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_umts_authen_utran -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000010650 type=NORMAL -DMM LU/new-LAC: 0/0 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: rev=R99 net=UTRAN Auth+Ciph -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650 -DVLR New subscr, IMSI: 901700000010650 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e4103622010c187a53a5e6b9d573cac7c74451fd46d210485aa31302208d3d50a000bf04f6e23101159ec926a50e98c034a6b7d7c9f418d2410df3a03d9ca5335641efc8e36d76cd20b25101843a645b98d00005b2d666af46c45d927087db47cf7f81e4dc703622010efa9c29a9742148d5c9070348716e1bb210469d5f9fb22083df176f0c29f1a3d2310eb50e770ddcc3060101d2f43b6c2b884241076542abce5ff9345b0e8947f4c6e019c2510f9375e6d41e1000096e7fe4ff1c27e392708706f996719ba609c03622010f023d5a3b24726e0631b64b3840f82532104d570c03f2208ec011be8919883d62310c4e58af4ba43f3bcd904e16984f086d724100593f65e752e5cb7f473862bda05aa0a2510541ff1f077270000c5ea00d658bc7e9a27083fd26072eaa2a04d036220102f8f90c780d6a9c0c53da7ac57b6707e2104b072446f220823f39f9f425ad6e6231065af0527fda95b0dc5ae4aa515cdf32f2410537c3b35a3b13b08d08eeb28098f45cc25104bf4e564f75300009bc796706bc6574427080edb0eadbea94ac2 -DVLR GSUP rx 511: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e4103622010c187a53a5e6b9d573cac7c74451fd46d210485aa31302208d3d50a000bf04f6e23101159ec926a50e98c034a6b7d7c9f418d2410df3a03d9ca5335641efc8e36d76cd20b25101843a645b98d00005b2d666af46c45d927087db47cf7f81e4dc703622010efa9c29a9742148d5c9070348716e1bb210469d5f9fb22083df176f0c29f1a3d2310eb50e770ddcc3060101d2f43b6c2b884241076542abce5ff9345b0e8947f4c6e019c2510f9375e6d41e1000096e7fe4ff1c27e392708706f996719ba609c03622010f023d5a3b24726e0631b64b3840f82532104d570c03f2208ec011be8919883d62310c4e58af4ba43f3bcd904e16984f086d724100593f65e752e5cb7f473862bda05aa0a2510541ff1f077270000c5ea00d658bc7e9a27083fd26072eaa2a04d036220102f8f90c780d6a9c0c53da7ac57b6707e2104b072446f220823f39f9f425ad6e6231065af0527fda95b0dc5ae4aa515cdf32f2410537c3b35a3b13b08d08eeb28098f45cc25104bf4e564f75300009bc796706bc6574427080edb0eadbea94ac2 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000010650) Received 5 auth tuples -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending UMTS Auth Request for IMSI:901700000010650: tuple use_count=1 key_seq=0 auth_types=0x3 and... -- ...rand=39fa2f4e3d523d8619a73b4f65c3e14d -- ...autn=8704f5ba55f30000d2ee44b22c8ea919 -- ...expecting res=e229c19e791f2e41 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends SecurityModeControl - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000010650: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000010650: MM R99 AUTHENTICATION RESPONSE (res = e229c19e791f2e41) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000010650) received res: e2 29 c1 9e 79 1f 2e 41 -DVLR SUBSCR(IMSI:901700000010650) AUTH established UMTS security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -- sending SecurityModeControl for IMSI:901700000010650 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - cipher_mode_cmd_sent == 1 - lu_result_sent == 0 -- MS sends SecurityModeControl acceptance, VLR accepts and sends GSUP LU Req to HLR -DMM <- SECURITY MODE COMPLETE IMSI:901700000010650 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() -DIUCS IMSI:901700000010650: tx CommonID 901700000010650 -- Iu Common ID --RAN_UTRAN_IU--> MS (IMSI=901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000000156f0 -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA - gsup_tx_confirmed == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000000156f00804032443f2 -DVLR GSUP rx 17: 10010809710000000156f00804032443f2 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR IMSI:901700000010650 has MSISDN:42342 -DVLR GSUP tx: 12010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000000156f0 -DVLR GSUP rx 11: 06010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:42342, with TMSI 0x03020100 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 1 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:42342 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:42342 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- Iu Release --RAN_UTRAN_IU--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - iu_release_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 ---- -- after a while, a new conn sends a CM Service Request. VLR responds with Auth Req, 2nd auth vector - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_CM_SERV_REQ - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_CM_SERV_REQ (0x5:0x24) -DMM <- CM SERVICE REQUEST serv_type=0x08 MI(IMSI)=901700000010650 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: rev=R99 net=UTRAN Auth+Ciph -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=1 -- sending UMTS Auth Request for MSISDN:42342: tuple use_count=1 key_seq=1 auth_types=0x3 and... -- ...rand=c187a53a5e6b9d573cac7c74451fd46d -- ...autn=1843a645b98d00005b2d666af46c45d9 -- ...expecting res=7db47cf7f81e4dc7 -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:42342: MSC conn use - 1 == 1 - cm_service_result_sent == 0 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and sends SecurityModeControl - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = 7db47cf7f81e4dc7) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: 7d b4 7c f7 f8 1e 4d c7 -DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -- sending SecurityModeControl for MSISDN:42342 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH -DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:42342: MSC conn use - 1 == 1 - cipher_mode_cmd_sent == 1 - cm_service_result_sent == 0 -- MS sends SecurityModeControl acceptance, VLR accepts; above Ciphering is an implicit CM Service Accept -DMM <- SECURITY MODE COMPLETE MSISDN:42342 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() -DIUCS MSISDN:42342: tx CommonID 901700000010650 -- Iu Common ID --RAN_UTRAN_IU--> MS (IMSI=901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_CM_SERVICE_REQ -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: received_cm_service_request = true -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: still awaiting first request after a CM Service Request - cm_service_result_sent == 0 -- a USSD request is serviced - expecting USSD: - Your extension is 42342
- MSC <--RAN_UTRAN_IU-- MS: GSM48_PDISC_NC_SS:0x3b -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_PDISC_NC_SS:0x3b (0xb:0x3b) -DMM MSISDN:42342: rx msg GSM48_PDISC_NC_SS:0x3b: received_cm_service_request changes to false -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM USSD: Own number requested -DMM MSISDN:42342: MSISDN = 42342 -DMSC msc_tx 43 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM48_PDISC_NC_SS:0x2a: 8b2a1c27a225020100302002013b301b04010f0416d9775d0e2ae3e965f73cfd7683d273104d36a3c91a0d -- DTAP matches expected message -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- Iu Release --RAN_UTRAN_IU--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - iu_release_sent == 1 -- all requests serviced, conn has been released - llist_count(&net->subscr_conns) == 0 ---- -- an SMS is sent, MS is paged -DREF VLR subscr MSISDN:42342 usage increases to: 2 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:42342 usage increases to: 3 -DMM Subscriber MSISDN:42342 not paged yet, start paging. - RAN_UTRAN_IU sends out paging request to IMSI 901700000010650, TMSI 0x03020100, LAC 0 - strcmp(paging_expecting_imsi, imsi) == 0 -DREF VLR subscr MSISDN:42342 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 3 - paging_sent == 1 - paging_stopped == 0 -- the subscriber and its pending request should remain -DREF VLR subscr MSISDN:42342 usage increases to: 4 - llist_count(&vsub->cs.requests) == 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 3 -- MS replies with Paging Response, and VLR sends Auth Request with third key - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_RR_PAG_RESP - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_RR_PAG_RESP (0x6:0x27) -DRR PAGING RESPONSE: MI(IMSI)=901700000010650 -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Allocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: is child of Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: rev=R99 net=UTRAN Auth+Ciph -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: Received Event PR_ARQ_E_START -DREF VLR subscr MSISDN:42342 usage increases to: 4 -DREF VLR subscr MSISDN:42342 usage increases to: 5 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: proc_arq_vlr_fn_post_imsi() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_INIT}: state_chg to PR_ARQ_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=2 -- sending UMTS Auth Request for MSISDN:42342: tuple use_count=1 key_seq=2 auth_types=0x3 and... -- ...rand=efa9c29a9742148d5c9070348716e1bb -- ...autn=f9375e6d41e1000096e7fe4ff1c27e39 -- ...expecting res=706f996719ba609c -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:42342: MSC conn use - 1 == 1 - auth_request_sent == 1 -- needs auth, not yet accepted -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- MS sends Authen Response, VLR accepts and sends SecurityModeControl - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM MSISDN:42342: MM R99 AUTHENTICATION RESPONSE (res = 706f996719ba609c) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(MSISDN:42342) received res: 70 6f 99 67 19 ba 60 9c -DVLR SUBSCR(MSISDN:42342) AUTH established UMTS security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent Process_Access_Request_VLR(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: Received Event PR_ARQ_E_AUTH_RES -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: got VLR_AUTH_RES_PASSED -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: _proc_arq_vlr_node2() -- sending SecurityModeControl for MSISDN:42342 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH -DMM MSISDN:42342: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF MSISDN:42342: MSC conn use - 1 == 1 - cipher_mode_cmd_sent == 1 - paging_stopped == 0 -- MS sends SecurityModeControl acceptance, VLR accepts and sends SMS -DMM <- SECURITY MODE COMPLETE MSISDN:42342 -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: Received Event PR_ARQ_E_CIPH_RES -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_ciph() -DIUCS MSISDN:42342: tx CommonID 901700000010650 -- Iu Common ID --RAN_UTRAN_IU--> MS (IMSI=901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_node2_post_vlr() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_pres() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_trace() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: _proc_arq_vlr_post_imei() -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: proc_arq_fsm_done(VLR_PR_ARQ_RES_PASSED) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_WAIT_CIPH}: state_chg to PR_ARQ_S_DONE -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Process Access Request result: VLR_PR_ARQ_RES_PASSED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_PAGING_RESP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DPAG Paging success for MSISDN:42342 (event=0) -DPAG Calling paging cbfn. -DREF VLR subscr MSISDN:42342 usage increases to: 5 -DREF MSISDN:42342: MSC conn use + 1 == 2 -DMSC msc_tx 91 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM48_PDISC_SMS:0x01: 09015801000791447758100650004c0005802443f2000007101000000000445079da1e1ee7416937485e9ea7c965373d1d6683c270383b3d0ed3d36ff71c949e83c22072799e9687c5ec32a81d96afcbf4b4fb0c7ac3e9e9b7db05 -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: connection still has active transaction: GSM48_PDISC_SMS - paging_stopped == 1 -- SMS was delivered, no requests pending for subscr -DREF VLR subscr MSISDN:42342 usage increases to: 5 - llist_count(&vsub->cs.requests) == 0 -DREF VLR subscr MSISDN:42342 usage decreases to: 4 -- conn is still open to wait for SMS ack dance - llist_count(&net->subscr_conns) == 1 -- MS replies with CP-ACK for received SMS - MSC <--RAN_UTRAN_IU-- MS: GSM48_PDISC_SMS:0x04 -DREF MSISDN:42342: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x04 (0x9:0x4) -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_COMMUNICATING -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: connection still has active transaction: GSM48_PDISC_SMS -DREF MSISDN:42342: MSC conn use - 1 == 2 - llist_count(&net->subscr_conns) == 1 -- MS also sends RP-ACK, MSC in turn sends CP-ACK for that - MSC <--RAN_UTRAN_IU-- MS: GSM48_PDISC_SMS:0x01 -DREF MSISDN:42342: MSC conn use + 1 == 3 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_COMMUNICATING -DMSC msc_tx 2 bytes to MSISDN:42342 via RAN_UTRAN_IU -- DTAP --RAN_UTRAN_IU--> MS: GSM48_PDISC_SMS:0x04: 0904 -- DTAP matches expected message -DREF VLR subscr MSISDN:42342 usage decreases to: 3 -DREF VLR subscr MSISDN:42342 usage decreases to: 2 -DREF MSISDN:42342: MSC conn use - 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_COMMUNICATING}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Freeing instance -DVLR Process_Access_Request_VLR(901700000010650){PR_ARQ_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- Iu Release --RAN_UTRAN_IU--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - dtap_tx_confirmed == 1 - iu_release_sent == 1 -- SMS is done, conn is gone - llist_count(&net->subscr_conns) == 0 ---- -- subscriber detaches - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_IMSI_DETACH_IND - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_IMSI_DETACH_IND (0x5:0x1) -DMM IMSI DETACH INDICATION: MI(IMSI)=901700000010650 -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DMM IMSI DETACH for MSISDN:42342 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -DREF VLR subscr MSISDN:42342 usage decreases to: 0 -DREF freeing VLR subscr MSISDN:42342 -DMM msc_subscr_conn_close(vsub=unknown, cause=0): no conn fsm, releasing directly without release event. -- Iu Release --RAN_UTRAN_IU--> MS -DREF unknown: MSC conn use - 1 == 0 -DRLL Freeing subscriber connection with NULL subscriber - iu_release_sent == 1 - llist_count(&net->subscr_conns) == 0 -===== test_umts_authen_utran: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_umts_authen_resync_geran -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000010650 type=NORMAL -DMM LU/new-LAC: 0/0 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: rev=R99 net=GERAN Auth (no Ciph) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650 -DVLR New subscr, IMSI: 901700000010650 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e41 -DVLR GSUP rx 111: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e41 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000010650) Received 1 auth tuples -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending UMTS Auth Request for IMSI:901700000010650: tuple use_count=1 key_seq=0 auth_types=0x3 and... -- ...rand=39fa2f4e3d523d8619a73b4f65c3e14d -- ...autn=8704f5ba55f30000d2ee44b22c8ea919 -- ...expecting res=e229c19e791f2e41 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Failure with Resync cause, VLR sends GSUP to HLR to resync - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_FAIL -DREF IMSI:901700000010650: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_FAIL (0x5:0x1c) -DMM IMSI:901700000010650: MM R99 AUTHENTICATION SYNCH (AUTS = 979498b1f72d3e28c59fa2e72f9c) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_FAIL -DVLR GSUP tx: 08010809710000000156f0260e979498b1f72d3e28c59fa2e72f9c201039fa2f4e3d523d8619a73b4f65c3e14d -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0260e979498b1f72d3e28c59fa2e72f9c201039fa2f4e3d523d8619a73b4f65c3e14d -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_SAI_RESYNC -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - gsup_tx_confirmed == 1 - auth_request_sent == 0 - lu_result_sent == 0 -- HLR replies with new tuples -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000000156f0036220100f1feb1623e1bf626334e37ec448ac182104efde99da220814778c855c52373023108a90c769b7272f3bb7a1c1fbb1ea9349241043ffc1cf8c89a7fd6ab94bd8d6162cbf251002a83f62e9470000660d51afc75f169d27081df5f0b4f22b696e03622010ac21d34937b4e1142a2c757af294931921047818bfdc2208d175571f41f314a42310ff8edbceb6dd24799c77c3b9a6790c102410157c39022ca9d885a7f0766a7dfee44825108a43b91898e500002cf354c6f5d1f8c32708f748a7078f5018db -DVLR GSUP rx 211: 0a010809710000000156f0036220100f1feb1623e1bf626334e37ec448ac182104efde99da220814778c855c52373023108a90c769b7272f3bb7a1c1fbb1ea9349241043ffc1cf8c89a7fd6ab94bd8d6162cbf251002a83f62e9470000660d51afc75f169d27081df5f0b4f22b696e03622010ac21d34937b4e1142a2c757af294931921047818bfdc2208d175571f41f314a42310ff8edbceb6dd24799c77c3b9a6790c102410157c39022ca9d885a7f0766a7dfee44825108a43b91898e500002cf354c6f5d1f8c32708f748a7078f5018db -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_SAI_RESYNC}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000010650) Received 2 auth tuples -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_SAI_RESYNC}: state_chg to VLR_SUB_AS_WAIT_RESP_RESYNC -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP_RESYNC}: got auth tuple: use_count=1 key_seq=0 -- sending UMTS Auth Request for IMSI:901700000010650: tuple use_count=1 key_seq=0 auth_types=0x3 and... -- ...rand=0f1feb1623e1bf626334e37ec448ac18 -- ...autn=02a83f62e9470000660d51afc75f169d -- ...expecting res=1df5f0b4f22b696e -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends GSUP LU Req to HLR - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000010650: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000010650: MM R99 AUTHENTICATION RESPONSE (res = 1df5f0b4f22b696e) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP_RESYNC}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000010650) received res: 1d f5 f0 b4 f2 2b 69 6e -DVLR SUBSCR(IMSI:901700000010650) AUTH established UMTS security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP_RESYNC}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP_RESYNC}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_ciph() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000000156f0 -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - gsup_tx_confirmed == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000000156f00804032443f2 -DVLR GSUP rx 17: 10010809710000000156f00804032443f2 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR IMSI:901700000010650 has MSISDN:42342 -DVLR GSUP tx: 12010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000000156f0 -DVLR GSUP rx 11: 06010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:42342, with TMSI 0x03020100 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 1 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:42342 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_GERAN_A-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:42342 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- BSSAP Clear --RAN_GERAN_A--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - bssap_clear_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:42342 -===== test_umts_authen_resync_geran: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -===== test_umts_authen_resync_utran -- Location Update request causes a GSUP Send Auth Info request to HLR - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_LOC_UPD_REQUEST - new conn -DREF unknown: MSC conn use + 1 == 1 -DRLL Dispatching 04.08 message GSM48_MT_MM_LOC_UPD_REQUEST (0x5:0x8) -DREF unknown: MSC conn use + 1 == 2 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Allocated -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: Received Event SUBSCR_CONN_E_START -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_INIT}: state_chg to SUBSCR_CONN_S_NEW -DMM LOCATION UPDATING REQUEST: MI(IMSI)=901700000010650 type=NORMAL -DMM LU/new-LAC: 0/0 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Allocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: is child of Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: rev=R99 net=UTRAN Auth+Ciph -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: Received Event VLR_ULA_E_UPDATE_LA -DREF VLR subscr unknown usage increases to: 1 -DVLR set IMSI on subscriber; IMSI=901700000010650 id=901700000010650 -DVLR New subscr, IMSI: 901700000010650 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: vlr_loc_upd_node1() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_IDLE}: state_chg to VLR_ULA_S_WAIT_AUTH -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Allocated -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: is child of vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: Received Event VLR_AUTH_E_START -DVLR GSUP tx: 08010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_AI -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - lu_result_sent == 0 -- from HLR, rx _SEND_AUTH_INFO_RESULT; VLR sends Auth Req to MS -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e41 -DVLR GSUP rx 111: 0a010809710000000156f00362201039fa2f4e3d523d8619a73b4f65c3e14d21049b36efdf2208059a4f668f6fbe39231027497388b6cb044648f396aa155b95ef2410f64735036e5871319c679f4742a75ea125108704f5ba55f30000d2ee44b22c8ea9192708e229c19e791f2e41 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000010650) Received 1 auth tuples -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_AI}: state_chg to VLR_SUB_AS_WAIT_RESP -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: got auth tuple: use_count=1 key_seq=0 -- sending UMTS Auth Request for IMSI:901700000010650: tuple use_count=1 key_seq=0 auth_types=0x3 and... -- ...rand=39fa2f4e3d523d8619a73b4f65c3e14d -- ...autn=8704f5ba55f30000d2ee44b22c8ea919 -- ...expecting res=e229c19e791f2e41 -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Failure with Resync cause, VLR sends GSUP to HLR to resync - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_FAIL -DREF IMSI:901700000010650: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_FAIL (0x5:0x1c) -DMM IMSI:901700000010650: MM R99 AUTHENTICATION SYNCH (AUTS = 979498b1f72d3e28c59fa2e72f9c) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: Received Event VLR_AUTH_E_MS_AUTH_FAIL -DVLR GSUP tx: 08010809710000000156f0260e979498b1f72d3e28c59fa2e72f9c201039fa2f4e3d523d8619a73b4f65c3e14d -GSUP --> HLR: OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: 08010809710000000156f0260e979498b1f72d3e28c59fa2e72f9c201039fa2f4e3d523d8619a73b4f65c3e14d -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP}: state_chg to VLR_SUB_AS_NEEDS_AUTH_WAIT_SAI_RESYNC -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - gsup_tx_confirmed == 1 - auth_request_sent == 0 - lu_result_sent == 0 -- HLR replies with new tuples -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: 0a010809710000000156f0036220100f1feb1623e1bf626334e37ec448ac182104efde99da220814778c855c52373023108a90c769b7272f3bb7a1c1fbb1ea9349241043ffc1cf8c89a7fd6ab94bd8d6162cbf251002a83f62e9470000660d51afc75f169d27081df5f0b4f22b696e03622010ac21d34937b4e1142a2c757af294931921047818bfdc2208d175571f41f314a42310ff8edbceb6dd24799c77c3b9a6790c102410157c39022ca9d885a7f0766a7dfee44825108a43b91898e500002cf354c6f5d1f8c32708f748a7078f5018db -DVLR GSUP rx 211: 0a010809710000000156f0036220100f1feb1623e1bf626334e37ec448ac182104efde99da220814778c855c52373023108a90c769b7272f3bb7a1c1fbb1ea9349241043ffc1cf8c89a7fd6ab94bd8d6162cbf251002a83f62e9470000660d51afc75f169d27081df5f0b4f22b696e03622010ac21d34937b4e1142a2c757af294931921047818bfdc2208d175571f41f314a42310ff8edbceb6dd24799c77c3b9a6790c102410157c39022ca9d885a7f0766a7dfee44825108a43b91898e500002cf354c6f5d1f8c32708f748a7078f5018db -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_SAI_RESYNC}: Received Event VLR_AUTH_E_HLR_SAI_ACK -DVLR SUBSCR(IMSI:901700000010650) Received 2 auth tuples -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_NEEDS_AUTH_WAIT_SAI_RESYNC}: state_chg to VLR_SUB_AS_WAIT_RESP_RESYNC -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP_RESYNC}: got auth tuple: use_count=1 key_seq=0 -- sending UMTS Auth Request for IMSI:901700000010650: tuple use_count=1 key_seq=0 auth_types=0x3 and... -- ...rand=0f1feb1623e1bf626334e37ec448ac18 -- ...autn=02a83f62e9470000660d51afc75f169d -- ...expecting res=1df5f0b4f22b696e -DREF VLR subscr IMSI:901700000010650 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT: vlr_gsupc_read_cb() returns 0 - auth_request_sent == 1 - lu_result_sent == 0 -- MS sends Authen Response, VLR accepts and sends SecurityModeControl - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_AUTH_RESP -DREF IMSI:901700000010650: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_AUTH_RESP (0x5:0x14) -DMM IMSI:901700000010650: MM R99 AUTHENTICATION RESPONSE (res = 1df5f0b4f22b696e) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP_RESYNC}: Received Event VLR_AUTH_E_MS_AUTH_RESP -DVLR SUBSCR(IMSI:901700000010650) received res: 1d f5 f0 b4 f2 2b 69 6e -DVLR SUBSCR(IMSI:901700000010650) AUTH established UMTS security context -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP_RESYNC}: Authentication terminating with result VLR_AUTH_RES_PASSED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_WAIT_RESP_RESYNC}: state_chg to VLR_SUB_AS_AUTHENTICATED -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Freeing instance -DVLR VLR_Authenticate(901700000010650){VLR_SUB_AS_AUTHENTICATED}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: Received Event VLR_ULA_E_AUTH_RES -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: vlr_loc_upd_post_auth() -- sending SecurityModeControl for IMSI:901700000010650 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -DMM IMSI:901700000010650: bump: conn still being established (SUBSCR_CONN_S_NEW) -DREF IMSI:901700000010650: MSC conn use - 1 == 1 - cipher_mode_cmd_sent == 1 - lu_result_sent == 0 -- MS sends SecurityModeControl acceptance, VLR accepts and sends GSUP LU Req to HLR -DMM <- SECURITY MODE COMPLETE IMSI:901700000010650 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: Received Event VLR_ULA_E_CIPH_RES -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_post_ciph() -DIUCS IMSI:901700000010650: tx CommonID 901700000010650 -- Iu Common ID --RAN_UTRAN_IU--> MS (IMSI=901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: vlr_loc_upd_node_4() -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_CIPH}: state_chg to VLR_ULA_S_WAIT_HLR_UPD -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Allocated -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: Received Event UPD_HLR_VLR_E_START -DVLR GSUP tx: 04010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: 04010809710000000156f0 -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_INIT}: state_chg to UPD_HLR_VLR_S_WAIT_FOR_DATA - gsup_tx_confirmed == 1 - lu_result_sent == 0 -- HLR sends _INSERT_DATA_REQUEST, VLR responds with _INSERT_DATA_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: 10010809710000000156f00804032443f2 -DVLR GSUP rx 17: 10010809710000000156f00804032443f2 -DREF VLR subscr IMSI:901700000010650 usage increases to: 2 -DVLR IMSI:901700000010650 has MSISDN:42342 -DVLR GSUP tx: 12010809710000000156f0 -GSUP --> HLR: OSMO_GSUP_MSGT_INSERT_DATA_RESULT: 12010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 0 -- HLR also sends GSUP _UPDATE_LOCATION_RESULT -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: 06010809710000000156f0 -DVLR GSUP rx 11: 06010809710000000156f0 -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_HLR_LU_RES -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: Received Event UPD_HLR_VLR_E_UPD_LOC_ACK -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_WAIT_FOR_DATA}: state_chg to UPD_HLR_VLR_S_DONE -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Freeing instance -DVLR upd_hlr_vlr_fsm(901700000010650){UPD_HLR_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_UPD_HLR_COMPL -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_HLR_UPD}: state_chg to VLR_ULA_S_WAIT_LU_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Allocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: is child of vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: Received Event LU_COMPL_VLR_E_START -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_INIT}: state_chg to LU_COMPL_VLR_S_WAIT_SUB_PRES -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Allocated -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: is child of lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: Received Event SUB_PRES_VLR_E_START -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_INIT}: state_chg to SUB_PRES_VLR_S_DONE -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Removing from parent lu_compl_vlr_fsm(901700000010650) -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Freeing instance -DVLR sub_pres_vlr_fsm(901700000010650){SUB_PRES_VLR_S_DONE}: Deallocated -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: Received Event LU_COMPL_VLR_E_SUB_PRES_COMPL -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: lu_compl_vlr_new_tmsi() -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_SUB_PRES}: state_chg to LU_COMPL_VLR_S_WAIT_TMSI_CNF -- sending LU Accept for MSISDN:42342, with TMSI 0x03020100 -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -<-- GSUP rx OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT: vlr_gsupc_read_cb() returns 0 - lu_result_sent == 1 -- a LU Accept with a new TMSI was sent, waiting for TMSI Realloc Compl - llist_count(&net->subscr_conns) == 1 -msc_subscr_conn_is_accepted() == false - requests shall be thwarted -DRLL Dispatching 04.08 message GSM48_MT_CC_SETUP (0x3:0x5) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_CC_SETUP -DRLL Dispatching 04.08 message unknown 0x33 (0x5:0x33) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: unknown 0x33 -DRLL Dispatching 04.08 message GSM48_MT_RR_SYSINFO_1 (0x6:0x19) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_MT_RR_SYSINFO_1 -DRLL Dispatching 04.08 message GSM48_PDISC_SMS:0x01 (0x9:0x1) -DRLL subscr MSISDN:42342: Message not permitted for initial conn: GSM48_PDISC_SMS:0x01 -- even though the TMSI is not acked, we can already find the subscr with it -DREF VLR subscr MSISDN:42342 usage increases to: 2 - vsub != NULL == 1 - strcmp(vsub->imsi, imsi) == 0 - vsub->tmsi_new == 0x03020100 - vsub->tmsi == 0xffffffff -DREF VLR subscr MSISDN:42342 usage decreases to: 1 -- MS sends TMSI Realloc Complete - MSC <--RAN_UTRAN_IU-- MS: GSM48_MT_MM_TMSI_REALL_COMPL -DREF MSISDN:42342: MSC conn use + 1 == 2 -DRLL Dispatching 04.08 message GSM48_MT_MM_TMSI_REALL_COMPL (0x5:0x1b) -DMM TMSI Reallocation Completed. Subscriber: MSISDN:42342 -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_NEW_TMSI_ACK -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: Received Event LU_COMPL_VLR_E_NEW_TMSI_ACK -DREF VLR subscr MSISDN:42342 usage increases to: 2 -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_WAIT_TMSI_CNF}: state_chg to LU_COMPL_VLR_S_DONE -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: Received Event VLR_ULA_E_LU_COMPL_SUCCESS -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Removing from parent vlr_lu_fsm(901700000010650) -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Freeing instance -DVLR lu_compl_vlr_fsm(901700000010650){LU_COMPL_VLR_S_DONE}: Deallocated -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_WAIT_LU_COMPL}: state_chg to VLR_ULA_S_DONE -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: Received Event SUBSCR_CONN_E_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: SUBSCR_CONN_FROM_LU -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_NEW}: state_chg to SUBSCR_CONN_S_ACCEPTED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: Received Event SUBSCR_CONN_E_BUMP -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: bump: releasing conn -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_ACCEPTED}: state_chg to SUBSCR_CONN_S_RELEASED -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Terminating (cause = OSMO_FSM_TERM_REGULAR) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Terminating (cause = OSMO_FSM_TERM_PARENT) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Removing from parent Subscr_Conn(901700000010650) -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: fsm_lu_cleanup called with cause OSMO_FSM_TERM_PARENT -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Freeing instance -DVLR vlr_lu_fsm(901700000010650){VLR_ULA_S_DONE}: Deallocated -DMM msc_subscr_conn_close(vsub=MSISDN:42342, cause=2): no conn fsm, releasing directly without release event. -- Iu Release --RAN_UTRAN_IU--> MS -DREF MSISDN:42342: MSC conn use - 1 == 1 -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Freeing instance -DMM Subscr_Conn(901700000010650){SUBSCR_CONN_S_RELEASED}: Deallocated -DREF MSISDN:42342: MSC conn use - 1 == 0 -DRLL subscr MSISDN:42342: Freeing subscriber connection -DREF VLR subscr MSISDN:42342 usage decreases to: 1 - iu_release_sent == 1 -- LU was successful, and the conn has already been closed - llist_count(&net->subscr_conns) == 0 -DREF freeing VLR subscr MSISDN:42342 -===== test_umts_authen_resync_utran: SUCCESS - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - -full talloc report on 'msgb' (total 0 bytes in 1 blocks) -talloc_total_blocks(tall_bsc_ctx) == 9 - diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.ok b/tests/msc_vlr/msc_vlr_test_umts_authen.ok deleted file mode 100644 index a965a70ed..000000000 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.ok +++ /dev/null @@ -1 +0,0 @@ -Done diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c deleted file mode 100644 index 71f971352..000000000 --- a/tests/msc_vlr/msc_vlr_tests.c +++ /dev/null @@ -1,805 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <getopt.h> -#include <stdlib.h> - -#include <osmocom/core/logging.h> -#include <osmocom/core/utils.h> -#include <osmocom/core/msgb.h> -#include <osmocom/core/application.h> -#include <osmocom/gsm/protocol/gsm_04_11.h> -#include <osmocom/gsm/gsup.h> -#include <openbsc/gsup_client.h> -#include <openbsc/gsm_04_11.h> -#include <openbsc/bsc_subscriber.h> -#include <openbsc/debug.h> - -#if BUILD_IU -#include <openbsc/iucs_ranap.h> -#include <osmocom/ranap/iu_client.h> -#else -#include <openbsc/iu_dummy.h> -#endif - -#include "msc_vlr_tests.h" - -bool _log_lines = false; - -struct gsm_network *net = NULL; - -struct gsm_bts *the_bts; - -const char *gsup_tx_expected = NULL; -bool gsup_tx_confirmed; - -struct msgb *dtap_tx_expected = NULL; -bool dtap_tx_confirmed; - -enum result_sent lu_result_sent; -enum result_sent cm_service_result_sent; -bool auth_request_sent; -const char *auth_request_expect_rand; -const char *auth_request_expect_autn; -bool cipher_mode_cmd_sent; -bool cipher_mode_cmd_sent_with_imeisv; - -bool iu_release_expected = false; -bool iu_release_sent = false; -bool bssap_clear_expected = false; -bool bssap_clear_sent = false; - -struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex) -{ - struct msgb *msg = msgb_alloc(size, label); - unsigned char *rc; - msg->l2h = msg->head; - rc = msgb_put(msg, osmo_hexparse(hex, msg->head, msgb_tailroom(msg))); - OSMO_ASSERT(rc == msg->l2h); - return msg; -} - -const char *gh_type_name(struct gsm48_hdr *gh) -{ - return gsm48_pdisc_msgtype_name(gsm48_hdr_pdisc(gh), - gsm48_hdr_msg_type(gh)); -} - -const char *msg_type_name(struct msgb *msg) -{ - return gh_type_name((void*)msg->data); -} - -void dtap_expect_tx(const char *hex) -{ - /* Has the previously expected dtap been received? */ - OSMO_ASSERT(!dtap_tx_expected); - if (!hex) - return; - dtap_tx_expected = msgb_from_hex("dtap_tx_expected", 1024, hex); - dtap_tx_confirmed = false; -} - -void dtap_expect_tx_ussd(char *ussd_text) -{ - uint8_t ussd_enc[128]; - int len; - /* header */ - char ussd_msg_hex[128] = "8b2a1c27a225020100302002013b301b04010f0416"; - - log("expecting USSD:\n %s", ussd_text); - /* append encoded USSD text */ - gsm_7bit_encode_n_ussd(ussd_enc, sizeof(ussd_enc), ussd_text, - &len); - strncat(ussd_msg_hex, osmo_hexdump_nospc(ussd_enc, len), - sizeof(ussd_msg_hex) - strlen(ussd_msg_hex)); - dtap_expect_tx(ussd_msg_hex); -} - -int vlr_gsupc_read_cb(struct gsup_client *gsupc, struct msgb *msg); - -void gsup_rx(const char *rx_hex, const char *expect_tx_hex) -{ - int rc; - struct msgb *msg; - const char *label; - - gsup_expect_tx(expect_tx_hex); - - msg = msgb_from_hex("gsup", 1024, rx_hex); - label = osmo_gsup_message_type_name(msg->l2h[0]); - fprintf(stderr, "<-- GSUP rx %s: %s\n", label, - osmo_hexdump_nospc(msgb_l2(msg), msgb_l2len(msg))); - rc = vlr_gsupc_read_cb(net->vlr->gsup_client, msg); - fprintf(stderr, "<-- GSUP rx %s: vlr_gsupc_read_cb() returns %d\n", - label, rc); - if (expect_tx_hex) - OSMO_ASSERT(gsup_tx_confirmed); - talloc_free(msg); -} - -bool conn_exists(struct gsm_subscriber_connection *conn) -{ - struct gsm_subscriber_connection *c; - llist_for_each_entry(c, &net->subscr_conns, entry) { - if (c == conn) - return true; - } - return false; -} - -enum ran_type rx_from_ran = RAN_GERAN_A; - -struct gsm_subscriber_connection *conn_new(void) -{ - struct gsm_subscriber_connection *conn; - conn = msc_subscr_con_allocate(net); - conn->bts = the_bts; - conn->via_ran = rx_from_ran; - if (conn->via_ran == RAN_UTRAN_IU) { - struct ranap_ue_conn_ctx *ue_ctx = talloc_zero(conn, struct ranap_ue_conn_ctx); - *ue_ctx = (struct ranap_ue_conn_ctx){ - .conn_id = 42, - }; - conn->iu.ue_ctx = ue_ctx; - } - return conn; -} - -struct gsm_subscriber_connection *g_conn = NULL; - -void rx_from_ms(struct msgb *msg) -{ - int rc; - - struct gsm48_hdr *gh = msgb_l3(msg); - - log("MSC <--%s-- MS: %s", - ran_type_name(rx_from_ran), - gh_type_name(gh)); - - if (g_conn && !conn_exists(g_conn)) - g_conn = NULL; - - if (!g_conn) { - log("new conn"); - g_conn = conn_new(); - rc = msc_compl_l3(g_conn, msg, 23); - if (rc == BSC_API_CONN_POL_REJECT) { - msc_subscr_con_free(g_conn); - g_conn = NULL; - } - } else { - if ((gsm48_hdr_pdisc(gh) == GSM48_PDISC_RR) - && (gsm48_hdr_msg_type(gh) == GSM48_MT_RR_CIPH_M_COMPL)) - msc_cipher_mode_compl(g_conn, msg, 0); - else - msc_dtap(g_conn, 23, msg); - } - - if (g_conn && !conn_exists(g_conn)) - g_conn = NULL; -} - -void ms_sends_msg(const char *hex) -{ - struct msgb *msg; - - msg = msgb_from_hex("ms_sends_msg", 1024, hex); - msg->l1h = msg->l2h = msg->l3h = msg->data; - rx_from_ms(msg); - talloc_free(msg); -} - -int ms_sends_msg_fake(uint8_t pdisc, uint8_t msg_type) -{ - int rc; - struct msgb *msg; - struct gsm48_hdr *gh; - - msg = msgb_alloc(1024, "ms_sends_msg_fake"); - msg->l1h = msg->l2h = msg->l3h = msg->data; - - gh = (struct gsm48_hdr*)msgb_put(msg, sizeof(*gh)); - gh->proto_discr = pdisc; - gh->msg_type = msg_type; - /* some amount of data, whatever */ - msgb_put(msg, 123); - - rc = gsm0408_dispatch(g_conn, msg); - - talloc_free(msg); - return rc; -} - -void thwart_rx_non_initial_requests() -{ - log("requests shall be thwarted"); - OSMO_ASSERT(ms_sends_msg_fake(GSM48_PDISC_CC, GSM48_MT_CC_SETUP) == -EACCES); - OSMO_ASSERT(ms_sends_msg_fake(GSM48_PDISC_MM, 0x33 /* nonexistent */) == -EACCES); - OSMO_ASSERT(ms_sends_msg_fake(GSM48_PDISC_RR, GSM48_MT_RR_SYSINFO_1) == -EACCES); - OSMO_ASSERT(ms_sends_msg_fake(GSM48_PDISC_SMS, GSM411_MT_CP_DATA) == -EACCES); -} - -void send_sms(struct vlr_subscr *receiver, - struct vlr_subscr *sender, - char *str) -{ - struct gsm_sms *sms = sms_from_text(receiver, sender, 0, str); - gsm411_send_sms_subscr(receiver, sms); -} - -unsigned char next_rand_byte = 0; -/* override, requires '-Wl,--wrap=RAND_bytes' */ -int __real_RAND_bytes(unsigned char *buf, int num); -int __wrap_RAND_bytes(unsigned char *buf, int num) -{ - int i; - for (i = 0; i < num; i++) - buf[i] = next_rand_byte++; - return 1; -} - -/* override, requires '-Wl,--wrap=gsm340_gen_scts' */ -void __real_gsm340_gen_scts(uint8_t *scts, time_t time); -void __wrap_gsm340_gen_scts(uint8_t *scts, time_t time) -{ - /* Write fixed time bytes for deterministic test results */ - osmo_hexparse("07101000000000", scts, 7); -} - -const char *paging_expecting_imsi = NULL; -uint32_t paging_expecting_tmsi; -bool paging_sent; -bool paging_stopped; - -void paging_expect_imsi(const char *imsi) -{ - paging_expecting_imsi = imsi; - paging_expecting_tmsi = GSM_RESERVED_TMSI; -} - -void paging_expect_tmsi(uint32_t tmsi) -{ - paging_expecting_tmsi = tmsi; - paging_expecting_imsi = NULL; -} - -int _paging_sent(enum ran_type via_ran, const char *imsi, uint32_t tmsi, uint32_t lac) -{ - log("%s sends out paging request to IMSI %s, TMSI 0x%08x, LAC %u", - ran_type_name(via_ran), imsi, tmsi, lac); - OSMO_ASSERT(paging_expecting_imsi || (paging_expecting_tmsi != GSM_RESERVED_TMSI)); - if (paging_expecting_imsi) - VERBOSE_ASSERT(strcmp(paging_expecting_imsi, imsi), == 0, "%d"); - if (paging_expecting_tmsi != GSM_RESERVED_TMSI) { - VERBOSE_ASSERT(paging_expecting_tmsi, == tmsi, "0x%08x"); - } - paging_sent = true; - paging_stopped = false; - return 1; -} - -/* override, requires '-Wl,--wrap=ranap_iu_page_cs' */ -int __real_ranap_iu_page_cs(const char *imsi, const uint32_t *tmsi, uint16_t lac); -int __wrap_ranap_iu_page_cs(const char *imsi, const uint32_t *tmsi, uint16_t lac) -{ - return _paging_sent(RAN_UTRAN_IU, imsi, tmsi ? *tmsi : GSM_RESERVED_TMSI, lac); -} - -/* override, requires '-Wl,--wrap=a_iface_tx_paging' */ -int __real_a_iface_tx_paging(const char *imsi, uint32_t tmsi, uint16_t lac); -int __wrap_a_iface_tx_paging(const char *imsi, uint32_t tmsi, uint16_t lac) -{ - return _paging_sent(RAN_GERAN_A, imsi, tmsi, lac); -} - -/* override, requires '-Wl,--wrap=msc_stop_paging' */ -void __real_msc_stop_paging(struct vlr_subscr *vsub); -void __wrap_msc_stop_paging(struct vlr_subscr *vsub) -{ - paging_stopped = true; -} - -void clear_vlr() -{ - struct vlr_subscr *vsub, *n; - llist_for_each_entry_safe(vsub, n, &net->vlr->subscribers, list) { - vlr_subscr_free(vsub); - } - - net->authentication_required = false; - net->a5_encryption = VLR_CIPH_NONE; - net->vlr->cfg.check_imei_rqd = false; - net->vlr->cfg.assign_tmsi = false; - net->vlr->cfg.retrieve_imeisv_early = false; - net->vlr->cfg.retrieve_imeisv_ciphered = false; - - rx_from_ran = RAN_GERAN_A; - auth_request_sent = false; - auth_request_expect_rand = NULL; - auth_request_expect_autn = NULL; - - next_rand_byte = 0; - - iu_release_expected = false; - iu_release_sent = false; - bssap_clear_expected = false; - bssap_clear_sent = false; - - osmo_gettimeofday_override = false; -} - -static struct log_info_cat test_categories[] = { - [DMSC] = { - .name = "DMSC", - .description = "Mobile Switching Center", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DRLL] = { - .name = "DRLL", - .description = "A-bis Radio Link Layer (RLL)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DMM] = { - .name = "DMM", - .description = "Layer3 Mobility Management (MM)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DRR] = { - .name = "DRR", - .description = "Layer3 Radio Resource (RR)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DCC] = { - .name = "DCC", - .description = "Layer3 Call Control (CC)", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, - [DMM] = { - .name = "DMM", - .description = "Layer3 Mobility Management (MM)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DVLR] = { - .name = "DVLR", - .description = "Visitor Location Register", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DREF] = { - .name = "DREF", - .description = "Reference Counting", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DPAG] = { - .name = "DPAG", - .description = "Paging Subsystem", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DIUCS] = { - .name = "DIUCS", - .description = "Iu-CS Protocol", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -static struct log_info info = { - .cat = test_categories, - .num_cat = ARRAY_SIZE(test_categories), -}; - -extern void *tall_bsc_ctx; - -int fake_mncc_recv(struct gsm_network *net, struct msgb *msg) -{ - fprintf(stderr, "rx MNCC\n"); - return 0; -} - -/* override, requires '-Wl,--wrap=gsup_client_create' */ -struct gsup_client * -__real_gsup_client_create(const char *ip_addr, unsigned int tcp_port, - gsup_client_read_cb_t read_cb, - struct oap_client_config *oap_config); -struct gsup_client * -__wrap_gsup_client_create(const char *ip_addr, unsigned int tcp_port, - gsup_client_read_cb_t read_cb, - struct oap_client_config *oap_config) -{ - struct gsup_client *gsupc; - gsupc = talloc_zero(tall_bsc_ctx, struct gsup_client); - OSMO_ASSERT(gsupc); - return gsupc; -} - -/* override, requires '-Wl,--wrap=gsup_client_send' */ -int __real_gsup_client_send(struct gsup_client *gsupc, struct msgb *msg); -int __wrap_gsup_client_send(struct gsup_client *gsupc, struct msgb *msg) -{ - const char *is = osmo_hexdump_nospc(msg->data, msg->len); - fprintf(stderr, "GSUP --> HLR: %s: %s\n", - osmo_gsup_message_type_name(msg->data[0]), is); - - OSMO_ASSERT(gsup_tx_expected); - if (strcmp(gsup_tx_expected, is)) { - fprintf(stderr, "Mismatch! Expected:\n%s\n", gsup_tx_expected); - abort(); - } - - talloc_free(msg); - gsup_tx_confirmed = true; - gsup_tx_expected = NULL; - return 0; -} - -int _validate_dtap(struct msgb *msg, enum ran_type to_ran) -{ - btw("DTAP --%s--> MS: %s: %s", - ran_type_name(to_ran), msg_type_name(msg), - osmo_hexdump_nospc(msg->data, msg->len)); - - OSMO_ASSERT(dtap_tx_expected); - if (msg->len != dtap_tx_expected->len - || memcmp(msg->data, dtap_tx_expected->data, msg->len)) { - fprintf(stderr, "Mismatch! Expected:\n%s\n", - osmo_hexdump_nospc(dtap_tx_expected->data, - dtap_tx_expected->len)); - abort(); - } - - btw("DTAP matches expected message"); - - talloc_free(msg); - dtap_tx_confirmed = true; - talloc_free(dtap_tx_expected); - dtap_tx_expected = NULL; - return 0; -} - -/* override, requires '-Wl,--wrap=ranap_iu_tx' */ -int __real_ranap_iu_tx(struct msgb *msg, uint8_t sapi); -int __wrap_ranap_iu_tx(struct msgb *msg, uint8_t sapi) -{ - return _validate_dtap(msg, RAN_UTRAN_IU); -} - -/* override, requires '-Wl,--wrap=ranap_iu_tx_release' */ -int __real_ranap_iu_tx_release(struct ranap_ue_conn_ctx *ctx, const struct RANAP_Cause *cause); -int __wrap_ranap_iu_tx_release(struct ranap_ue_conn_ctx *ctx, const struct RANAP_Cause *cause) -{ - btw("Iu Release --%s--> MS", ran_type_name(RAN_UTRAN_IU)); - OSMO_ASSERT(iu_release_expected); - iu_release_expected = false; - iu_release_sent = true; - return 0; -} - -/* override, requires '-Wl,--wrap=iu_tx_common_id' */ -int __real_ranap_iu_tx_common_id(struct ranap_ue_conn_ctx *ue_ctx, const char *imsi); -int __wrap_ranap_iu_tx_common_id(struct ranap_ue_conn_ctx *ue_ctx, const char *imsi) -{ - btw("Iu Common ID --%s--> MS (IMSI=%s)", ran_type_name(RAN_UTRAN_IU), imsi); - return 0; -} - -/* override, requires '-Wl,--wrap=a_iface_tx_dtap' */ -int __real_a_iface_tx_dtap(struct msgb *msg); -int __wrap_a_iface_tx_dtap(struct msgb *msg) -{ - return _validate_dtap(msg, RAN_GERAN_A); -} - -/* override, requires '-Wl,--wrap=a_iface_tx_clear_cmd' */ -int __real_a_iface_tx_clear_cmd(struct gsm_subscriber_connection *conn); -int __wrap_a_iface_tx_clear_cmd(struct gsm_subscriber_connection *conn) -{ - btw("BSSAP Clear --%s--> MS", ran_type_name(RAN_GERAN_A)); - OSMO_ASSERT(bssap_clear_expected); - bssap_clear_expected = false; - bssap_clear_sent = true; - return 0; -} - -static int fake_vlr_tx_lu_acc(void *msc_conn_ref, uint32_t send_tmsi) -{ - struct gsm_subscriber_connection *conn = msc_conn_ref; - if (send_tmsi == GSM_RESERVED_TMSI) - btw("sending LU Accept for %s", vlr_subscr_name(conn->vsub)); - else - btw("sending LU Accept for %s, with TMSI 0x%08x", - vlr_subscr_name(conn->vsub), send_tmsi); - lu_result_sent |= RES_ACCEPT; - return 0; -} - -static int fake_vlr_tx_lu_rej(void *msc_conn_ref, uint8_t cause) -{ - struct gsm_subscriber_connection *conn = msc_conn_ref; - btw("sending LU Reject for %s, cause %u", vlr_subscr_name(conn->vsub), cause); - lu_result_sent |= RES_REJECT; - return 0; -} - -static int fake_vlr_tx_cm_serv_acc(void *msc_conn_ref) -{ - struct gsm_subscriber_connection *conn = msc_conn_ref; - btw("sending CM Service Accept for %s", vlr_subscr_name(conn->vsub)); - cm_service_result_sent |= RES_ACCEPT; - return 0; -} - -static int fake_vlr_tx_cm_serv_rej(void *msc_conn_ref, - enum vlr_proc_arq_result result) -{ - struct gsm_subscriber_connection *conn = msc_conn_ref; - btw("sending CM Service Reject for %s, result %s", - vlr_subscr_name(conn->vsub), - vlr_proc_arq_result_name(result)); - cm_service_result_sent |= RES_REJECT; - return 0; -} - -static int fake_vlr_tx_auth_req(void *msc_conn_ref, struct gsm_auth_tuple *at, - bool send_autn) -{ - struct gsm_subscriber_connection *conn = msc_conn_ref; - char *hex; - bool ok = true; - btw("sending %s Auth Request for %s: tuple use_count=%d key_seq=%d auth_types=0x%x and...", - send_autn? "UMTS" : "GSM", vlr_subscr_name(conn->vsub), - at->use_count, at->key_seq, at->vec.auth_types); - - hex = osmo_hexdump_nospc((void*)&at->vec.rand, sizeof(at->vec.rand)); - btw("...rand=%s", hex); - if (!auth_request_expect_rand - || strcmp(hex, auth_request_expect_rand) != 0) { - ok = false; - log("FAILURE: expected rand=%s", - auth_request_expect_rand ? auth_request_expect_rand : "-"); - } - - if (send_autn) { - hex = osmo_hexdump_nospc((void*)&at->vec.autn, sizeof(at->vec.autn)); - btw("...autn=%s", hex); - if (!auth_request_expect_autn - || strcmp(hex, auth_request_expect_autn) != 0) { - ok = false; - log("FAILURE: expected autn=%s", - auth_request_expect_autn ? auth_request_expect_autn : "-"); - } - } else if (auth_request_expect_autn) { - ok = false; - log("FAILURE: no AUTN sent, expected AUTN = %s", - auth_request_expect_autn); - } - - if (send_autn) - btw("...expecting res=%s", - osmo_hexdump_nospc((void*)&at->vec.res, at->vec.res_len)); - else - btw("...expecting sres=%s", - osmo_hexdump_nospc((void*)&at->vec.sres, sizeof(at->vec.sres))); - - auth_request_sent = ok; - return 0; -} - -static int fake_vlr_tx_auth_rej(void *msc_conn_ref) -{ - struct gsm_subscriber_connection *conn = msc_conn_ref; - btw("sending Auth Reject for %s", vlr_subscr_name(conn->vsub)); - return 0; -} - -static int fake_vlr_tx_ciph_mode_cmd(void *msc_conn_ref, enum vlr_ciph ciph, - bool retrieve_imeisv) -{ - /* FIXME: we actually would like to see the message bytes checked here, - * not possible while msc_vlr_set_ciph_mode() calls - * gsm0808_cipher_mode() directly. When the MSCSPLIT is ready, check - * the tx bytes in the sense of dtap_expect_tx() above. */ - struct gsm_subscriber_connection *conn = msc_conn_ref; - switch (conn->via_ran) { - case RAN_GERAN_A: - btw("sending Ciphering Mode Command for %s: cipher=%s kc=%s" - " retrieve_imeisv=%d", - vlr_subscr_name(conn->vsub), - vlr_ciph_name(conn->network->a5_encryption), - osmo_hexdump_nospc(conn->vsub->last_tuple->vec.kc, 8), - retrieve_imeisv); - break; - case RAN_UTRAN_IU: - btw("sending SecurityModeControl for %s", - vlr_subscr_name(conn->vsub)); - break; - default: - btw("UNKNOWN RAN TYPE %d", conn->via_ran); - OSMO_ASSERT(false); - return -1; - } - cipher_mode_cmd_sent = true; - cipher_mode_cmd_sent_with_imeisv = retrieve_imeisv; - return 0; -} - -void ms_sends_security_mode_complete() -{ - OSMO_ASSERT(g_conn); - OSMO_ASSERT(g_conn->via_ran == RAN_UTRAN_IU); - OSMO_ASSERT(g_conn->iu.ue_ctx); - msc_rx_sec_mode_compl(g_conn); -} - -const struct timeval fake_time_start_time = { 123, 456 }; - -void fake_time_start() -{ - osmo_gettimeofday_override_time = fake_time_start_time; - osmo_gettimeofday_override = true; - fake_time_passes(0, 0); -} - -void check_talloc(void *msgb_ctx, void *tall_bsc_ctx, int expected_blocks) -{ - talloc_report_full(msgb_ctx, stderr); - fprintf(stderr, "talloc_total_blocks(tall_bsc_ctx) == %zu\n", - talloc_total_blocks(tall_bsc_ctx)); - if (talloc_total_blocks(tall_bsc_ctx) != expected_blocks) - talloc_report_full(tall_bsc_ctx, stderr); - fprintf(stderr, "\n"); -} - -static struct { - bool verbose; - int run_test_nr; -} cmdline_opts = { - .verbose = false, - .run_test_nr = -1, -}; - -static void print_help(const char *program) -{ - printf("Usage:\n" - " %s [-v] [N [N...]]\n" - "Options:\n" - " -h --help show this text.\n" - " -v --verbose print source file and line numbers\n" - " N run only the Nth test (first test is N=1)\n", - program - ); -} - -static void handle_options(int argc, char **argv) -{ - while (1) { - int option_index = 0, c; - static struct option long_options[] = { - {"help", 0, 0, 'h'}, - {"verbose", 1, 0, 'v'}, - {0, 0, 0, 0} - }; - - c = getopt_long(argc, argv, "hv", - long_options, &option_index); - if (c == -1) - break; - - switch (c) { - case 'h': - print_help(argv[0]); - exit(0); - case 'v': - cmdline_opts.verbose = true; - break; - default: - /* catch unknown options *as well as* missing arguments. */ - fprintf(stderr, "Error in command line options. Exiting.\n"); - exit(-1); - break; - } - } -} - -void *msgb_ctx = NULL; - -void run_tests(int nr) -{ - int test_nr; - nr --; /* arg's first test is 1, in here it's 0 */ - for (test_nr = 0; msc_vlr_tests[test_nr]; test_nr ++) { - if (nr >= 0 && test_nr != nr) - continue; - - if (cmdline_opts.verbose) - fprintf(stderr, "(test nr %d)\n", test_nr + 1); - - msc_vlr_tests[test_nr](); - - if (cmdline_opts.verbose) - fprintf(stderr, "(test nr %d)\n", test_nr + 1); - - check_talloc(msgb_ctx, tall_bsc_ctx, 9); - } while(0); -} - -int main(int argc, char **argv) -{ - handle_options(argc, argv); - - tall_bsc_ctx = talloc_named_const(NULL, 0, "subscr_conn_test_ctx"); - msgb_ctx = msgb_talloc_ctx_init(tall_bsc_ctx, 0); - osmo_init_logging(&info); - - _log_lines = cmdline_opts.verbose; - - OSMO_ASSERT(osmo_stderr_target); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_timestamp(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, _log_lines? 1 : 0); - log_set_print_category(osmo_stderr_target, 1); - - net = gsm_network_init(tall_bsc_ctx, 1, 1, fake_mncc_recv); - net->gsup_server_addr_str = talloc_strdup(net, "no_gsup_server"); - net->gsup_server_port = 0; - - osmo_fsm_log_addr(false); - OSMO_ASSERT(msc_vlr_alloc(net) == 0); - OSMO_ASSERT(msc_vlr_start(net) == 0); - OSMO_ASSERT(net->vlr); - OSMO_ASSERT(net->vlr->gsup_client); - msc_subscr_conn_init(); - - net->vlr->ops.tx_lu_acc = fake_vlr_tx_lu_acc; - net->vlr->ops.tx_lu_rej = fake_vlr_tx_lu_rej; - net->vlr->ops.tx_cm_serv_acc = fake_vlr_tx_cm_serv_acc; - net->vlr->ops.tx_cm_serv_rej = fake_vlr_tx_cm_serv_rej; - net->vlr->ops.tx_auth_req = fake_vlr_tx_auth_req; - net->vlr->ops.tx_auth_rej = fake_vlr_tx_auth_rej; - net->vlr->ops.set_ciph_mode = fake_vlr_tx_ciph_mode_cmd; - - clear_vlr(); - - if (optind >= argc) - run_tests(-1); - else { - int arg; - long int nr; - for (arg = optind; arg < argc; arg++) { - nr = strtol(argv[arg], NULL, 10); - if (errno) { - fprintf(stderr, "Invalid argument: %s\n", - argv[arg]); - exit(1); - } - - run_tests(nr); - } - } - - printf("Done\n"); - - talloc_free(the_bts); - - check_talloc(msgb_ctx, tall_bsc_ctx, 9); - return 0; -} diff --git a/tests/msc_vlr/msc_vlr_tests.h b/tests/msc_vlr/msc_vlr_tests.h deleted file mode 100644 index c2c5a58a7..000000000 --- a/tests/msc_vlr/msc_vlr_tests.h +++ /dev/null @@ -1,186 +0,0 @@ -/* Osmocom MSC+VLR end-to-end tests */ - -/* (C) 2017 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#pragma once - -#include <stdbool.h> -#include <stdio.h> - -#include <openbsc/gsm_data.h> -#include <openbsc/osmo_msc.h> -#include <openbsc/vlr.h> - -extern bool _log_lines; -#define _log(fmt, args...) do { \ - if (_log_lines) \ - fprintf(stderr, " %4d:%s: " fmt "\n", \ - __LINE__, __FILE__, ## args ); \ - else \ - fprintf(stderr, fmt "\n", ## args ); \ - } while (false) - -/* btw means "by the way", the test tells the log what's happening. - * BTW() marks a larger section, btw() is the usual logging. */ -#define BTW(fmt, args...) _log("---\n- " fmt, ## args ) -#define btw(fmt, args...) _log("- " fmt, ## args ) -#define log(fmt, args...) _log(" " fmt, ## args ) - -#define comment_start() fprintf(stderr, "===== %s\n", __func__); -#define comment_end() fprintf(stderr, "===== %s: SUCCESS\n\n", __func__); - -extern struct gsm_subscriber_connection *g_conn; -extern struct gsm_network *net; -extern struct gsm_bts *the_bts; -extern void *msgb_ctx; - -extern enum ran_type rx_from_ran; - -extern const char *gsup_tx_expected; -extern bool gsup_tx_confirmed; - -extern struct msgb *dtap_tx_expected; -extern bool dtap_tx_confirmed; - -enum result_sent { - RES_NONE = 0, - RES_ACCEPT = 1, - RES_REJECT = 2, -}; -extern enum result_sent lu_result_sent; -extern enum result_sent cm_service_result_sent; - -extern bool auth_request_sent; -extern const char *auth_request_expect_rand; -extern const char *auth_request_expect_autn; - -extern bool cipher_mode_cmd_sent; -extern bool cipher_mode_cmd_sent_with_imeisv; - -extern bool paging_sent; -extern bool paging_stopped; - -extern bool iu_release_expected; -extern bool iu_release_sent; -extern bool bssap_clear_expected; -extern bool bssap_clear_sent; - -static inline void expect_iu_release() -{ - iu_release_expected = true; - iu_release_sent = false; -} - -static inline void expect_bssap_clear() -{ - bssap_clear_expected = true; - bssap_clear_sent = false; -} - -static inline void expect_release_clear(enum ran_type via_ran) -{ - switch (via_ran) { - case RAN_GERAN_A: - expect_bssap_clear(); - return; - case RAN_UTRAN_IU: - expect_iu_release(); - return; - default: - OSMO_ASSERT(false); - break; - } -} - -struct msc_vlr_test_cmdline_opts { - bool verbose; - int run_test_nr; -}; - -typedef void (* msc_vlr_test_func_t )(void); -extern msc_vlr_test_func_t msc_vlr_tests[]; - -struct msgb *msgb_from_hex(const char *label, uint16_t size, const char *hex); - -void clear_vlr(); -bool conn_exists(struct gsm_subscriber_connection *conn); - -void dtap_expect_tx(const char *hex); -void dtap_expect_tx_ussd(char *ussd_text); -void paging_expect_imsi(const char *imsi); -void paging_expect_tmsi(uint32_t tmsi); - -void ms_sends_msg(const char *hex); -void ms_sends_security_mode_complete(); -void gsup_rx(const char *rx_hex, const char *expect_tx_hex); -void send_sms(struct vlr_subscr *receiver, - struct vlr_subscr *sender, - char *str); - -void thwart_rx_non_initial_requests(); - -void check_talloc(void *msgb_ctx, void *tall_bsc_ctx, int expected_blocks); - -#define EXPECT_ACCEPTED(expect_accepted) do { \ - if (g_conn) \ - OSMO_ASSERT(conn_exists(g_conn)); \ - bool accepted = msc_subscr_conn_is_accepted(g_conn); \ - fprintf(stderr, "msc_subscr_conn_is_accepted() == %s\n", \ - accepted ? "true" : "false"); \ - OSMO_ASSERT(accepted == expect_accepted); \ - } while (false) - -#define VERBOSE_ASSERT(val, expect_op, fmt) \ - do { \ - log(#val " == " fmt, (val)); \ - OSMO_ASSERT((val) expect_op); \ - } while (0); - -#define EXPECT_CONN_COUNT(N) VERBOSE_ASSERT(llist_count(&net->subscr_conns), == N, "%d") - -#define gsup_expect_tx(hex) do \ -{ \ - if (gsup_tx_expected) { \ - log("Previous expected GSUP tx was not confirmed!"); \ - OSMO_ASSERT(!gsup_tx_expected); \ - } \ - if (!hex) \ - break; \ - gsup_tx_expected = hex; \ - gsup_tx_confirmed = false; \ -} while (0) - -void fake_time_start(); - -/* as macro to get the test file's source line number */ -#define fake_time_passes(secs, usecs) do \ -{ \ - struct timeval diff; \ - osmo_gettimeofday_override_add(secs, usecs); \ - timersub(&osmo_gettimeofday_override_time, &fake_time_start_time, &diff); \ - btw("Total time passed: %d.%06d s", \ - (int)diff.tv_sec, (int)diff.tv_usec); \ - osmo_timers_prepare(); \ - osmo_timers_update(); \ -} while (0) - -extern const struct timeval fake_time_start_time; diff --git a/tests/nanobts_omlattr/Makefile.am b/tests/nanobts_omlattr/Makefile.am index b03d50cc1..050d7cd73 100644 --- a/tests/nanobts_omlattr/Makefile.am +++ b/tests/nanobts_omlattr/Makefile.am @@ -24,7 +24,6 @@ nanobts_omlattr_test_SOURCES = \ nanobts_omlattr_test_LDADD = \ $(top_builddir)/src/libbsc/libbsc.a \ - $(top_builddir)/src/libmsc/libmsc.a \ $(top_builddir)/src/libtrau/libtrau.a \ $(top_builddir)/src/libcommon/libcommon.a \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c index ee138b8f7..96d56efab 100644 --- a/tests/nanobts_omlattr/nanobts_omlattr_test.c +++ b/tests/nanobts_omlattr/nanobts_omlattr_test.c @@ -19,7 +19,6 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include <openbsc/gprs_llc_xid.h> #include <openbsc/debug.h> #include <openbsc/gsm_data.h> #include <openbsc/bts_ipaccess_nanobts_omlattr.h> diff --git a/tests/oap/Makefile.am b/tests/oap/Makefile.am deleted file mode 100644 index 1bb672d44..000000000 --- a/tests/oap/Makefile.am +++ /dev/null @@ -1,36 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - oap_client_test.ok \ - oap_client_test.err \ - $(NULL) - -if HAVE_LIBGTP -if HAVE_LIBCARES -noinst_PROGRAMS = \ - oap_client_test \ - $(NULL) -endif -endif - -oap_client_test_SOURCES = \ - oap_client_test.c \ - $(NULL) - -oap_client_test_LDADD = \ - $(top_builddir)/src/gprs/gprs_utils.o \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - -lrt - diff --git a/tests/oap/oap_client_test.c b/tests/oap/oap_client_test.c deleted file mode 100644 index e6501cb6d..000000000 --- a/tests/oap/oap_client_test.c +++ /dev/null @@ -1,270 +0,0 @@ -/* Test Osmocom Authentication Protocol */ -/* - * (C) 2015 by sysmocom s.f.m.c. GmbH - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <osmocom/core/application.h> -#include <osmocom/gsm/oap.h> - -#include <openbsc/debug.h> -#include <openbsc/oap_client.h> - -#include <stdio.h> -#include <string.h> - -static void test_oap_api(void) -{ - printf("Testing OAP API\n"); - - struct oap_client_config _config; - struct oap_client_config *config = &_config; - - struct oap_client_state _state; - struct oap_client_state *state = &_state; - - struct osmo_oap_message oap_rx; - struct msgb *msg_rx; - - struct osmo_oap_message oap_tx; - struct msgb *msg_tx; - - memset(config, 0, sizeof(*config)); - memset(state, 0, sizeof(*state)); - - OSMO_ASSERT(osmo_hexparse("0102030405060708090a0b0c0d0e0f10", config->secret_k, 16) == 16); - OSMO_ASSERT(osmo_hexparse("1112131415161718191a1b1c1d1e1f20", config->secret_opc, 16) == 16); - - fprintf(stderr, "- make sure filling with zeros means uninitialized\n"); - OSMO_ASSERT(state->state == OAP_UNINITIALIZED); - - fprintf(stderr, "- reject messages in uninitialized state\n"); - memset(&oap_rx, 0, sizeof(oap_rx)); - state->client_id = 1; - oap_rx.message_type = OAP_MSGT_REGISTER_ERROR; - msg_rx = oap_client_encoded(&oap_rx); - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) < 0); - OSMO_ASSERT(state->state == OAP_UNINITIALIZED); - msgb_free(msg_rx); - OSMO_ASSERT(!msg_tx); - - fprintf(stderr, "- NULL config should disable\n"); - OSMO_ASSERT( oap_client_init(NULL, state) == 0 ); - OSMO_ASSERT(state->state == OAP_DISABLED); - - fprintf(stderr, "- reject messages in disabled state\n"); - memset(state, 0, sizeof(*state)); - memset(&oap_rx, 0, sizeof(oap_rx)); - state->state = OAP_DISABLED; - state->client_id = 1; - oap_rx.message_type = OAP_MSGT_REGISTER_ERROR; - msg_rx = oap_client_encoded(&oap_rx); - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) < 0); - OSMO_ASSERT(state->state == OAP_DISABLED); - msgb_free(msg_rx); - OSMO_ASSERT(!msg_tx); - - fprintf(stderr, "- invalid client_id and shared secret\n"); - memset(state, 0, sizeof(*state)); - config->client_id = 0; - config->secret_k_present = 0; - config->secret_opc_present = 0; - OSMO_ASSERT( oap_client_init(config, state) == 0 ); - OSMO_ASSERT(state->state == OAP_DISABLED); - - fprintf(stderr, "- reset state\n"); - memset(state, 0, sizeof(*state)); - - fprintf(stderr, "- only client_id is invalid\n"); - config->client_id = 0; - config->secret_k_present = 1; - config->secret_opc_present = 1; - OSMO_ASSERT( oap_client_init(config, state) == 0 ); - OSMO_ASSERT(state->state == OAP_DISABLED); - - memset(state, 0, sizeof(*state)); - - fprintf(stderr, "- valid id, but omitted shared_secret (1/2)\n"); - config->client_id = 12345; - config->secret_k_present = 0; - config->secret_opc_present = 1; - OSMO_ASSERT( oap_client_init(config, state) == 0 ); - OSMO_ASSERT(state->state == OAP_DISABLED); - - memset(state, 0, sizeof(*state)); - - fprintf(stderr, "- valid id, but omitted shared_secret (2/2)\n"); - config->client_id = 12345; - config->secret_k_present = 1; - config->secret_opc_present = 0; - OSMO_ASSERT( oap_client_init(config, state) == 0 ); - OSMO_ASSERT(state->state == OAP_DISABLED); - - memset(state, 0, sizeof(*state)); - - - fprintf(stderr, "- mint configuration\n"); - config->client_id = 12345; - config->secret_k_present = 1; - config->secret_opc_present = 1; - /*config->secret_* buffers are still set from the top */ - OSMO_ASSERT( oap_client_init(config, state) == 0 ); - OSMO_ASSERT(state->state == OAP_INITIALIZED); - - - fprintf(stderr, "- Missing challenge data\n"); - memset(&oap_rx, 0, sizeof(oap_rx)); - oap_rx.message_type = OAP_MSGT_CHALLENGE_REQUEST; - oap_rx.rand_present = 0; - oap_rx.autn_present = 0; - msg_rx = oap_client_encoded(&oap_rx); - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == -2); - msgb_free(msg_rx); - OSMO_ASSERT(!msg_tx); - - fprintf(stderr, "- AUTN missing\n"); - osmo_hexparse("0102030405060708090a0b0c0d0e0f10", - oap_rx.rand, 16); - oap_rx.rand_present = 1; - msg_rx = oap_client_encoded(&oap_rx); - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == -2); - msgb_free(msg_rx); - OSMO_ASSERT(!msg_tx); - - fprintf(stderr, "- RAND missing\n"); - oap_rx.rand_present = 0; - osmo_hexparse("cec4e3848a33000086781158ca40f136", - oap_rx.autn, 16); - oap_rx.autn_present = 1; - msg_rx = oap_client_encoded(&oap_rx); - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == -2); - msgb_free(msg_rx); - OSMO_ASSERT(!msg_tx); - - fprintf(stderr, "- wrong autn (by one bit)\n"); - osmo_hexparse("0102030405060708090a0b0c0d0e0f10", - oap_rx.rand, 16); - osmo_hexparse("dec4e3848a33000086781158ca40f136", - oap_rx.autn, 16); - oap_rx.rand_present = 1; - oap_rx.autn_present = 1; - msg_rx = oap_client_encoded(&oap_rx); - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == -2); - msgb_free(msg_rx); - OSMO_ASSERT(!msg_tx); - - fprintf(stderr, "- all data correct\n"); - osmo_hexparse("cec4e3848a33000086781158ca40f136", - oap_rx.autn, 16); - msg_rx = oap_client_encoded(&oap_rx); - - fprintf(stderr, "- but refuse to evaluate in uninitialized state\n"); - OSMO_ASSERT(state->state == OAP_INITIALIZED); - - state->state = OAP_UNINITIALIZED; - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) < 0); - OSMO_ASSERT(!msg_tx); - - state->state = OAP_DISABLED; - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) < 0); - OSMO_ASSERT(!msg_tx); - - state->state = OAP_INITIALIZED; - - fprintf(stderr, "- now everything is correct\n"); - /* a successful return value here indicates correct autn */ - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == 0); - msgb_free(msg_rx); - - fprintf(stderr, "- Expect the challenge response in msg_tx\n"); - OSMO_ASSERT(msg_tx); - OSMO_ASSERT(osmo_oap_decode(&oap_tx, msg_tx->data, msg_tx->len) == 0); - OSMO_ASSERT(oap_tx.message_type == OAP_MSGT_CHALLENGE_RESULT); - OSMO_ASSERT(strcmp("e2d05b598c61d9ba", - osmo_hexdump_nospc(oap_tx.xres, sizeof(oap_tx.xres))) - == 0); - OSMO_ASSERT(state->state == OAP_SENT_CHALLENGE_RESULT); - msgb_free(msg_tx); - msg_tx = 0; - - struct oap_client_state saved_state = _state; - - fprintf(stderr, "- Receive registration error for the first time.\n"); - - memset(&oap_rx, 0, sizeof(oap_rx)); - oap_rx.message_type = OAP_MSGT_REGISTER_ERROR; - oap_rx.cause = GMM_CAUSE_PROTO_ERR_UNSPEC; - msg_rx = oap_client_encoded(&oap_rx); - - OSMO_ASSERT(state->registration_failures == 0); - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == 0); - OSMO_ASSERT(state->registration_failures == 1); - OSMO_ASSERT(msg_tx); - OSMO_ASSERT(osmo_oap_decode(&oap_tx, msg_tx->data, msg_tx->len) == 0); - OSMO_ASSERT(oap_tx.message_type == OAP_MSGT_REGISTER_REQUEST); - OSMO_ASSERT(state->state == OAP_REQUESTED_CHALLENGE); - msgb_free(msg_tx); - msg_tx = 0; - - fprintf(stderr, "- Receive registration error for the Nth time.\n"); - state->registration_failures = 999; - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == -11); - OSMO_ASSERT(!msg_tx); - OSMO_ASSERT(state->state == OAP_INITIALIZED); - msgb_free(msg_tx); - msg_tx = 0; - - msgb_free(msg_rx); - - fprintf(stderr, "- Registration success\n"); - - _state = saved_state; - memset(&oap_rx, 0, sizeof(oap_rx)); - oap_rx.message_type = OAP_MSGT_REGISTER_RESULT; - msg_rx = oap_client_encoded(&oap_rx); - OSMO_ASSERT(oap_client_handle(state, msg_rx, &msg_tx) == 0); - OSMO_ASSERT(!msg_tx); - OSMO_ASSERT(state->state == OAP_REGISTERED); - msgb_free(msg_rx); -} - -static struct log_info_cat oap_client_test_categories[] = { -}; - -static struct log_info info = { - .cat = oap_client_test_categories, - .num_cat = ARRAY_SIZE(oap_client_test_categories), -}; - -int main(int argc, char **argv) -{ - msgb_talloc_ctx_init(NULL, 0); - osmo_init_logging(&info); - - OSMO_ASSERT(osmo_stderr_target); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_timestamp(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, 0); - log_set_print_category(osmo_stderr_target, 1); - log_parse_category_mask(osmo_stderr_target, "DLOAP,1"); - - test_oap_api(); - printf("Done\n"); - - return 0; -} - diff --git a/tests/oap/oap_client_test.err b/tests/oap/oap_client_test.err deleted file mode 100644 index 62ddc9efa..000000000 --- a/tests/oap/oap_client_test.err +++ /dev/null @@ -1,35 +0,0 @@ -- make sure filling with zeros means uninitialized -- reject messages in uninitialized state -DLOAP Received OAP message 5, but the OAP client is not initialized -- NULL config should disable -- reject messages in disabled state -DLOAP Received OAP message 5, but the OAP client is disabled -- invalid client_id and shared secret -- reset state -- only client_id is invalid -- valid id, but omitted shared_secret (1/2) -DLOAP OAP: client ID set, but secret K missing. -- valid id, but omitted shared_secret (2/2) -DLOAP OAP: client ID set, but secret OPC missing. -- mint configuration -- Missing challenge data -DLOAP OAP challenge incomplete (rand_present: 0, autn_present: 0) -- AUTN missing -DLOAP OAP challenge incomplete (rand_present: 1, autn_present: 0) -- RAND missing -DLOAP OAP challenge incomplete (rand_present: 0, autn_present: 1) -- wrong autn (by one bit) -DLOAP OAP: AUTN mismatch! -DLOAP OAP: AUTN from server: dec4e3848a33000086781158ca40f136 -DLOAP OAP: AUTN expected: cec4e3848a33000086781158ca40f136 -- all data correct -- but refuse to evaluate in uninitialized state -DLOAP Received OAP message 8, but the OAP client is not initialized -DLOAP Received OAP message 8, but the OAP client is disabled -- now everything is correct -- Expect the challenge response in msg_tx -- Receive registration error for the first time. -DLOAP OAP registration failed -- Receive registration error for the Nth time. -DLOAP OAP registration failed -- Registration success diff --git a/tests/oap/oap_client_test.ok b/tests/oap/oap_client_test.ok deleted file mode 100644 index 59108a792..000000000 --- a/tests/oap/oap_client_test.ok +++ /dev/null @@ -1,2 +0,0 @@ -Testing OAP API -Done diff --git a/tests/sgsn/Makefile.am b/tests/sgsn/Makefile.am deleted file mode 100644 index ccb8f44f4..000000000 --- a/tests/sgsn/Makefile.am +++ /dev/null @@ -1,81 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBCARES_CFLAGS) \ - $(NULL) -if BUILD_IU -AM_CFLAGS += \ - $(LIBASN1C_CFLAGS) \ - $(LIBOSMOSIGTRAN_CFLAGS) \ - $(LIBOSMORANAP_CFLAGS) \ - $(NULL) -endif - -EXTRA_DIST = \ - sgsn_test.ok \ - $(NULL) - -noinst_PROGRAMS = \ - sgsn_test \ - $(NULL) - -sgsn_test_SOURCES = \ - sgsn_test.c \ - $(NULL) - -sgsn_test_LDFLAGS = \ - -Wl,--wrap=RAND_bytes \ - -Wl,--wrap=sgsn_update_subscriber_data \ - -Wl,--wrap=gprs_subscr_request_update_location \ - -Wl,--wrap=gprs_subscr_request_auth_info \ - -Wl,--wrap=gsup_client_send \ - $(NULL) - -sgsn_test_LDADD = \ - $(top_builddir)/src/gprs/gprs_llc_parse.o \ - $(top_builddir)/src/gprs/gprs_llc.o \ - $(top_builddir)/src/gprs/crc24.o \ - $(top_builddir)/src/gprs/gprs_sndcp.o \ - $(top_builddir)/src/gprs/gprs_gmm.o \ - $(top_builddir)/src/gprs/gprs_sgsn.o \ - $(top_builddir)/src/gprs/sgsn_vty.o \ - $(top_builddir)/src/gprs/sgsn_libgtp.o \ - $(top_builddir)/src/gprs/sgsn_auth.o \ - $(top_builddir)/src/gprs/sgsn_ares.o \ - $(top_builddir)/src/gprs/gprs_utils.o \ - $(top_builddir)/src/gprs/gprs_subscriber.o \ - $(top_builddir)/src/gprs/gprs_gb_parse.o \ - $(top_builddir)/src/gprs/gprs_llc_xid.o \ - $(top_builddir)/src/gprs/gprs_sndcp_xid.o \ - $(top_builddir)/src/gprs/slhc.o \ - $(top_builddir)/src/gprs/gprs_sndcp_comp.o \ - $(top_builddir)/src/gprs/gprs_sndcp_pcomp.o \ - $(top_builddir)/src/gprs/v42bis.o \ - $(top_builddir)/src/gprs/gprs_sndcp_dcomp.o \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOGB_LIBS) \ - $(LIBCARES_LIBS) \ - $(LIBCRYPTO_LIBS) \ - $(LIBGTP_LIBS) \ - -lrt \ - -lm \ - $(NULL) - -if BUILD_IU -sgsn_test_LDADD += \ - $(LIBOSMORANAP_LIBS) \ - $(LIBOSMOSIGTRAN_LIBS) \ - $(LIBASN1C_LIBS) \ - $(NULL) -endif diff --git a/tests/sgsn/sgsn_test.c b/tests/sgsn/sgsn_test.c deleted file mode 100644 index d66c5dd84..000000000 --- a/tests/sgsn/sgsn_test.c +++ /dev/null @@ -1,2487 +0,0 @@ -/* Test the SGSN */ -/* - * (C) 2014 by Holger Hans Peter Freyther - * (C) 2014 by sysmocom s.f.m.c. GmbH - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <openbsc/gprs_llc.h> -#include <openbsc/sgsn.h> -#include <openbsc/gprs_gmm.h> -#include <openbsc/debug.h> -#include <openbsc/gprs_subscriber.h> -#include <osmocom/gsm/gsup.h> -#include <openbsc/gsup_client.h> -#include <openbsc/gprs_utils.h> -#include <openbsc/gprs_gb_parse.h> - -#include <osmocom/gprs/gprs_bssgp.h> - -#include <osmocom/gsm/gsm_utils.h> - -#include <osmocom/core/application.h> -#include <osmocom/core/msgb.h> -#include <osmocom/core/rate_ctr.h> -#include <osmocom/core/utils.h> - -#include <stdio.h> - -void *tall_bsc_ctx; -static struct sgsn_instance sgsn_inst = { - .config_file = "osmo_sgsn.cfg", - .cfg = { - .gtp_statedir = "./", - .auth_policy = SGSN_AUTH_POLICY_CLOSED, - }, -}; -struct sgsn_instance *sgsn = &sgsn_inst; -unsigned sgsn_tx_counter = 0; -struct msgb *last_msg = NULL; -struct gprs_gb_parse_context last_dl_parse_ctx; - -static void reset_last_msg() -{ - if (last_msg) - msgb_free(last_msg); - - last_msg = NULL; - memset(&last_dl_parse_ctx, 0, sizeof(last_dl_parse_ctx)); -} - -static void cleanup_test() -{ - reset_last_msg(); -} - -static uint32_t get_new_ptmsi(const struct gprs_gb_parse_context *parse_ctx) -{ - uint32_t new_ptmsi = GSM_RESERVED_TMSI; - - if (parse_ctx->new_ptmsi_enc) - gprs_parse_tmsi(parse_ctx->new_ptmsi_enc, &new_ptmsi); - - return new_ptmsi; -} - -/* override */ -int bssgp_tx_dl_ud(struct msgb *msg, uint16_t pdu_lifetime, - struct bssgp_dl_ud_par *dup) -{ - int rc; - - reset_last_msg(); - - last_msg = msg; - OSMO_ASSERT(msgb_data(last_msg) != NULL); - - rc = gprs_gb_parse_llc(msgb_data(last_msg), msgb_length(last_msg), - &last_dl_parse_ctx); - - fprintf(stderr, "Got DL LLC message: %s\n", - gprs_gb_message_name(&last_dl_parse_ctx, "UNKNOWN")); - - OSMO_ASSERT(rc > 0); - - sgsn_tx_counter += 1; - return 0; -} - -/* override, requires '-Wl,--wrap=RAND_bytes' */ -int __real_RAND_bytes(unsigned char *buf, int num); -int mock_RAND_bytes(unsigned char *buf, int num); -int (*RAND_bytes_cb)(unsigned char *, int) = - &mock_RAND_bytes; - -int __wrap_RAND_bytes(unsigned char *buf, int num) -{ - return (*RAND_bytes_cb)(buf, num); -} -/* make results of A&C ref predictable */ -int mock_RAND_bytes(unsigned char *buf, int num) -{ - if (num > 1) - return __real_RAND_bytes(buf, num); - buf[0] = 0; - return 1; -} - -/* override, requires '-Wl,--wrap=sgsn_update_subscriber_data' */ -void __real_sgsn_update_subscriber_data(struct sgsn_mm_ctx *); -void (*update_subscriber_data_cb)(struct sgsn_mm_ctx *) = - &__real_sgsn_update_subscriber_data; - -void __wrap_sgsn_update_subscriber_data(struct sgsn_mm_ctx *mmctx) -{ - (*update_subscriber_data_cb)(mmctx); -} - -/* override, requires '-Wl,--wrap=gprs_subscr_request_update_location' */ -int __real_gprs_subscr_request_update_location(struct sgsn_mm_ctx *mmctx); -int (*subscr_request_update_location_cb)(struct sgsn_mm_ctx *mmctx) = - &__real_gprs_subscr_request_update_location; - -int __wrap_gprs_subscr_request_update_location(struct sgsn_mm_ctx *mmctx) { - return (*subscr_request_update_location_cb)(mmctx); -}; - -/* override, requires '-Wl,--wrap=gprs_subscr_request_auth_info' */ -int __real_gprs_subscr_request_auth_info(struct sgsn_mm_ctx *mmctx, const uint8_t *auts, const uint8_t *auts_rand); -int (*subscr_request_auth_info_cb)(struct sgsn_mm_ctx *mmctx, const uint8_t *auts, const uint8_t *auts_rand) = - &__real_gprs_subscr_request_auth_info; - -int __wrap_gprs_subscr_request_auth_info(struct sgsn_mm_ctx *mmctx, const uint8_t *auts, const uint8_t *auts_rand) { - return (*subscr_request_auth_info_cb)(mmctx, auts, auts_rand); -}; - -/* override, requires '-Wl,--wrap=gsup_client_send' */ -int __real_gsup_client_send(struct gsup_client *gsupc, struct msgb *msg); -int (*gsup_client_send_cb)(struct gsup_client *gsupc, struct msgb *msg) = - &__real_gsup_client_send; - -int __wrap_gsup_client_send(struct gsup_client *gsupc, struct msgb *msg) -{ - return (*gsup_client_send_cb)(gsupc, msg); -}; - -static int count(struct llist_head *head) -{ - struct llist_head *cur; - int count = 0; - - llist_for_each(cur, head) - count += 1; - - return count; -} - -static struct msgb *create_msg(const uint8_t *data, size_t len) -{ - struct msgb *msg = msgb_alloc(len + 8, "test message"); - msg->l1h = msgb_put(msg, 8); - msg->l2h = msgb_put(msg, len); - memcpy(msg->l2h, data, len); - - msgb_bcid(msg) = msg->l1h; - msgb_gmmh(msg) = msg->l2h; - return msg; -} - -/* - * Create a context and search for it - */ -static struct sgsn_mm_ctx *alloc_mm_ctx(uint32_t tlli, struct gprs_ra_id *raid) -{ - struct sgsn_mm_ctx *ctx, *ictx; - struct gprs_llc_lle *lle; - int old_count = count(gprs_llme_list()); - - lle = gprs_lle_get_or_create(tlli, 3); - ctx = sgsn_mm_ctx_alloc_gb(tlli, raid); - ctx->gmm_state = GMM_REGISTERED_NORMAL; - ctx->gb.llme = lle->llme; - - ictx = sgsn_mm_ctx_by_tlli(tlli, raid); - OSMO_ASSERT(ictx == ctx); - - OSMO_ASSERT(count(gprs_llme_list()) == old_count + 1); - - return ctx; -} - -static void send_0408_message(struct gprs_llc_llme *llme, uint32_t tlli, - const struct gprs_ra_id *bssgp_raid, - const uint8_t *data, size_t data_len) -{ - struct msgb *msg; - - reset_last_msg(); - sgsn_tx_counter = 0; - - msg = create_msg(data, data_len); - msgb_tlli(msg) = tlli; - bssgp_create_cell_id(msgb_bcid(msg), bssgp_raid, 0); - gsm0408_gprs_rcvmsg_gb(msg, llme, false); - msgb_free(msg); -} - -static void test_llme(void) -{ - struct gprs_llc_lle *lle, *lle_copy; - uint32_t local_tlli; - - printf("Testing LLME allocations\n"); - local_tlli = gprs_tmsi2tlli(0x234, TLLI_LOCAL); - - /* initial state */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - - /* Create a new entry */ - lle = gprs_lle_get_or_create(local_tlli, 3); - OSMO_ASSERT(lle); - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* No new entry is created */ - lle_copy = gprs_lle_get_or_create(local_tlli, 3); - OSMO_ASSERT(lle == lle_copy); - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* unassign which should delete it*/ - gprs_llgmm_unassign(lle->llme); - - /* Check that everything was cleaned up */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - - cleanup_test(); -} - -struct gprs_subscr *last_updated_subscr = NULL; -void my_dummy_sgsn_update_subscriber_data(struct sgsn_mm_ctx *mmctx) -{ - OSMO_ASSERT(mmctx); - fprintf(stderr, "Called %s, mmctx = %p, subscr = %p\n", - __func__, mmctx, mmctx->subscr); - last_updated_subscr = mmctx->subscr; -} - -static void assert_subscr(const struct gprs_subscr *subscr, const char *imsi) -{ - struct gprs_subscr *sfound; - OSMO_ASSERT(subscr); - OSMO_ASSERT(strcmp(subscr->imsi, imsi) == 0); - - sfound = gprs_subscr_get_by_imsi(imsi); - OSMO_ASSERT(sfound == subscr); - - gprs_subscr_put(sfound); -} - -static void show_subscrs(FILE *out) -{ - struct gprs_subscr *subscr; - - llist_for_each_entry(subscr, gprs_subscribers, entry) { - fprintf(out, " Subscriber: %s, " - "use count: %d\n", - subscr->imsi, subscr->use_count); - } -} - -static void assert_no_subscrs() -{ - show_subscrs(stdout); - fflush(stdout); - OSMO_ASSERT(llist_empty(gprs_subscribers)); -} - -#define VERBOSE_ASSERT(val, expect_op, fmt) \ - do { \ - printf(#val " == " fmt "\n", (val)); \ - OSMO_ASSERT((val) expect_op); \ - } while (0); - -static void test_subscriber(void) -{ - struct gprs_subscr *s1, *s2, *s3; - const char *imsi1 = "1234567890"; - const char *imsi2 = "9876543210"; - const char *imsi3 = "5656565656"; - - update_subscriber_data_cb = my_dummy_sgsn_update_subscriber_data; - - printf("Testing core subscriber data API\n"); - - /* Check for emptiness */ - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi1) == NULL); - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi2) == NULL); - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi3) == NULL); - VERBOSE_ASSERT(llist_count(gprs_subscribers), == 0, "%d"); - - /* Allocate entry 1 */ - s1 = gprs_subscr_get_or_create(imsi1); - VERBOSE_ASSERT(llist_count(gprs_subscribers), == 1, "%d"); - s1->flags |= GPRS_SUBSCRIBER_FIRST_CONTACT; - assert_subscr(s1, imsi1); - VERBOSE_ASSERT(llist_count(gprs_subscribers), == 1, "%d"); - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi2) == NULL); - - /* Allocate entry 2 */ - s2 = gprs_subscr_get_or_create(imsi2); - VERBOSE_ASSERT(llist_count(gprs_subscribers), == 2, "%d"); - s2->flags |= GPRS_SUBSCRIBER_FIRST_CONTACT; - - /* Allocate entry 3 */ - s3 = gprs_subscr_get_or_create(imsi3); - VERBOSE_ASSERT(llist_count(gprs_subscribers), == 3, "%d"); - - /* Check entries */ - assert_subscr(s1, imsi1); - assert_subscr(s2, imsi2); - assert_subscr(s3, imsi3); - - /* Update entry 1 */ - last_updated_subscr = NULL; - gprs_subscr_update(s1); - OSMO_ASSERT(last_updated_subscr == NULL); - OSMO_ASSERT(s1->sgsn_data->mm == NULL); - OSMO_ASSERT((s1->flags & GPRS_SUBSCRIBER_FIRST_CONTACT) == 0); - - /* There is no subscriber cache. Verify it */ - gprs_subscr_cleanup(s1); - gprs_subscr_put(s1); - s1 = NULL; - VERBOSE_ASSERT(llist_count(gprs_subscribers), == 2, "%d"); - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi1) == NULL); - - assert_subscr(s2, imsi2); - assert_subscr(s3, imsi3); - - /* Free entry 2 (GPRS_SUBSCRIBER_FIRST_CONTACT is set) */ - gprs_subscr_cleanup(s2); - gprs_subscr_put(s2); - s2 = NULL; - VERBOSE_ASSERT(llist_count(gprs_subscribers), == 1, "%d"); - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi1) == NULL); - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi2) == NULL); - assert_subscr(s3, imsi3); - - /* Try to delete entry 3 */ - gprs_subscr_cleanup(s3); - gprs_subscr_put(s3); - s3 = NULL; - VERBOSE_ASSERT(llist_count(gprs_subscribers), == 0, "%d"); - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi3) == NULL); - - OSMO_ASSERT(llist_empty(gprs_subscribers)); - - update_subscriber_data_cb = __real_sgsn_update_subscriber_data; - - cleanup_test(); -} - -static void test_auth_triplets(void) -{ - struct gprs_subscr *s1, *s1found; - const char *imsi1 = "1234567890"; - struct gsm_auth_tuple *at; - struct sgsn_mm_ctx *ctx; - struct gprs_ra_id raid = { 0, }; - uint32_t local_tlli = 0xffeeddcc; - - printf("Testing authentication triplet handling\n"); - - /* Check for emptiness */ - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi1) == NULL); - - /* Allocate entry 1 */ - s1 = gprs_subscr_get_or_create(imsi1); - s1->flags |= GPRS_SUBSCRIBER_FIRST_CONTACT; - s1found = gprs_subscr_get_by_imsi(imsi1); - OSMO_ASSERT(s1found == s1); - gprs_subscr_put(s1found); - - /* Create a context */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ctx = alloc_mm_ctx(local_tlli, &raid); - - /* Attach s1 to ctx */ - ctx->subscr = gprs_subscr_get(s1); - ctx->subscr->sgsn_data->mm = ctx; - - /* Try to get auth tuple */ - at = sgsn_auth_get_tuple(ctx, GSM_KEY_SEQ_INVAL); - OSMO_ASSERT(at == NULL); - - /* Add triplets */ - s1->sgsn_data->auth_triplets[0].key_seq = 0; - s1->sgsn_data->auth_triplets[1].key_seq = 1; - s1->sgsn_data->auth_triplets[2].key_seq = 2; - - /* Try to get auth tuple */ - at = sgsn_auth_get_tuple(ctx, GSM_KEY_SEQ_INVAL); - OSMO_ASSERT(at != NULL); - OSMO_ASSERT(at->key_seq == 0); - OSMO_ASSERT(at->use_count == 1); - at = sgsn_auth_get_tuple(ctx, at->key_seq); - OSMO_ASSERT(at != NULL); - OSMO_ASSERT(at->key_seq == 1); - OSMO_ASSERT(at->use_count == 1); - at = sgsn_auth_get_tuple(ctx, at->key_seq); - OSMO_ASSERT(at != NULL); - OSMO_ASSERT(at->key_seq == 2); - OSMO_ASSERT(at->use_count == 1); - at = sgsn_auth_get_tuple(ctx, at->key_seq); - OSMO_ASSERT(at == NULL); - - /* Free MM context and subscriber */ - gprs_subscr_put(s1); - sgsn_mm_ctx_cleanup_free(ctx); - s1found = gprs_subscr_get_by_imsi(imsi1); - OSMO_ASSERT(s1found == NULL); - - cleanup_test(); -} - -#define TEST_GSUP_IMSI1_IE 0x01, 0x05, 0x21, 0x43, 0x65, 0x87, 0x09 - -static int rx_gsup_message(const uint8_t *data, size_t data_len) -{ - struct msgb *msg; - int rc; - - msg = msgb_alloc(1024, __func__); - msg->l2h = msgb_put(msg, data_len); - OSMO_ASSERT(msg->l2h != NULL); - memcpy(msg->l2h, data, data_len); - rc = gprs_subscr_rx_gsup_message(msg); - msgb_free(msg); - - return rc; -} - -static void test_subscriber_gsup(void) -{ - struct gprs_subscr *s1, *s1found; - const char *imsi1 = "1234567890"; - struct sgsn_mm_ctx *ctx; - struct gprs_ra_id raid = { 0, }; - uint32_t local_tlli = 0xffeeddcc; - struct sgsn_subscriber_pdp_data *pdpd; - int rc; - - static const uint8_t send_auth_info_res[] = { - 0x0a, - TEST_GSUP_IMSI1_IE, - 0x03, 0x22, /* Auth tuple */ - 0x20, 0x10, - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x21, 0x04, - 0x21, 0x22, 0x23, 0x24, - 0x22, 0x08, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x03, 0x22, /* Auth tuple */ - 0x20, 0x10, - 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, - 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, - 0x21, 0x04, - 0xa1, 0xa2, 0xa3, 0xa4, - 0x22, 0x08, - 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, - }; - - static const uint8_t send_auth_info_err[] = { - 0x09, - TEST_GSUP_IMSI1_IE, - 0x02, 0x01, 0x07 /* GPRS not allowed */ - }; - -#define MSISDN 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 - - static const uint8_t s1_msisdn[] = { MSISDN }; - - static const uint8_t update_location_res[] = { - 0x06, - TEST_GSUP_IMSI1_IE, - 0x08, 0x09, MSISDN, - 0x04, 0x00, /* PDP info complete */ - 0x05, 0x12, - 0x10, 0x01, 0x01, - 0x11, 0x02, 0xf1, 0x21, /* IPv4 */ - 0x12, 0x09, 0x04, 't', 'e', 's', 't', 0x03, 'a', 'p', 'n', - 0x05, 0x11, - 0x10, 0x01, 0x02, - 0x11, 0x02, 0xf1, 0x21, /* IPv4 */ - 0x12, 0x08, 0x03, 'f', 'o', 'o', 0x03, 'a', 'p', 'n', - }; - -#undef MSISDN - - static const uint8_t update_location_err[] = { - 0x05, - TEST_GSUP_IMSI1_IE, - 0x02, 0x01, 0x07 /* GPRS not allowed */ - }; - - static const uint8_t location_cancellation_req[] = { - 0x1c, - TEST_GSUP_IMSI1_IE, - 0x06, 0x01, 0x00, - }; - - static const uint8_t location_cancellation_req_withdraw[] = { - 0x1c, - TEST_GSUP_IMSI1_IE, - 0x06, 0x01, 0x01, - }; - - static const uint8_t location_cancellation_req_other[] = { - 0x1c, - 0x01, 0x05, 0x11, 0x11, 0x11, 0x11, 0x01, - 0x06, 0x01, 0x00, - }; - - static const uint8_t purge_ms_err[] = { - 0x0d, - TEST_GSUP_IMSI1_IE, - 0x02, 0x01, 0x02, /* IMSI unknown in HLR */ - }; - - static const uint8_t purge_ms_err_no_cause[] = { - 0x0d, - TEST_GSUP_IMSI1_IE, - }; - - static const uint8_t purge_ms_res[] = { - 0x0e, - TEST_GSUP_IMSI1_IE, - 0x07, 0x00, - }; - - - static const uint8_t insert_data_req[] = { - 0x10, - TEST_GSUP_IMSI1_IE, - 0x05, 0x11, - 0x10, 0x01, 0x03, - 0x11, 0x02, 0xf1, 0x21, /* IPv4 */ - 0x12, 0x08, 0x03, 'b', 'a', 'r', 0x03, 'a', 'p', 'n', - }; - - static const uint8_t delete_data_req[] = { - 0x14, - TEST_GSUP_IMSI1_IE, - 0x10, 0x01, 0x03, - }; - - printf("Testing subscriber GSUP handling\n"); - - update_subscriber_data_cb = my_dummy_sgsn_update_subscriber_data; - - /* Check for emptiness */ - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi1) == NULL); - - /* Allocate entry 1 */ - s1 = gprs_subscr_get_or_create(imsi1); - s1->flags |= GPRS_SUBSCRIBER_FIRST_CONTACT; - s1found = gprs_subscr_get_by_imsi(imsi1); - OSMO_ASSERT(s1found == s1); - gprs_subscr_put(s1found); - - /* Create a context */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ctx = alloc_mm_ctx(local_tlli, &raid); - - /* Attach s1 to ctx */ - ctx->subscr = gprs_subscr_get(s1); - ctx->subscr->sgsn_data->mm = ctx; - - /* Inject SendAuthInfoReq GSUP message */ - rc = rx_gsup_message(send_auth_info_res, sizeof(send_auth_info_res)); - OSMO_ASSERT(rc >= 0); - OSMO_ASSERT(last_updated_subscr == s1); - - /* Check triplets */ - OSMO_ASSERT(s1->sgsn_data->auth_triplets[0].key_seq == 0); - OSMO_ASSERT(s1->sgsn_data->auth_triplets[1].key_seq == 1); - OSMO_ASSERT(s1->sgsn_data->auth_triplets[2].key_seq == GSM_KEY_SEQ_INVAL); - - /* Inject SendAuthInfoErr GSUP message */ - rc = rx_gsup_message(send_auth_info_err, sizeof(send_auth_info_err)); - OSMO_ASSERT(rc == -GMM_CAUSE_GPRS_NOTALLOWED); - OSMO_ASSERT(last_updated_subscr == s1); - OSMO_ASSERT(s1->sgsn_data->error_cause == GMM_CAUSE_GPRS_NOTALLOWED); - - /* Check triplets */ - OSMO_ASSERT(s1->sgsn_data->auth_triplets[0].key_seq == GSM_KEY_SEQ_INVAL); - OSMO_ASSERT(s1->sgsn_data->auth_triplets[1].key_seq == GSM_KEY_SEQ_INVAL); - OSMO_ASSERT(s1->sgsn_data->auth_triplets[2].key_seq == GSM_KEY_SEQ_INVAL); - - /* Inject UpdateLocRes GSUP message */ - rc = rx_gsup_message(update_location_res, sizeof(update_location_res)); - OSMO_ASSERT(rc >= 0); - OSMO_ASSERT(last_updated_subscr == s1); - OSMO_ASSERT(s1->flags & GPRS_SUBSCRIBER_ENABLE_PURGE); - OSMO_ASSERT(s1->sgsn_data->error_cause == SGSN_ERROR_CAUSE_NONE); - OSMO_ASSERT(s1->sgsn_data->msisdn_len == sizeof(s1_msisdn)); - OSMO_ASSERT(memcmp(s1->sgsn_data->msisdn, s1_msisdn, sizeof(s1_msisdn)) == 0); - OSMO_ASSERT(!llist_empty(&s1->sgsn_data->pdp_list)); - pdpd = llist_entry(s1->sgsn_data->pdp_list.next, - struct sgsn_subscriber_pdp_data, list); - OSMO_ASSERT(strcmp(pdpd->apn_str, "test.apn") == 0); - pdpd = llist_entry(pdpd->list.next, - struct sgsn_subscriber_pdp_data, list); - OSMO_ASSERT(strcmp(pdpd->apn_str, "foo.apn") == 0); - - /* Check authorization */ - OSMO_ASSERT(s1->authorized == 1); - - /* Inject UpdateLocErr GSUP message */ - rc = rx_gsup_message(update_location_err, sizeof(update_location_err)); - OSMO_ASSERT(rc == -GMM_CAUSE_GPRS_NOTALLOWED); - OSMO_ASSERT(last_updated_subscr == s1); - OSMO_ASSERT(s1->sgsn_data->error_cause == GMM_CAUSE_GPRS_NOTALLOWED); - - /* Check authorization */ - OSMO_ASSERT(s1->authorized == 0); - - /* Inject InsertSubscrData GSUP message */ - last_updated_subscr = NULL; - rc = rx_gsup_message(insert_data_req, sizeof(insert_data_req)); - OSMO_ASSERT(rc == -ENOTSUP); /* not connected */ - OSMO_ASSERT(last_updated_subscr == s1); - - /* Inject DeleteSubscrData GSUP message */ - last_updated_subscr = NULL; - rc = rx_gsup_message(delete_data_req, sizeof(delete_data_req)); - if (rc != -GMM_CAUSE_SEM_INCORR_MSG) - printf("Unexpected response to DSD: %d\n", rc); - OSMO_ASSERT(last_updated_subscr == NULL); - - /* Inject wrong LocCancelReq GSUP message */ - last_updated_subscr = NULL; - rc = rx_gsup_message(location_cancellation_req_other, - sizeof(location_cancellation_req_other)); - OSMO_ASSERT(rc == -GMM_CAUSE_IMSI_UNKNOWN); - OSMO_ASSERT(last_updated_subscr == NULL); - - /* Check cancellation result */ - OSMO_ASSERT(!(s1->flags & GPRS_SUBSCRIBER_CANCELLED)); - OSMO_ASSERT(s1->sgsn_data->mm != NULL); - - /* Inject LocCancelReq GSUP message */ - rc = rx_gsup_message(location_cancellation_req, - sizeof(location_cancellation_req)); - OSMO_ASSERT(rc >= 0); - OSMO_ASSERT(last_updated_subscr == s1); - OSMO_ASSERT(s1->sgsn_data->error_cause == SGSN_ERROR_CAUSE_NONE); - - /* Check cancellation result */ - OSMO_ASSERT(s1->flags & GPRS_SUBSCRIBER_CANCELLED); - OSMO_ASSERT(s1->sgsn_data->mm == NULL); - - /* Inject LocCancelReq(withdraw) GSUP message */ - rc = rx_gsup_message(location_cancellation_req_withdraw, - sizeof(location_cancellation_req_withdraw)); - OSMO_ASSERT(rc >= 0); - OSMO_ASSERT(s1->sgsn_data->error_cause == GMM_CAUSE_IMPL_DETACHED); - - /* Inject PurgeMsRes GSUP message */ - rc = rx_gsup_message(purge_ms_res, - sizeof(purge_ms_res)); - OSMO_ASSERT(rc >= 0); - OSMO_ASSERT(!(s1->flags & GPRS_SUBSCRIBER_ENABLE_PURGE)); - - /* Free MM context and subscriber */ - OSMO_ASSERT(ctx->subscr == NULL); - sgsn_mm_ctx_cleanup_free(ctx); - gprs_subscr_put(s1); - s1found = gprs_subscr_get_by_imsi(imsi1); - OSMO_ASSERT(s1found == NULL); - - /* Inject PurgeMsRes GSUP message */ - rc = rx_gsup_message(purge_ms_res, - sizeof(purge_ms_res)); - OSMO_ASSERT(rc >= 0); - - /* Inject PurgeMsErr(IMSI unknown in HLR) GSUP message */ - rc = rx_gsup_message(purge_ms_err, - sizeof(purge_ms_err)); - OSMO_ASSERT(rc == -GMM_CAUSE_IMSI_UNKNOWN); - - /* Inject PurgeMsErr() GSUP message */ - rc = rx_gsup_message(purge_ms_err_no_cause, - sizeof(purge_ms_err_no_cause)); - OSMO_ASSERT(rc == -GMM_CAUSE_NET_FAIL); - - /* Inject InsertSubscrData GSUP message (unknown IMSI) */ - last_updated_subscr = NULL; - rc = rx_gsup_message(insert_data_req, sizeof(insert_data_req)); - OSMO_ASSERT(rc == -GMM_CAUSE_IMSI_UNKNOWN); - OSMO_ASSERT(last_updated_subscr == NULL); - - /* Inject DeleteSubscrData GSUP message (unknown IMSI) */ - rc = rx_gsup_message(delete_data_req, sizeof(delete_data_req)); - OSMO_ASSERT(rc == -GMM_CAUSE_IMSI_UNKNOWN); - OSMO_ASSERT(last_updated_subscr == NULL); - - /* Inject LocCancelReq GSUP message (unknown IMSI) */ - rc = rx_gsup_message(location_cancellation_req, - sizeof(location_cancellation_req)); - OSMO_ASSERT(rc == -GMM_CAUSE_IMSI_UNKNOWN); - OSMO_ASSERT(last_updated_subscr == NULL); - - update_subscriber_data_cb = __real_sgsn_update_subscriber_data; - - cleanup_test(); -} - -int my_gsup_client_send_dummy(struct gsup_client *gsupc, struct msgb *msg) -{ - msgb_free(msg); - return 0; -}; - -/* - * Test that a GMM Detach will remove the MMCTX and the - * associated LLME. - */ -static void test_gmm_detach(void) -{ - struct gprs_ra_id raid = { 0, }; - struct sgsn_mm_ctx *ctx, *ictx; - uint32_t local_tlli; - - printf("Testing GMM detach\n"); - - /* DTAP - Detach Request (MO) */ - /* normal detach, power_off = 0 */ - static const unsigned char detach_req[] = { - 0x08, 0x05, 0x01, 0x18, 0x05, 0xf4, 0xef, 0xe2, - 0xb7, 0x00, 0x19, 0x03, 0xb9, 0x97, 0xcb - }; - - local_tlli = gprs_tmsi2tlli(0x23, TLLI_LOCAL); - - /* Create a context */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ctx = alloc_mm_ctx(local_tlli, &raid); - - /* inject the detach */ - send_0408_message(ctx->gb.llme, local_tlli, &raid, - detach_req, ARRAY_SIZE(detach_req)); - - /* verify that a single message (hopefully the Detach Accept) has been - * sent by the SGSN */ - OSMO_ASSERT(sgsn_tx_counter == 1); - - /* verify that things are gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ictx = sgsn_mm_ctx_by_tlli(local_tlli, &raid); - OSMO_ASSERT(!ictx); - - cleanup_test(); -} - -/* - * Test that a GMM Detach will remove the MMCTX and the associated LLME but - * will not sent a Detach Accept message (power_off = 1) - */ -static void test_gmm_detach_power_off(void) -{ - struct gprs_ra_id raid = { 0, }; - struct sgsn_mm_ctx *ctx, *ictx; - uint32_t local_tlli; - - printf("Testing GMM detach (power off)\n"); - - /* DTAP - Detach Request (MO) */ - /* normal detach, power_off = 1 */ - static const unsigned char detach_req[] = { - 0x08, 0x05, 0x09, 0x18, 0x05, 0xf4, 0xef, 0xe2, - 0xb7, 0x00, 0x19, 0x03, 0xb9, 0x97, 0xcb - }; - - local_tlli = gprs_tmsi2tlli(0x23, TLLI_LOCAL); - - /* Create a context */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ctx = alloc_mm_ctx(local_tlli, &raid); - - /* inject the detach */ - send_0408_message(ctx->gb.llme, local_tlli, &raid, - detach_req, ARRAY_SIZE(detach_req)); - - /* verify that no message (and therefore no Detach Accept) has been - * sent by the SGSN */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - /* verify that things are gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ictx = sgsn_mm_ctx_by_tlli(local_tlli, &raid); - OSMO_ASSERT(!ictx); - - cleanup_test(); -} - -/* - * Test that a GMM Detach will remove the associated LLME if there is no MMCTX. - */ -static void test_gmm_detach_no_mmctx(void) -{ - struct gprs_ra_id raid = { 0, }; - struct gprs_llc_lle *lle; - uint32_t local_tlli; - - printf("Testing GMM detach (no MMCTX)\n"); - - /* DTAP - Detach Request (MO) */ - /* normal detach, power_off = 0 */ - static const unsigned char detach_req[] = { - 0x08, 0x05, 0x01, 0x18, 0x05, 0xf4, 0xef, 0xe2, - 0xb7, 0x00, 0x19, 0x03, 0xb9, 0x97, 0xcb - }; - - /* Create an LLME */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - local_tlli = gprs_tmsi2tlli(0x23, TLLI_LOCAL); - lle = gprs_lle_get_or_create(local_tlli, 3); - - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* inject the detach */ - send_0408_message(lle->llme, local_tlli, &raid, - detach_req, ARRAY_SIZE(detach_req)); - - /* verify that the LLME is gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - - cleanup_test(); -} - -/* - * Test that a single GMM Detach Accept message will not cause the SGSN to send - * any message or leave an MM context at the SGSN. - */ -static void test_gmm_detach_accept_unexpected(void) -{ - struct gprs_ra_id raid = { 0, }; - struct gprs_llc_lle *lle; - uint32_t local_tlli; - - printf("Testing GMM detach accept (unexpected)\n"); - - /* DTAP - Detach Accept (MT) */ - /* normal detach */ - static const unsigned char detach_acc[] = { - 0x08, 0x06 - }; - - /* Create an LLME */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - local_tlli = gprs_tmsi2tlli(0x23, TLLI_LOCAL); - lle = gprs_lle_get_or_create(local_tlli, 3); - - /* inject the detach */ - send_0408_message(lle->llme, local_tlli, &raid, - detach_acc, ARRAY_SIZE(detach_acc)); - - /* verify that no message (and therefore no Status or XID reset) has been - * sent by the SGSN */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - /* verify that things are gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - - cleanup_test(); -} - -/* - * Test that a GMM Status will remove the associated LLME if there is no MMCTX. - */ -static void test_gmm_status_no_mmctx(void) -{ - struct gprs_ra_id raid = { 0, }; - struct gprs_llc_lle *lle; - uint32_t local_tlli; - - printf("Testing GMM Status (no MMCTX)\n"); - - /* DTAP - GMM Status, protocol error */ - static const unsigned char gmm_status[] = { - 0x08, 0x20, 0x6f - }; - - /* Create an LLME */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - local_tlli = gprs_tmsi2tlli(0x23, TLLI_LOCAL); - lle = gprs_lle_get_or_create(local_tlli, 3); - - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* inject the detach */ - send_0408_message(lle->llme, local_tlli, &raid, - gmm_status, ARRAY_SIZE(gmm_status)); - - /* verify that no message has been sent by the SGSN */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - /* verify that the LLME is gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - - cleanup_test(); -} - -/* - * Test the GMM Attach procedure - */ -static void test_gmm_attach(int retry) -{ - struct gprs_ra_id raid = { 0, }; - struct sgsn_mm_ctx *ctx = NULL; - struct sgsn_mm_ctx *ictx; - uint32_t ptmsi1; - uint32_t foreign_tlli; - uint32_t local_tlli = 0; - struct gprs_llc_lle *lle; - - /* DTAP - Attach Request */ - /* The P-TMSI is not known by the SGSN */ - static const unsigned char attach_req[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, 0x05, 0xf4, - 0xfb, 0xc5, 0x46, 0x79, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, - 0x19, 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60, - 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80, 0xba, 0xc8, - 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00 - }; - - /* DTAP - Identity Response IMEI */ - static const unsigned char ident_resp_imei[] = { - 0x08, 0x16, 0x08, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, - 0x56 - }; - - /* DTAP - Identity Response IMSI */ - static const unsigned char ident_resp_imsi[] = { - 0x08, 0x16, 0x08, 0x19, 0x32, 0x54, 0x76, 0x98, 0x10, 0x32, - 0x54 - }; - - /* DTAP - Authentication and Ciphering Resp */ - static const unsigned char auth_ciph_resp[] = { - 0x08, 0x13, 0x00, 0x22, 0x51, 0xe5, 0x51, 0xe5, 0x23, 0x09, - 0x9a, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, 0x56, 0x01 - }; - - /* DTAP - Attach Complete */ - static const unsigned char attach_compl[] = { - 0x08, 0x03 - }; - - /* DTAP - Detach Request (MO) */ - /* normal detach, power_off = 0 */ - static const unsigned char detach_req[] = { - 0x08, 0x05, 0x01, 0x18, 0x05, 0xf4, 0xeb, 0x8b, - 0x45, 0x67, 0x19, 0x03, 0xb9, 0x97, 0xcb - }; - - printf("Testing GMM attach%s\n", retry ? " with retry" : ""); - - foreign_tlli = gprs_tmsi2tlli(0xc0000023, TLLI_FOREIGN); - - /* Create a LLE/LLME */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - lle = gprs_lle_get_or_create(foreign_tlli, 3); - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* inject the attach request */ - send_0408_message(lle->llme, foreign_tlli, &raid, - attach_req, ARRAY_SIZE(attach_req)); - - ctx = sgsn_mm_ctx_by_tlli(foreign_tlli, &raid); - OSMO_ASSERT(ctx != NULL); - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - - /* we expect an identity request (IMEI) */ - OSMO_ASSERT(sgsn_tx_counter == 1); - - /* inject the identity response (IMEI) */ - send_0408_message(ctx->gb.llme, foreign_tlli, &raid, - ident_resp_imei, ARRAY_SIZE(ident_resp_imei)); - - /* we expect an identity request (IMSI) */ - OSMO_ASSERT(sgsn_tx_counter == 1); - - /* inject the identity response (IMSI) */ - send_0408_message(ctx->gb.llme, foreign_tlli, &raid, - ident_resp_imsi, ARRAY_SIZE(ident_resp_imsi)); - - /* check that the MM context has not been removed due to a failed - * authorization */ - OSMO_ASSERT(ctx == sgsn_mm_ctx_by_tlli(foreign_tlli, &raid)); - - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - -retry_attach_req: - - if (retry && sgsn_tx_counter == 0) { - fprintf(stderr, "Retrying attach request\n"); - /* re-inject the attach request */ - send_0408_message(lle->llme, foreign_tlli, &raid, - attach_req, ARRAY_SIZE(attach_req)); - } - - if (ctx->auth_state == SGSN_AUTH_AUTHENTICATE && sgsn_tx_counter == 1) { - /* we got an auth & ciph request */ - - /* inject the auth & ciph response */ - send_0408_message(ctx->gb.llme, foreign_tlli, &raid, - auth_ciph_resp, ARRAY_SIZE(auth_ciph_resp)); - - /* check that the MM context has not been removed due to a - * failed authorization */ - OSMO_ASSERT(ctx == sgsn_mm_ctx_by_tlli(foreign_tlli, &raid)); - if (ctx->subscr && ctx->subscr->sgsn_data->msisdn_len > 0) - OSMO_ASSERT(strcmp(ctx->msisdn, "+49166213323") == 0); - } - - if (retry && sgsn_tx_counter == 0) - goto retry_attach_req; - - /* we expect an attach accept/reject */ - OSMO_ASSERT(sgsn_tx_counter == 1); - ptmsi1 = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(ptmsi1 != GSM_RESERVED_TMSI); - - /* this has been randomly assigned by the SGSN */ - local_tlli = gprs_tmsi2tlli(ptmsi1, TLLI_LOCAL); - - /* inject the attach complete */ - send_0408_message(ctx->gb.llme, local_tlli, &raid, - attach_compl, ARRAY_SIZE(attach_compl)); - - OSMO_ASSERT(ctx->gmm_state == GMM_REGISTERED_NORMAL); - - /* we don't expect a response */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - /* inject the detach */ - send_0408_message(ctx->gb.llme, local_tlli, &raid, - detach_req, ARRAY_SIZE(detach_req)); - - /* verify that things are gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ictx = sgsn_mm_ctx_by_tlli(local_tlli, &raid); - OSMO_ASSERT(!ictx); - - cleanup_test(); -} - -static void test_gmm_attach_acl(void) -{ - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - - sgsn_inst.cfg.auth_policy = SGSN_AUTH_POLICY_CLOSED; - sgsn_acl_add("123456789012345", &sgsn->cfg); - printf("Auth policy 'closed': "); - test_gmm_attach(0); - sgsn_acl_del("123456789012345", &sgsn->cfg); - - sgsn->cfg.auth_policy = saved_auth_policy; - - cleanup_test(); -} - -int my_subscr_request_update_location(struct sgsn_mm_ctx *mmctx) { - int rc; - rc = __real_gprs_subscr_request_update_location(mmctx); - if (rc == -ENOTSUP) { - OSMO_ASSERT(mmctx->subscr); - gprs_subscr_update(mmctx->subscr); - } - return rc; -}; - -int my_subscr_request_auth_info(struct sgsn_mm_ctx *mmctx) { - gprs_subscr_update(mmctx->subscr); - return 0; -}; - -static void test_gmm_attach_subscr(void) -{ - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - struct gprs_subscr *subscr; - - sgsn_inst.cfg.auth_policy = SGSN_AUTH_POLICY_REMOTE; - subscr_request_update_location_cb = my_subscr_request_update_location; - subscr_request_auth_info_cb = my_subscr_request_auth_info; - - subscr = gprs_subscr_get_or_create("123456789012345"); - subscr->authorized = 1; - - printf("Auth policy 'remote': "); - test_gmm_attach(0); - gprs_subscr_put(subscr); - assert_no_subscrs(); - - sgsn->cfg.auth_policy = saved_auth_policy; - subscr_request_update_location_cb = __real_gprs_subscr_request_update_location; - subscr_request_auth_info_cb = __real_gprs_subscr_request_auth_info; - - cleanup_test(); -} - -int my_subscr_request_auth_info_fake_auth(struct sgsn_mm_ctx *mmctx) -{ - /* Fake an authentication */ - OSMO_ASSERT(mmctx->subscr); - mmctx->is_authenticated = 1; - gprs_subscr_update_auth_info(mmctx->subscr); - - return 0; -}; - -static void test_gmm_attach_subscr_fake_auth(void) -{ - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - struct gprs_subscr *subscr; - - sgsn_inst.cfg.auth_policy = SGSN_AUTH_POLICY_REMOTE; - subscr_request_update_location_cb = my_subscr_request_update_location; - subscr_request_auth_info_cb = my_subscr_request_auth_info_fake_auth; - - subscr = gprs_subscr_get_or_create("123456789012345"); - subscr->authorized = 1; - sgsn->cfg.require_authentication = 1; - sgsn->cfg.require_update_location = 1; - - printf("Auth policy 'remote', auth faked: "); - test_gmm_attach(0); - gprs_subscr_put(subscr); - assert_no_subscrs(); - - sgsn->cfg.auth_policy = saved_auth_policy; - subscr_request_update_location_cb = __real_gprs_subscr_request_update_location; - subscr_request_auth_info_cb = __real_gprs_subscr_request_auth_info; - - cleanup_test(); -} - -int my_subscr_request_auth_info_real_auth(struct sgsn_mm_ctx *mmctx, const uint8_t *auts, const uint8_t *auts_rand) -{ - struct gsm_auth_tuple at = { - .vec.sres = {0x51, 0xe5, 0x51, 0xe5}, - .vec.auth_types = OSMO_AUTH_TYPE_GSM, - .key_seq = 0 - }; - - /* Fake an authentication */ - OSMO_ASSERT(mmctx->subscr); - mmctx->subscr->sgsn_data->auth_triplets[0] = at; - - gprs_subscr_update_auth_info(mmctx->subscr); - - return 0; -}; - -static void test_gmm_attach_subscr_real_auth(void) -{ - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - struct gprs_subscr *subscr; - - sgsn_inst.cfg.auth_policy = SGSN_AUTH_POLICY_REMOTE; - subscr_request_update_location_cb = my_subscr_request_update_location; - subscr_request_auth_info_cb = my_subscr_request_auth_info_real_auth; - - subscr = gprs_subscr_get_or_create("123456789012345"); - subscr->authorized = 1; - sgsn->cfg.require_authentication = 1; - sgsn->cfg.require_update_location = 1; - - printf("Auth policy 'remote', triplet based auth: "); - - test_gmm_attach(0); - gprs_subscr_put(subscr); - assert_no_subscrs(); - - sgsn->cfg.auth_policy = saved_auth_policy; - subscr_request_update_location_cb = __real_gprs_subscr_request_update_location; - subscr_request_auth_info_cb = __real_gprs_subscr_request_auth_info; - - cleanup_test(); -} - -#define TEST_GSUP_IMSI_LONG_IE 0x01, 0x08, \ - 0x21, 0x43, 0x65, 0x87, 0x09, 0x21, 0x43, 0xf5 - -static int auth_info_skip = 0; -static int upd_loc_skip = 0; - -int my_subscr_request_auth_info_gsup_auth(struct sgsn_mm_ctx *mmctx) -{ - static const uint8_t send_auth_info_res[] = { - 0x0a, - TEST_GSUP_IMSI_LONG_IE, - 0x03, 0x22, /* Auth tuple */ - 0x20, 0x10, - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, - 0x21, 0x04, - 0x51, 0xe5, 0x51, 0xe5, - 0x22, 0x08, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - }; - - OSMO_ASSERT(!mmctx || mmctx->subscr); - - if (auth_info_skip > 0) { - auth_info_skip -= 1; - return -EAGAIN; - } - - /* Fake an SendAuthInfoRes */ - rx_gsup_message(send_auth_info_res, sizeof(send_auth_info_res)); - - return 0; -}; - -int my_subscr_request_update_gsup_auth(struct sgsn_mm_ctx *mmctx) { - static const uint8_t update_location_res[] = { - 0x06, - TEST_GSUP_IMSI_LONG_IE, - 0x04, 0x00, /* PDP info complete */ - 0x05, 0x12, - 0x10, 0x01, 0x01, - 0x11, 0x02, 0xf1, 0x21, /* IPv4 */ - 0x12, 0x09, 0x04, 't', 'e', 's', 't', 0x03, 'a', 'p', 'n', - 0x08, 0x07, /* MSISDN 49166213323 encoded */ - 0x91, 0x94, 0x61, 0x26, 0x31, 0x23, 0xF3, - 0x09, 0x07, /* MSISDN 38166213323 encoded */ - 0x91, 0x83, 0x61, 0x26, 0x31, 0x23, 0xF3, - }; - - OSMO_ASSERT(!mmctx || mmctx->subscr); - - if (upd_loc_skip > 0) { - upd_loc_skip -= 1; - return -EAGAIN; - } - - /* Fake an UpdateLocRes */ - return rx_gsup_message(update_location_res, sizeof(update_location_res)); -}; - - -static void test_gmm_attach_subscr_gsup_auth(int retry) -{ - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - struct gprs_subscr *subscr; - - sgsn_inst.cfg.auth_policy = SGSN_AUTH_POLICY_REMOTE; - subscr_request_update_location_cb = my_subscr_request_update_gsup_auth; - subscr_request_auth_info_cb = my_subscr_request_auth_info_gsup_auth; - if (retry) { - upd_loc_skip = 3; - auth_info_skip = 3; - } - - subscr = gprs_subscr_get_or_create("123456789012345"); - subscr->authorized = 1; - sgsn->cfg.require_authentication = 1; - sgsn->cfg.require_update_location = 1; - gprs_subscr_put(subscr); - - printf("Auth policy 'remote', GSUP based auth: "); - test_gmm_attach(retry); - assert_no_subscrs(); - - sgsn->cfg.auth_policy = saved_auth_policy; - subscr_request_update_location_cb = __real_gprs_subscr_request_update_location; - subscr_request_auth_info_cb = __real_gprs_subscr_request_auth_info; - upd_loc_skip = 0; - auth_info_skip = 0; - - cleanup_test(); -} - -int my_gsup_client_send(struct gsup_client *gsupc, struct msgb *msg) -{ - struct osmo_gsup_message to_peer = {0}; - struct osmo_gsup_message from_peer = {0}; - struct msgb *reply_msg; - int rc; - - /* Simulate the GSUP peer */ - rc = osmo_gsup_decode(msgb_data(msg), msgb_length(msg), &to_peer); - OSMO_ASSERT(rc >= 0); - OSMO_ASSERT(to_peer.imsi[0] != 0); - osmo_strlcpy(from_peer.imsi, to_peer.imsi, sizeof(from_peer.imsi)); - - /* This invalidates the pointers in to_peer */ - msgb_free(msg); - - switch (to_peer.message_type) { - case OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: - /* Send UPDATE_LOCATION_RESULT */ - return my_subscr_request_update_gsup_auth(NULL); - - case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: - /* Send SEND_AUTH_INFO_RESULT */ - return my_subscr_request_auth_info_gsup_auth(NULL); - - case OSMO_GSUP_MSGT_PURGE_MS_REQUEST: - from_peer.message_type = OSMO_GSUP_MSGT_PURGE_MS_RESULT; - break; - - default: - if ((to_peer.message_type & 0b00000011) == 0) { - /* Unhandled request */ - /* Send error(NOT_IMPL) */ - from_peer.message_type = to_peer.message_type + 1; - from_peer.cause = GMM_CAUSE_MSGT_NOTEXIST_NOTIMPL; - break; - } - - /* Ignore it */ - return 0; - } - - reply_msg = gsup_client_msgb_alloc(); - reply_msg->l2h = reply_msg->data; - osmo_gsup_encode(reply_msg, &from_peer); - gprs_subscr_rx_gsup_message(reply_msg); - msgb_free(reply_msg); - - return 0; -}; - -static void test_gmm_attach_subscr_real_gsup_auth(int retry) -{ - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - struct gprs_subscr *subscr; - - sgsn_inst.cfg.auth_policy = SGSN_AUTH_POLICY_REMOTE; - gsup_client_send_cb = my_gsup_client_send; - - sgsn->gsup_client = talloc_zero(tall_bsc_ctx, struct gsup_client); - - if (retry) { - upd_loc_skip = 3; - auth_info_skip = 3; - } - - printf("Auth policy 'remote', real GSUP based auth: "); - test_gmm_attach(retry); - - subscr = gprs_subscr_get_by_imsi("123456789012345"); - OSMO_ASSERT(subscr == NULL); - assert_no_subscrs(); - - sgsn->cfg.auth_policy = saved_auth_policy; - gsup_client_send_cb = __real_gsup_client_send; - upd_loc_skip = 0; - auth_info_skip = 0; - talloc_free(sgsn->gsup_client); - sgsn->gsup_client = NULL; - - cleanup_test(); -} - -/* - * Test the GMM Rejects - */ -static void test_gmm_reject(void) -{ - struct gprs_ra_id raid = { 0, }; - struct sgsn_mm_ctx *ctx = NULL; - uint32_t foreign_tlli; - struct gprs_llc_lle *lle; - int idx; - - /* DTAP - Attach Request */ - /* Invalid MI length */ - static const unsigned char attach_req_inv_mi_len[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, 0x09, 0xf4, - 0xfb, 0xc5, 0x46, 0x79, 0xff, 0xff, 0xff, 0xff, 0x11, 0x22, - 0x33, 0x40, 0x50, 0x60, 0x19, 0x18, 0xb3, 0x43, 0x2b, 0x25, - 0x96, 0x62, 0x00, 0x60, 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, - 0x60, 0x80, 0xba, 0xc8, 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00 - }; - - /* DTAP - Attach Request */ - /* Invalid MI type (IMEI) */ - static const unsigned char attach_req_inv_mi_type[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, 0x05, 0xf2, - 0xfb, 0xc5, 0x46, 0x79, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, - 0x19, 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60, - 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80, 0xba, 0xc8, - 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00 - }; - - /* DTAP - Routing Area Update Request */ - static const unsigned char dtap_ra_upd_req[] = { - 0x08, 0x08, 0x10, 0x11, 0x22, 0x33, 0x40, 0x50, - 0x60, 0x1d, 0x19, 0x13, 0x42, 0x33, 0x57, 0x2b, - 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48, 0x50, 0xc8, - 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8, 0x48, 0x02, - 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02, 0x00, 0x19, - 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27, 0x07, 0x04, - 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02, 0x20, 0x00 - }; - - /* DTAP - Routing Area Update Request */ - /* Invalid type: GPRS_UPD_T_RA_LA_IMSI_ATT */ - static const unsigned char dtap_ra_upd_req_inv_type[] = { - 0x08, 0x08, 0x12, 0x11, 0x22, 0x33, 0x40, 0x50, - 0x60, 0x1d, 0x19, 0x13, 0x42, 0x33, 0x57, 0x2b, - 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48, 0x50, 0xc8, - 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8, 0x48, 0x02, - 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02, 0x00, 0x19, - 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27, 0x07, 0x04, - 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02, 0x20, 0x00 - }; - - /* DTAP - Routing Area Update Request */ - /* Invalid cap length */ - static const unsigned char dtap_ra_upd_req_inv_cap_len[] = { - 0x08, 0x08, 0x10, 0x11, 0x22, 0x33, 0x40, 0x50, - 0x60, 0x3d, 0x19, 0x13, 0x42, 0x33, 0x57, 0x2b, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48, 0x50, 0xc8, - 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8, 0x48, 0x02, - 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02, 0x00, 0x19, - 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27, 0x07, 0x04, - 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02, 0x20, 0x00 - }; - - struct test { - const char *title; - const unsigned char *msg; - unsigned msg_len; - unsigned num_resp; - - }; - static struct test tests[] = { - { - .title = "Attach Request (invalid MI length)", - .msg = attach_req_inv_mi_len, - .msg_len = sizeof(attach_req_inv_mi_len), - .num_resp = 1 /* Reject */ - - }, - { - .title = "Attach Request (invalid MI type)", - .msg = attach_req_inv_mi_type, - .msg_len = sizeof(attach_req_inv_mi_type), - .num_resp = 1 /* Reject */ - }, - { - .title = "Routing Area Update Request (valid)", - .msg = dtap_ra_upd_req, - .msg_len = sizeof(dtap_ra_upd_req), - .num_resp = 2 /* XID Reset + Reject */ - }, - { - .title = "Routing Area Update Request (invalid type)", - .msg = dtap_ra_upd_req_inv_type, - .msg_len = sizeof(dtap_ra_upd_req_inv_type), - .num_resp = 1 /* Reject */ - }, - { - .title = "Routing Area Update Request (invalid CAP length)", - .msg = dtap_ra_upd_req_inv_cap_len, - .msg_len = sizeof(dtap_ra_upd_req_inv_cap_len), - .num_resp = 1 /* Reject */ - }, - }; - - printf("Testing GMM reject\n"); - - /* reset the PRNG used by sgsn_alloc_ptmsi */ - srand(1); - - foreign_tlli = gprs_tmsi2tlli(0xc0000023, TLLI_FOREIGN); - - OSMO_ASSERT(count(gprs_llme_list()) == 0); - - for (idx = 0; idx < ARRAY_SIZE(tests); idx++) { - const struct test *test = &tests[idx]; - printf(" - %s\n", test->title); - - /* Create a LLE/LLME */ - lle = gprs_lle_get_or_create(foreign_tlli, 3); - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* Inject the Request message */ - send_0408_message(lle->llme, foreign_tlli, &raid, - test->msg, test->msg_len); - - /* We expect a Reject message */ - fprintf(stderr, "sgsn_tx_counter = %d (expected %d)\n", - sgsn_tx_counter, test->num_resp); - OSMO_ASSERT(sgsn_tx_counter == test->num_resp); - - /* verify that LLME/MM are removed */ - ctx = sgsn_mm_ctx_by_tlli(foreign_tlli, &raid); - OSMO_ASSERT(ctx == NULL); - OSMO_ASSERT(count(gprs_llme_list()) == 0); - } - - cleanup_test(); -} - -/* - * Test cancellation of attached MM contexts - */ -static void test_gmm_cancel(void) -{ - struct gprs_ra_id raid = { 0, }; - struct sgsn_mm_ctx *ctx = NULL; - struct sgsn_mm_ctx *ictx; - uint32_t ptmsi1; - uint32_t foreign_tlli; - uint32_t local_tlli = 0; - struct gprs_llc_lle *lle; - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - - /* DTAP - Attach Request */ - /* The P-TMSI is not known by the SGSN */ - static const unsigned char attach_req[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, 0x05, 0xf4, - 0xfb, 0xc5, 0x46, 0x79, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, - 0x19, 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, 0x60, - 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, 0x80, 0xba, 0xc8, - 0xc6, 0x62, 0x00, 0x60, 0x80, 0x00 - }; - - /* DTAP - Identity Response IMEI */ - static const unsigned char ident_resp_imei[] = { - 0x08, 0x16, 0x08, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, - 0x56 - }; - - /* DTAP - Identity Response IMSI */ - static const unsigned char ident_resp_imsi[] = { - 0x08, 0x16, 0x08, 0x19, 0x32, 0x54, 0x76, 0x98, 0x10, 0x32, - 0x54 - }; - - /* DTAP - Attach Complete */ - static const unsigned char attach_compl[] = { - 0x08, 0x03 - }; - - printf("Testing cancellation\n"); - - sgsn_inst.cfg.auth_policy = SGSN_AUTH_POLICY_OPEN; - - foreign_tlli = gprs_tmsi2tlli(0xc0000023, TLLI_FOREIGN); - - /* Create a LLE/LLME */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - lle = gprs_lle_get_or_create(foreign_tlli, 3); - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* inject the attach request */ - send_0408_message(lle->llme, foreign_tlli, &raid, - attach_req, ARRAY_SIZE(attach_req)); - - ctx = sgsn_mm_ctx_by_tlli(foreign_tlli, &raid); - OSMO_ASSERT(ctx != NULL); - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - - /* we expect an identity request (IMEI) */ - OSMO_ASSERT(sgsn_tx_counter == 1); - - /* inject the identity response (IMEI) */ - send_0408_message(ctx->gb.llme, foreign_tlli, &raid, - ident_resp_imei, ARRAY_SIZE(ident_resp_imei)); - - /* we expect an identity request (IMSI) */ - OSMO_ASSERT(sgsn_tx_counter == 1); - - /* inject the identity response (IMSI) */ - send_0408_message(ctx->gb.llme, foreign_tlli, &raid, - ident_resp_imsi, ARRAY_SIZE(ident_resp_imsi)); - - /* check that the MM context has not been removed due to a failed - * authorization */ - OSMO_ASSERT(ctx == sgsn_mm_ctx_by_tlli(foreign_tlli, &raid)); - - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - - /* we expect an attach accept/reject */ - OSMO_ASSERT(sgsn_tx_counter == 1); - ptmsi1 = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(ptmsi1 != GSM_RESERVED_TMSI); - - /* this has been randomly assigned by the SGSN */ - local_tlli = gprs_tmsi2tlli(ptmsi1, TLLI_LOCAL); - - /* inject the attach complete */ - send_0408_message(ctx->gb.llme, foreign_tlli, &raid, - attach_compl, ARRAY_SIZE(attach_compl)); - - OSMO_ASSERT(ctx->gmm_state == GMM_REGISTERED_NORMAL); - - /* we don't expect a response */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - /* cancel */ - gsm0408_gprs_access_cancelled(ctx, 0); - - /* verify that things are gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ictx = sgsn_mm_ctx_by_tlli(local_tlli, &raid); - OSMO_ASSERT(!ictx); - - sgsn->cfg.auth_policy = saved_auth_policy; - - cleanup_test(); -} - -/* - * Test the dynamic allocation of P-TMSIs - */ -static void test_gmm_ptmsi_allocation(void) -{ - struct gprs_ra_id raid = {332, 112, 16464, 96}; - struct sgsn_mm_ctx *ctx = NULL; - struct sgsn_mm_ctx *ictx; - uint32_t foreign_tlli; - uint32_t ptmsi1; - uint32_t ptmsi2; - uint32_t received_ptmsi; - uint32_t old_ptmsi; - uint32_t local_tlli = 0; - struct gprs_llc_lle *lle; - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - - /* DTAP - Attach Request (IMSI 12131415161718) */ - static const unsigned char attach_req[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, - 0x08, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, 0x19, - 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, - 0x60, 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, - 0x80, 0xba, 0xc8, 0xc6, 0x62, 0x00, 0x60, 0x80, - 0x00, - }; - - /* DTAP - Identity Response IMEI */ - static const unsigned char ident_resp_imei[] = { - 0x08, 0x16, 0x08, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, - 0x56 - }; - - /* DTAP - Attach Complete */ - static const unsigned char attach_compl[] = { - 0x08, 0x03 - }; - - /* DTAP - Routing Area Update Request */ - static const unsigned char ra_upd_req[] = { - 0x08, 0x08, 0x10, 0x11, 0x22, 0x33, 0x40, 0x50, - 0x60, 0x1d, 0x19, 0x13, 0x42, 0x33, 0x57, 0x2b, - 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48, 0x50, 0xc8, - 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8, 0x48, 0x02, - 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02, 0x00, 0x19, - 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27, 0x07, 0x04, - 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02, 0x20, 0x00 - }; - - /* DTAP - Routing Area Update Complete */ - static const unsigned char ra_upd_complete[] = { - 0x08, 0x0a - }; - - /* DTAP - Detach Request (MO) */ - /* normal detach, power_off = 1 */ - static const unsigned char detach_req[] = { - 0x08, 0x05, 0x09, 0x18, 0x05, 0xf4, 0xef, 0xe2, - 0xb7, 0x00, 0x19, 0x03, 0xb9, 0x97, 0xcb - }; - - sgsn->cfg.auth_policy = SGSN_AUTH_POLICY_OPEN; - - printf("Testing P-TMSI allocation\n"); - - printf(" - sgsn_alloc_ptmsi\n"); - - /* reset the PRNG used by sgsn_alloc_ptmsi */ - srand(1); - - ptmsi1 = sgsn_alloc_ptmsi(); - OSMO_ASSERT(ptmsi1 != GSM_RESERVED_TMSI); - - ptmsi2 = sgsn_alloc_ptmsi(); - OSMO_ASSERT(ptmsi2 != GSM_RESERVED_TMSI); - - OSMO_ASSERT(ptmsi1 != ptmsi2); - - ptmsi1 = ptmsi2 = GSM_RESERVED_TMSI; - - printf(" - Repeated Attach Request\n"); - - foreign_tlli = gprs_tmsi2tlli(0xc0000023, TLLI_FOREIGN); - - /* Create a LLE/LLME */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - lle = gprs_lle_get_or_create(foreign_tlli, 3); - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* inject the attach request */ - send_0408_message(lle->llme, foreign_tlli, &raid, - attach_req, ARRAY_SIZE(attach_req)); - - ctx = sgsn_mm_ctx_by_tlli(foreign_tlli, &raid); - OSMO_ASSERT(ctx != NULL); - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi != GSM_RESERVED_TMSI); - ptmsi1 = ctx->p_tmsi; - - old_ptmsi = ctx->p_tmsi_old; - - /* we expect an identity request (IMEI) */ - OSMO_ASSERT(sgsn_tx_counter == 1); - - /* inject the identity response (IMEI) */ - send_0408_message(ctx->gb.llme, foreign_tlli, &raid, - ident_resp_imei, ARRAY_SIZE(ident_resp_imei)); - - /* check that the MM context has not been removed due to a failed - * authorization */ - OSMO_ASSERT(ctx == sgsn_mm_ctx_by_tlli(foreign_tlli, &raid)); - - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi == ptmsi1); - - /* we expect an attach accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - received_ptmsi = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(received_ptmsi == ptmsi1); - - /* we ignore this and send the attach again */ - send_0408_message(lle->llme, foreign_tlli, &raid, - attach_req, ARRAY_SIZE(attach_req)); - - /* the allocated P-TMSI should be the same */ - ctx = sgsn_mm_ctx_by_tlli(foreign_tlli, &raid); - OSMO_ASSERT(ctx != NULL); - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi_old == old_ptmsi); - OSMO_ASSERT(ctx->p_tmsi == ptmsi1); - - /* we expect an attach accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - received_ptmsi = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(received_ptmsi == ptmsi1); - - /* inject the attach complete */ - local_tlli = gprs_tmsi2tlli(ptmsi1, TLLI_LOCAL); - send_0408_message(ctx->gb.llme, local_tlli, &raid, - attach_compl, ARRAY_SIZE(attach_compl)); - - /* we don't expect a response */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - OSMO_ASSERT(ctx->gmm_state == GMM_REGISTERED_NORMAL); - OSMO_ASSERT(ctx->p_tmsi_old == 0); - OSMO_ASSERT(ctx->p_tmsi == ptmsi1); - - printf(" - Repeated RA Update Request\n"); - - /* inject the RA update request */ - send_0408_message(ctx->gb.llme, local_tlli, &raid, - ra_upd_req, ARRAY_SIZE(ra_upd_req)); - - /* we expect an RA update accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi_old == ptmsi1); - OSMO_ASSERT(ctx->p_tmsi != GSM_RESERVED_TMSI); - OSMO_ASSERT(ctx->p_tmsi != ptmsi1); - ptmsi2 = ctx->p_tmsi; - - /* repeat the RA update request */ - send_0408_message(ctx->gb.llme, local_tlli, &raid, - ra_upd_req, ARRAY_SIZE(ra_upd_req)); - - /* we expect an RA update accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - received_ptmsi = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(received_ptmsi == ptmsi2); - - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi_old == ptmsi1); - OSMO_ASSERT(ctx->p_tmsi == ptmsi2); - - /* inject the RA update complete */ - local_tlli = gprs_tmsi2tlli(ptmsi2, TLLI_LOCAL); - send_0408_message(ctx->gb.llme, local_tlli, &raid, - ra_upd_complete, ARRAY_SIZE(ra_upd_complete)); - - /* we don't expect a response */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - OSMO_ASSERT(ctx->gmm_state == GMM_REGISTERED_NORMAL); - OSMO_ASSERT(ctx->p_tmsi_old == 0); - OSMO_ASSERT(ctx->p_tmsi == ptmsi2); - - /* inject the detach */ - send_0408_message(ctx->gb.llme, local_tlli, &raid, - detach_req, ARRAY_SIZE(detach_req)); - - /* verify that things are gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ictx = sgsn_mm_ctx_by_tlli(local_tlli, &raid); - OSMO_ASSERT(!ictx); - - sgsn->cfg.auth_policy = saved_auth_policy; - - cleanup_test(); -} - -/* - * Test changing of routing areas - */ -static void test_gmm_routing_areas(void) -{ - struct gprs_ra_id raid1 = {332, 112, 16464, 96}; - struct gprs_ra_id raid2 = {332, 112, 16464, 97}; - struct sgsn_mm_ctx *ctx = NULL; - struct sgsn_mm_ctx *ictx; - uint32_t ptmsi1; - uint32_t received_ptmsi; - uint32_t ms_tlli = 0; - struct gprs_llc_lle *lle; - const enum sgsn_auth_policy saved_auth_policy = sgsn->cfg.auth_policy; - - /* DTAP - Attach Request (IMSI 12131415161718) */ - static const unsigned char attach_req[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, - 0x08, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x11, 0x22, 0x33, 0x40, 0x50, 0x60, 0x19, - 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, - 0x60, 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, - 0x80, 0xba, 0xc8, 0xc6, 0x62, 0x00, 0x60, 0x80, - 0x00, - }; - - /* DTAP - Attach Request (IMSI 12131415161718) (RA 2) */ - static const unsigned char attach_req2[] = { - 0x08, 0x01, 0x02, 0xf5, 0xe0, 0x21, 0x08, 0x02, - 0x08, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x18, 0x11, 0x22, 0x33, 0x40, 0x50, 0x61, 0x19, - 0x18, 0xb3, 0x43, 0x2b, 0x25, 0x96, 0x62, 0x00, - 0x60, 0x80, 0x9a, 0xc2, 0xc6, 0x62, 0x00, 0x60, - 0x80, 0xba, 0xc8, 0xc6, 0x62, 0x00, 0x60, 0x80, - 0x00, - }; - - /* DTAP - Identity Response IMEI */ - static const unsigned char ident_resp_imei[] = { - 0x08, 0x16, 0x08, 0x9a, 0x78, 0x56, 0x34, 0x12, 0x90, 0x78, - 0x56 - }; - - /* DTAP - Attach Complete */ - static const unsigned char attach_compl[] = { - 0x08, 0x03 - }; - - /* DTAP - Routing Area Update Request (coming from RA 1) */ - static const unsigned char ra_upd_req1[] = { - 0x08, 0x08, 0x10, 0x11, 0x22, 0x33, 0x40, 0x50, - 0x60, 0x1d, 0x19, 0x13, 0x42, 0x33, 0x57, 0x2b, - 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48, 0x50, 0xc8, - 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8, 0x48, 0x02, - 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02, 0x00, 0x19, - 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27, 0x07, 0x04, - 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02, 0x20, 0x00 - }; - - /* DTAP - Routing Area Update Request (coming from RA 2) */ - static const unsigned char ra_upd_req2[] = { - 0x08, 0x08, 0x10, 0x11, 0x22, 0x33, 0x40, 0x50, - 0x61, 0x1d, 0x19, 0x13, 0x42, 0x33, 0x57, 0x2b, - 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48, 0x50, 0xc8, - 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8, 0x48, 0x02, - 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02, 0x00, 0x19, - 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27, 0x07, 0x04, - 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02, 0x20, 0x00 - }; - - /* DTAP - Routing Area Update Request (coming from RA other) */ - /* raid_other = {443, 223, 16464, 98}; */ - static const unsigned char ra_upd_req_other[] = { - 0x08, 0x08, 0x10, 0x22, 0x33, 0x44, 0x40, 0x50, - 0x62, 0x1d, 0x19, 0x13, 0x42, 0x33, 0x57, 0x2b, - 0xf7, 0xc8, 0x48, 0x02, 0x13, 0x48, 0x50, 0xc8, - 0x48, 0x02, 0x14, 0x48, 0x50, 0xc8, 0x48, 0x02, - 0x17, 0x49, 0x10, 0xc8, 0x48, 0x02, 0x00, 0x19, - 0x8b, 0xb2, 0x92, 0x17, 0x16, 0x27, 0x07, 0x04, - 0x31, 0x02, 0xe5, 0xe0, 0x32, 0x02, 0x20, 0x00 - }; - - /* DTAP - Routing Area Update Complete */ - static const unsigned char ra_upd_complete[] = { - 0x08, 0x0a - }; - - /* DTAP - Detach Request (MO) */ - /* normal detach, power_off = 1 */ - static const unsigned char detach_req[] = { - 0x08, 0x05, 0x09, 0x18, 0x05, 0xf4, 0xef, 0xe2, - 0xb7, 0x00, 0x19, 0x03, 0xb9, 0x97, 0xcb - }; - - sgsn->cfg.auth_policy = SGSN_AUTH_POLICY_OPEN; - - printf("Testing routing area changes\n"); - - /* reset the PRNG used by sgsn_alloc_ptmsi */ - srand(1); - - ptmsi1 = GSM_RESERVED_TMSI; - - printf(" - Attach Request (RA 1)\n"); - - ms_tlli = gprs_tmsi2tlli(0x00000023, TLLI_RANDOM); - - /* Create a LLE/LLME */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - lle = gprs_lle_get_or_create(ms_tlli, 3); - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* inject the attach request */ - send_0408_message(lle->llme, ms_tlli, &raid1, - attach_req, ARRAY_SIZE(attach_req)); - - ctx = sgsn_mm_ctx_by_tlli(ms_tlli, &raid1); - OSMO_ASSERT(ctx != NULL); - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi != GSM_RESERVED_TMSI); - - /* we expect an identity request (IMEI) */ - OSMO_ASSERT(sgsn_tx_counter == 1); - OSMO_ASSERT(last_dl_parse_ctx.g48_hdr->msg_type == GSM48_MT_GMM_ID_REQ); - OSMO_ASSERT(last_dl_parse_ctx.tlli == ms_tlli); - - /* inject the identity response (IMEI) */ - send_0408_message(ctx->gb.llme, ms_tlli, &raid1, - ident_resp_imei, ARRAY_SIZE(ident_resp_imei)); - - /* check that the MM context has not been removed due to a failed - * authorization */ - OSMO_ASSERT(ctx == sgsn_mm_ctx_by_tlli(ms_tlli, &raid1)); - - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - - /* we expect an attach accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - OSMO_ASSERT(last_dl_parse_ctx.g48_hdr->msg_type == GSM48_MT_GMM_ATTACH_ACK); - OSMO_ASSERT(last_dl_parse_ctx.tlli == ms_tlli); - - received_ptmsi = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(received_ptmsi == ctx->p_tmsi); - ptmsi1 = received_ptmsi; - - /* inject the attach complete */ - ms_tlli = gprs_tmsi2tlli(ptmsi1, TLLI_LOCAL); - send_0408_message(ctx->gb.llme, ms_tlli, &raid1, - attach_compl, ARRAY_SIZE(attach_compl)); - - /* we don't expect a response */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - OSMO_ASSERT(ctx->gmm_state == GMM_REGISTERED_NORMAL); - OSMO_ASSERT(ctx->p_tmsi_old == 0); - OSMO_ASSERT(ctx->p_tmsi == ptmsi1); - - printf(" - RA Update Request (RA 1 -> RA 1)\n"); - - /* inject the RA update request */ - send_0408_message(ctx->gb.llme, ms_tlli, &raid1, - ra_upd_req1, ARRAY_SIZE(ra_upd_req1)); - - /* we expect an RA update accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - OSMO_ASSERT(last_dl_parse_ctx.g48_hdr->msg_type == GSM48_MT_GMM_RA_UPD_ACK); - // OSMO_ASSERT(last_dl_parse_ctx.tlli == ms_tlli); - - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi_old == ptmsi1); - OSMO_ASSERT(ctx->p_tmsi != GSM_RESERVED_TMSI); - OSMO_ASSERT(ctx->p_tmsi != ptmsi1); - - received_ptmsi = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(received_ptmsi == ctx->p_tmsi); - ptmsi1 = received_ptmsi; - - /* inject the RA update complete */ - ms_tlli = gprs_tmsi2tlli(ptmsi1, TLLI_LOCAL); - send_0408_message(ctx->gb.llme, ms_tlli, &raid1, - ra_upd_complete, ARRAY_SIZE(ra_upd_complete)); - - /* we don't expect a response */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - OSMO_ASSERT(ctx->gmm_state == GMM_REGISTERED_NORMAL); - OSMO_ASSERT(ctx->p_tmsi_old == 0); - OSMO_ASSERT(ctx->p_tmsi == ptmsi1); - OSMO_ASSERT(ctx->gb.tlli == ms_tlli); - - printf(" - RA Update Request (RA 1 -> RA 2)\n"); - - /* inject the RA update request */ - ms_tlli = gprs_tmsi2tlli(ptmsi1, TLLI_FOREIGN); - - /* It is coming from RA 1 => ra_upd_req1 */ - send_0408_message(ctx->gb.llme, ms_tlli, &raid2, - ra_upd_req1, ARRAY_SIZE(ra_upd_req1)); - - /* we expect an RA update accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - OSMO_ASSERT(last_dl_parse_ctx.g48_hdr->msg_type == GSM48_MT_GMM_RA_UPD_ACK); - - printf(" - RA Update Request (RA other -> RA 2)\n"); - - /* inject the RA update request */ - ms_tlli = gprs_tmsi2tlli(0x12345678, TLLI_FOREIGN); - - /* It is coming from RA 1 => ra_upd_req1 */ - send_0408_message(ctx->gb.llme, ms_tlli, &raid2, - ra_upd_req_other, ARRAY_SIZE(ra_upd_req_other)); - - /* we expect an RA update reject (and a LLC XID RESET) */ - OSMO_ASSERT(sgsn_tx_counter == 2); - OSMO_ASSERT(last_dl_parse_ctx.g48_hdr->msg_type == GSM48_MT_GMM_RA_UPD_REJ); - /* this has killed the LLE/LLME */ - - printf(" - Attach Request (RA 2)\n"); - - /* Create a LLE/LLME */ - OSMO_ASSERT(count(gprs_llme_list()) == 1); - lle = gprs_lle_get_or_create(ms_tlli, 3); - OSMO_ASSERT(count(gprs_llme_list()) == 1); - - /* inject the attach request */ - send_0408_message(lle->llme, ms_tlli, &raid2, - attach_req2, ARRAY_SIZE(attach_req2)); - - ctx = sgsn_mm_ctx_by_tlli(ms_tlli, &raid2); - OSMO_ASSERT(ctx != NULL); - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi != GSM_RESERVED_TMSI); - - /* we expect an attach accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - OSMO_ASSERT(last_dl_parse_ctx.g48_hdr->msg_type == GSM48_MT_GMM_ATTACH_ACK); - - received_ptmsi = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(received_ptmsi == ctx->p_tmsi); - ptmsi1 = received_ptmsi; - - /* inject the attach complete */ - ms_tlli = gprs_tmsi2tlli(ptmsi1, TLLI_LOCAL); - ictx = sgsn_mm_ctx_by_tlli(ms_tlli, &raid2); - OSMO_ASSERT(ictx != NULL); - OSMO_ASSERT(ictx == ctx); - - send_0408_message(ctx->gb.llme, ms_tlli, &raid2, - attach_compl, ARRAY_SIZE(attach_compl)); - - /* we don't expect a response */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - OSMO_ASSERT(ctx->gmm_state == GMM_REGISTERED_NORMAL); - OSMO_ASSERT(ctx->p_tmsi_old == 0); - OSMO_ASSERT(ctx->p_tmsi == ptmsi1); - - printf(" - RA Update Request (RA 2 -> RA 2)\n"); - - /* inject the RA update request */ - send_0408_message(ctx->gb.llme, ms_tlli, &raid2, - ra_upd_req2, ARRAY_SIZE(ra_upd_req2)); - - /* we expect an RA update accept */ - OSMO_ASSERT(sgsn_tx_counter == 1); - OSMO_ASSERT(last_dl_parse_ctx.g48_hdr->msg_type == GSM48_MT_GMM_RA_UPD_ACK); - - OSMO_ASSERT(ctx->gmm_state == GMM_COMMON_PROC_INIT); - OSMO_ASSERT(ctx->p_tmsi_old == ptmsi1); - OSMO_ASSERT(ctx->p_tmsi != GSM_RESERVED_TMSI); - OSMO_ASSERT(ctx->p_tmsi != ptmsi1); - - received_ptmsi = get_new_ptmsi(&last_dl_parse_ctx); - OSMO_ASSERT(received_ptmsi == ctx->p_tmsi); - ptmsi1 = received_ptmsi; - - /* inject the RA update complete */ - ms_tlli = gprs_tmsi2tlli(ptmsi1, TLLI_LOCAL); - send_0408_message(ctx->gb.llme, ms_tlli, &raid2, - ra_upd_complete, ARRAY_SIZE(ra_upd_complete)); - - /* we don't expect a response */ - OSMO_ASSERT(sgsn_tx_counter == 0); - - OSMO_ASSERT(ctx->gmm_state == GMM_REGISTERED_NORMAL); - OSMO_ASSERT(ctx->p_tmsi_old == 0); - OSMO_ASSERT(ctx->p_tmsi == ptmsi1); - OSMO_ASSERT(ctx->gb.tlli == ms_tlli); - - - /* inject the detach */ - send_0408_message(ctx->gb.llme, ms_tlli, &raid2, - detach_req, ARRAY_SIZE(detach_req)); - - /* verify that things are gone */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ictx = sgsn_mm_ctx_by_tlli(ms_tlli, &raid2); - OSMO_ASSERT(!ictx); - - sgsn->cfg.auth_policy = saved_auth_policy; - - cleanup_test(); -} - -static void test_apn_matching(void) -{ - struct apn_ctx *actx, *actxs[9]; - - printf("Testing APN matching\n"); - - actxs[0] = sgsn_apn_ctx_find_alloc("*.test", ""); - actxs[1] = sgsn_apn_ctx_find_alloc("*.def.test", ""); - actxs[2] = sgsn_apn_ctx_find_alloc("abc.def.test", ""); - actxs[3] = NULL; - - actxs[4] = sgsn_apn_ctx_find_alloc("abc.def.test", "456"); - actxs[5] = sgsn_apn_ctx_find_alloc("abc.def.test", "456123"); - actxs[6] = sgsn_apn_ctx_find_alloc("*.def.test", "456"); - actxs[7] = sgsn_apn_ctx_find_alloc("*.def.test", "456123"); - - actxs[8] = sgsn_apn_ctx_find_alloc("ghi.def.test", "456"); - - actx = sgsn_apn_ctx_match("abc.def.test", "12345678"); - OSMO_ASSERT(actx == actxs[2]); - actx = sgsn_apn_ctx_match("aBc.dEf.test", "12345678"); - OSMO_ASSERT(actx == actxs[2]); - actx = sgsn_apn_ctx_match("xyz.def.test", "12345678"); - OSMO_ASSERT(actx == actxs[1]); - actx = sgsn_apn_ctx_match("xyz.dEf.test", "12345678"); - OSMO_ASSERT(actx == actxs[1]); - actx = sgsn_apn_ctx_match("xyz.uvw.test", "12345678"); - OSMO_ASSERT(actx == actxs[0]); - actx = sgsn_apn_ctx_match("xyz.uvw.foo", "12345678"); - OSMO_ASSERT(actx == NULL); - - actxs[3] = sgsn_apn_ctx_find_alloc("*", ""); - actx = sgsn_apn_ctx_match("xyz.uvw.foo", "12345678"); - OSMO_ASSERT(actx == actxs[3]); - - actx = sgsn_apn_ctx_match("abc.def.test", "45699900"); - OSMO_ASSERT(actx == actxs[4]); - - actx = sgsn_apn_ctx_match("xyz.def.test", "45699900"); - OSMO_ASSERT(actx == actxs[6]); - - actx = sgsn_apn_ctx_match("abc.def.test", "45612300"); - OSMO_ASSERT(actx == actxs[5]); - - actx = sgsn_apn_ctx_match("xyz.def.test", "45612300"); - OSMO_ASSERT(actx == actxs[7]); - - actx = sgsn_apn_ctx_match("ghi.def.test", "45699900"); - OSMO_ASSERT(actx == actxs[8]); - - actx = sgsn_apn_ctx_match("ghi.def.test", "45612300"); - OSMO_ASSERT(actx == actxs[7]); - - /* Free APN contexts and check how the matching changes */ - - sgsn_apn_ctx_free(actxs[7]); - actx = sgsn_apn_ctx_match("ghi.def.test", "45612300"); - OSMO_ASSERT(actx == actxs[8]); - - sgsn_apn_ctx_free(actxs[8]); - actx = sgsn_apn_ctx_match("ghi.def.test", "45612300"); - OSMO_ASSERT(actx == actxs[6]); - - sgsn_apn_ctx_free(actxs[6]); - actx = sgsn_apn_ctx_match("ghi.def.test", "45612300"); - OSMO_ASSERT(actx == actxs[1]); - - sgsn_apn_ctx_free(actxs[5]); - actx = sgsn_apn_ctx_match("abc.def.test", "45612300"); - OSMO_ASSERT(actx == actxs[4]); - - sgsn_apn_ctx_free(actxs[4]); - actx = sgsn_apn_ctx_match("abc.def.test", "45612300"); - OSMO_ASSERT(actx == actxs[2]); - - sgsn_apn_ctx_free(actxs[2]); - actx = sgsn_apn_ctx_match("abc.def.test", "12345678"); - OSMO_ASSERT(actx == actxs[1]); - - sgsn_apn_ctx_free(actxs[1]); - actx = sgsn_apn_ctx_match("abc.def.test", "12345678"); - OSMO_ASSERT(actx == actxs[0]); - - sgsn_apn_ctx_free(actxs[0]); - actx = sgsn_apn_ctx_match("abc.def.test", "12345678"); - OSMO_ASSERT(actx == actxs[3]); - - sgsn_apn_ctx_free(actxs[3]); - actx = sgsn_apn_ctx_match("abc.def.test", "12345678"); - OSMO_ASSERT(actx == NULL); - - cleanup_test(); -} - -struct sgsn_subscriber_pdp_data* sgsn_subscriber_pdp_data_alloc( - struct sgsn_subscriber_data *sdata); - -static void test_ggsn_selection(void) -{ - struct apn_ctx *actxs[4]; - struct sgsn_ggsn_ctx *ggc, *ggcs[3]; - struct gprs_subscr *s1; - const char *imsi1 = "1234567890"; - struct sgsn_mm_ctx *ctx; - struct gprs_ra_id raid = { 0, }; - uint32_t local_tlli = 0xffeeddcc; - enum gsm48_gsm_cause gsm_cause; - struct tlv_parsed tp; - uint8_t apn_enc[GSM_APN_LENGTH + 10]; - struct sgsn_subscriber_pdp_data *pdp_data; - char apn_str[GSM_APN_LENGTH]; - - printf("Testing GGSN selection\n"); - - gsup_client_send_cb = my_gsup_client_send_dummy; - - /* Check for emptiness */ - OSMO_ASSERT(gprs_subscr_get_by_imsi(imsi1) == NULL); - - /* Create a context */ - OSMO_ASSERT(count(gprs_llme_list()) == 0); - ctx = alloc_mm_ctx(local_tlli, &raid); - osmo_strlcpy(ctx->imsi, imsi1, sizeof(ctx->imsi)); - - /* Allocate and attach a subscriber */ - s1 = gprs_subscr_get_or_create_by_mmctx(ctx); - assert_subscr(s1, imsi1); - - tp.lv[GSM48_IE_GSM_APN].len = 0; - tp.lv[GSM48_IE_GSM_APN].val = apn_enc; - - /* TODO: Add PDP info entries to s1 */ - - ggcs[0] = sgsn_ggsn_ctx_find_alloc(0); - ggcs[1] = sgsn_ggsn_ctx_find_alloc(1); - ggcs[2] = sgsn_ggsn_ctx_find_alloc(2); - - actxs[0] = sgsn_apn_ctx_find_alloc("test.apn", "123456"); - actxs[0]->ggsn = ggcs[0]; - actxs[1] = sgsn_apn_ctx_find_alloc("*.apn", "123456"); - actxs[1]->ggsn = ggcs[1]; - actxs[2] = sgsn_apn_ctx_find_alloc("*", "456789"); - actxs[2]->ggsn = ggcs[2]; - - pdp_data = sgsn_subscriber_pdp_data_alloc(s1->sgsn_data); - pdp_data->context_id = 1; - pdp_data->pdp_type = 0x0121; - osmo_strlcpy(pdp_data->apn_str, "*", sizeof(pdp_data->apn_str)); - - /* Resolve GGSNs */ - - tp.lv[GSM48_IE_GSM_APN].len = - gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Test.Apn"); - - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); - OSMO_ASSERT(ggc != NULL); - OSMO_ASSERT(ggc->id == 0); - OSMO_ASSERT(strcmp(apn_str, "Test.Apn") == 0); - - tp.lv[GSM48_IE_GSM_APN].len = - gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Other.Apn"); - - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); - OSMO_ASSERT(ggc != NULL); - OSMO_ASSERT(ggc->id == 1); - OSMO_ASSERT(strcmp(apn_str, "Other.Apn") == 0); - - tp.lv[GSM48_IE_GSM_APN].len = 0; - tp.lv[GSM48_IE_GSM_APN].val = NULL; - - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); - OSMO_ASSERT(ggc != NULL); - OSMO_ASSERT(ggc->id == 0); - OSMO_ASSERT(strcmp(apn_str, "") == 0); - - actxs[3] = sgsn_apn_ctx_find_alloc("*", "123456"); - actxs[3]->ggsn = ggcs[2]; - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); - OSMO_ASSERT(ggc != NULL); - OSMO_ASSERT(ggc->id == 2); - OSMO_ASSERT(strcmp(apn_str, "") == 0); - - sgsn_apn_ctx_free(actxs[3]); - tp.lv[GSM48_IE_GSM_APN].val = apn_enc; - - tp.lv[GSM48_IE_GSM_APN].len = - gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Foo.Bar"); - - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); - OSMO_ASSERT(ggc == NULL); - OSMO_ASSERT(gsm_cause == GSM_CAUSE_MISSING_APN); - OSMO_ASSERT(strcmp(apn_str, "Foo.Bar") == 0); - - tp.lv[GSM48_IE_GSM_APN].len = sizeof(apn_enc); - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); - OSMO_ASSERT(ggc == NULL); - OSMO_ASSERT(gsm_cause == GSM_CAUSE_INV_MAND_INFO); - - /* Add PDP data entry to subscriber */ - - osmo_strlcpy(pdp_data->apn_str, "Test.Apn", sizeof(pdp_data->apn_str)); - - tp.lv[GSM48_IE_GSM_APN].len = - gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Test.Apn"); - - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); - OSMO_ASSERT(ggc != NULL); - OSMO_ASSERT(ggc->id == 0); - OSMO_ASSERT(strcmp(apn_str, "Test.Apn") == 0); - - tp.lv[GSM48_IE_GSM_APN].len = - gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Other.Apn"); - - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); - OSMO_ASSERT(ggc == NULL); - OSMO_ASSERT(gsm_cause == GSM_CAUSE_REQ_SERV_OPT_NOTSUB); - OSMO_ASSERT(strcmp(apn_str, "") == 0); - - /* Cleanup */ - - gprs_subscr_put(s1); - sgsn_mm_ctx_cleanup_free(ctx); - - assert_no_subscrs(); - - sgsn_apn_ctx_free(actxs[0]); - sgsn_apn_ctx_free(actxs[1]); - sgsn_apn_ctx_free(actxs[2]); - - sgsn_ggsn_ctx_free(ggcs[0]); - sgsn_ggsn_ctx_free(ggcs[1]); - sgsn_ggsn_ctx_free(ggcs[2]); - - gsup_client_send_cb = __real_gsup_client_send; - - cleanup_test(); -} - -static struct log_info_cat gprs_categories[] = { - [DMM] = { - .name = "DMM", - .description = "Layer3 Mobility Management (MM)", - .color = "\033[1;33m", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DPAG] = { - .name = "DPAG", - .description = "Paging Subsystem", - .color = "\033[1;38m", - .enabled = 1, .loglevel = LOGL_NOTICE, - }, - [DMEAS] = { - .name = "DMEAS", - .description = "Radio Measurement Processing", - .enabled = 0, .loglevel = LOGL_NOTICE, - }, - [DREF] = { - .name = "DREF", - .description = "Reference Counting", - .enabled = 0, .loglevel = LOGL_NOTICE, - }, - [DGPRS] = { - .name = "DGPRS", - .description = "GPRS Packet Service", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DNS] = { - .name = "DNS", - .description = "GPRS Network Service (NS)", - .enabled = 1, .loglevel = LOGL_INFO, - }, - [DBSSGP] = { - .name = "DBSSGP", - .description = "GPRS BSS Gateway Protocol (BSSGP)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DLLC] = { - .name = "DLLC", - .description = "GPRS Logical Link Control Protocol (LLC)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, - [DSNDCP] = { - .name = "DSNDCP", - .description = "GPRS Sub-Network Dependent Control Protocol (SNDCP)", - .enabled = 1, .loglevel = LOGL_DEBUG, - }, -}; - -static struct log_info info = { - .cat = gprs_categories, - .num_cat = ARRAY_SIZE(gprs_categories), -}; - -int main(int argc, char **argv) -{ - void *osmo_sgsn_ctx; - void *msgb_ctx; - - osmo_init_logging(&info); - osmo_sgsn_ctx = talloc_named_const(NULL, 0, "osmo_sgsn"); - tall_bsc_ctx = talloc_named_const(osmo_sgsn_ctx, 0, "bsc"); - msgb_ctx = msgb_talloc_ctx_init(osmo_sgsn_ctx, 0); - - sgsn_rate_ctr_init(); - sgsn_auth_init(); - gprs_subscr_init(sgsn); - - test_llme(); - test_subscriber(); - test_auth_triplets(); - test_subscriber_gsup(); - test_gmm_detach(); - test_gmm_detach_power_off(); - test_gmm_detach_no_mmctx(); - test_gmm_detach_accept_unexpected(); - test_gmm_status_no_mmctx(); - test_gmm_attach_acl(); - test_gmm_attach_subscr(); - test_gmm_attach_subscr_fake_auth(); - test_gmm_attach_subscr_real_auth(); - test_gmm_attach_subscr_gsup_auth(0); - test_gmm_attach_subscr_gsup_auth(1); - test_gmm_attach_subscr_real_gsup_auth(0); - test_gmm_reject(); - test_gmm_cancel(); - test_gmm_ptmsi_allocation(); - test_gmm_routing_areas(); - test_apn_matching(); - test_ggsn_selection(); - printf("Done\n"); - - talloc_report_full(osmo_sgsn_ctx, stderr); - OSMO_ASSERT(talloc_total_blocks(msgb_ctx) == 1); - OSMO_ASSERT(talloc_total_blocks(tall_bsc_ctx) == 2); - return 0; -} - - -/* stubs */ -struct osmo_prim_hdr; -int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) -{ - abort(); -} diff --git a/tests/sgsn/sgsn_test.ok b/tests/sgsn/sgsn_test.ok deleted file mode 100644 index f38d7309d..000000000 --- a/tests/sgsn/sgsn_test.ok +++ /dev/null @@ -1,45 +0,0 @@ -Testing LLME allocations -Testing core subscriber data API -llist_count(gprs_subscribers) == 0 -llist_count(gprs_subscribers) == 1 -llist_count(gprs_subscribers) == 1 -llist_count(gprs_subscribers) == 2 -llist_count(gprs_subscribers) == 3 -llist_count(gprs_subscribers) == 2 -llist_count(gprs_subscribers) == 1 -llist_count(gprs_subscribers) == 0 -Testing authentication triplet handling -Testing subscriber GSUP handling -Testing GMM detach -Testing GMM detach (power off) -Testing GMM detach (no MMCTX) -Testing GMM detach accept (unexpected) -Testing GMM Status (no MMCTX) -Auth policy 'closed': Testing GMM attach -Auth policy 'remote': Testing GMM attach -Auth policy 'remote', auth faked: Testing GMM attach -Auth policy 'remote', triplet based auth: Testing GMM attach -Auth policy 'remote', GSUP based auth: Testing GMM attach -Auth policy 'remote', GSUP based auth: Testing GMM attach with retry -Auth policy 'remote', real GSUP based auth: Testing GMM attach -Testing GMM reject - - Attach Request (invalid MI length) - - Attach Request (invalid MI type) - - Routing Area Update Request (valid) - - Routing Area Update Request (invalid type) - - Routing Area Update Request (invalid CAP length) -Testing cancellation -Testing P-TMSI allocation - - sgsn_alloc_ptmsi - - Repeated Attach Request - - Repeated RA Update Request -Testing routing area changes - - Attach Request (RA 1) - - RA Update Request (RA 1 -> RA 1) - - RA Update Request (RA 1 -> RA 2) - - RA Update Request (RA other -> RA 2) - - Attach Request (RA 2) - - RA Update Request (RA 2 -> RA 2) -Testing APN matching -Testing GGSN selection -Done diff --git a/tests/slhc/Makefile.am b/tests/slhc/Makefile.am deleted file mode 100644 index 32a3cc447..000000000 --- a/tests/slhc/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBCARES_CFLAGS) - -EXTRA_DIST = slhc_test.ok - -noinst_PROGRAMS = slhc_test - -slhc_test_SOURCES = slhc_test.c - -slhc_test_LDADD = \ - $(top_builddir)/src/gprs/slhc.o \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(LIBOSMOCORE_LIBS) - - diff --git a/tests/slhc/slhc_test.c b/tests/slhc/slhc_test.c deleted file mode 100644 index d2e1cd9dc..000000000 --- a/tests/slhc/slhc_test.c +++ /dev/null @@ -1,272 +0,0 @@ -/* Test SLHC/RFC1144 TCP/IP Header compression/decompression */ - -/* (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * All Rights Reserved - * - * Author: Philipp Maier - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <openbsc/slhc.h> -#include <openbsc/debug.h> - -#include <osmocom/core/talloc.h> -#include <osmocom/core/utils.h> - -#include <osmocom/core/application.h> - -#include <stdio.h> -#include <string.h> -#include <arpa/inet.h> - -/* Number of compression slots (S0-1) */ -#define SLOTS 8 - -/* Maximum packet bytes to display */ -#define DISP_MAX_BYTES 100 - -/* Sample packets to test with */ -#define PACKETS_LEN 15 -char *packets[] = { - /* With TCP Option 10 (Timestamps) in place (forces UNCOMPRESSED_TCP) */ - "4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27", - "4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0", - "4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01", - "4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01", - "4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a", - "4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20", - /* Regular TCP packets (COMPRESSED_TCP) */ - "4510003446dd40004006a9b3c0a8646ec0a864640017ad8b81980100f3ac984d501800e371410000fffd18fffd20fffd23fffd27", - "4510004f46de40004006a997c0a8646ec0a864640017ad8b8198010cf3ac984d501800e3cda40000fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0", - "4510002b46df40004006a9bac0a8646ec0a864640017ad8b81980133f3ac989f501800e3a70a0000fffd01", - "4510002b46e040004006a9b9c0a8646ec0a864640017ad8b81980136f3ac98a2501800e3a7060000fffb01", - "4510006846e140004006a97bc0a8646ec0a864640017ad8b81980139f3ac98a5501800e3c2d000000d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a", - "4510003646e240004006a9acc0a8646ec0a864640017ad8b81980179f3ac98a5501800e321fb0000706f6c6c7578206c6f67696e3a20", - /* UDP packets (TYPE_IP */ - "450000396e0b40004011a0310a0901650a09170105da003500255489a60f01000001000000000000076f736d6f636f6d036f72670000010001", - "450000dc9eeb00004011aeae0a0917010a090165003505da00c83fbaa60f81800001000100030004076f736d6f636f6d036f72670000010001c00c00010001000079be0004904c2b4cc00c000200010000173d00130773756e6265616d08676e756d6f6e6b73c014c00c000200010000173d000603646e73c041c00c000200010000173d000a0767616e65736861c041c058000100010000173d0004d55f2e45c058001c00010000173d0010200107800045f0460000000000690001c06a0001000100006a710004d55f1b78c039000100010000173d000453ecb2cb", - "45000037652340004011a91b0a0901650a091701ef1b0035002376a2c3910100000100000000000006676f6f676c650264650000010001", - "0050b6162c10000db93a3ff908004500004726a6000038114083080808080a0901650035ef1b00338a8cc3918180000100010000000006676f6f676c650264650000010001c00c000100010000012b0004d83ad503", -}; - -/* Compress a packet using Van Jacobson RFC1144 header compression */ -static int compress(uint8_t *data_o, uint8_t *data_i, int len, - struct slcompress *comp) -{ - uint8_t *comp_ptr; /* Not used */ - int compr_len; - - /* Create a working copy of the incoming data */ - memcpy(data_o, data_i, len); - - /* Run compressor */ - compr_len = slhc_compress(comp, data_i, len, data_o, &comp_ptr, 0); - return compr_len; -} - -/* Expand a packet using Van Jacobson RFC1144 header compression */ -static int expand(uint8_t *data_o, uint8_t *data_i, int len, - struct slcompress *comp) -{ - int data_decompressed_len; - - /* Create a working copy of the incoming data */ - memcpy(data_o, data_i, len); - - /* Handle an uncompressed packet (learn header information */ - if ((data_i[0] & SL_TYPE_UNCOMPRESSED_TCP) == SL_TYPE_UNCOMPRESSED_TCP) { - data_o[0] &= 0x4F; - data_decompressed_len = slhc_remember(comp, data_o, len); - return data_decompressed_len; - } - - /* Uncompress compressed packets */ - else if (data_o[0] & SL_TYPE_COMPRESSED_TCP) { - data_decompressed_len = slhc_uncompress(comp, data_o, len); - return data_decompressed_len; - } - - /* Regular or unknown packets will not be touched */ - return len; -} - -/* Calculate IP Header checksum */ -static uint16_t calc_ip_csum(uint8_t *data, int len) -{ - int i; - uint32_t accumulator = 0; - uint16_t *pointer = (uint16_t *) data; - - for (i = len; i > 1; i -= 2) { - accumulator += *pointer; - pointer++; - } - - if (len % 2) - accumulator += *pointer; - - accumulator = (accumulator & 0xffff) + ((accumulator >> 16) & 0xffff); - accumulator += (accumulator >> 16) & 0xffff; - return (~accumulator); -} - -/* Calculate TCP/IP checksum */ -static uint16_t calc_tcpip_csum(const void *ctx, uint8_t *packet, int len) -{ - uint8_t *buf; - uint16_t csum; - - buf = talloc_zero_size(ctx, len); - memset(buf, 0, len); - memcpy(buf, packet + 12, 8); - buf[9] = packet[9]; - buf[11] = (len - 20) & 0xFF; - buf[10] = (len - 20) >> 8 & 0xFF; - memcpy(buf + 12, packet + 20, len - 20); - csum = calc_ip_csum(buf, len - 20 + 12); - talloc_free(buf); - return csum; -} - -/* Check TCP/IP packet */ -static void check_packet(const void *ctx, uint8_t *packet, int len) -{ - /* Check IP header */ - OSMO_ASSERT(len > 20); - OSMO_ASSERT(calc_ip_csum(packet, 20) == 0); - - printf("packet[9]=%02x\n", packet[9]); - - /* Check TCP packet */ - if (packet[9] != 0x06) - return; - OSMO_ASSERT(len > 40); - OSMO_ASSERT(calc_tcpip_csum(ctx, packet, len) == 0); -} - -/* Compress / Decompress packets */ -static void test_slhc(const void *ctx) -{ - char packet_ascii[2048]; - int i; - - struct slcompress *comp; - uint8_t packet[1024]; - int packet_len; - uint8_t packet_compr[1024]; - int packet_compr_len; - uint8_t packet_decompr[1024]; - int packet_decompr_len; - - printf("Allocating compression state...\n"); - comp = slhc_init(ctx, SLOTS, SLOTS); - OSMO_ASSERT(comp); - - for (i = 0; i < PACKETS_LEN; i++) { - printf("Testing with packet No. %d\n", i); - - /* Read input file */ - memset(packet_ascii, 0, sizeof(packet_ascii)); - memset(packet, 0, sizeof(packet)); - memset(packet_compr, 0, sizeof(packet_compr)); - memset(packet_decompr, 0, sizeof(packet_decompr)); - - OSMO_ASSERT(strlen(packets[i]) < sizeof(packet_ascii)); - strcpy(packet_ascii, packets[i]); - - packet_len = - osmo_hexparse(packet_ascii, packet, sizeof(packet)); - check_packet(ctx, packet, packet_len); - - /* Run compression/decompression algorithm */ - printf("Compressing...\n"); - packet_compr_len = - compress(packet_compr, packet, packet_len, comp); - printf("Decompressing...\n"); - packet_decompr_len = - expand(packet_decompr, packet_compr, packet_compr_len, - comp); - OSMO_ASSERT(packet_decompr_len == packet_len); - check_packet(ctx, packet_decompr, packet_decompr_len); - - /* Display results */ - printf("Results:\n"); - if (packet_compr_len > DISP_MAX_BYTES) - packet_compr_len = DISP_MAX_BYTES; - if (packet_len > DISP_MAX_BYTES) - packet_len = DISP_MAX_BYTES; - if (packet_decompr_len > DISP_MAX_BYTES) - packet_decompr_len = DISP_MAX_BYTES; - printf("Original Packet: (%i bytes) %s\n", packet_len, - osmo_hexdump_nospc(packet, packet_len)); - printf("DecompressedPacket: (%i bytes) %s\n", - packet_decompr_len, osmo_hexdump_nospc(packet_decompr, - packet_decompr_len)); - printf("CompressedPacket: (%i bytes) %s\n", packet_compr_len, - osmo_hexdump_nospc(packet_compr, packet_compr_len)); - slhc_o_status(comp); - slhc_o_status(comp); - - printf("\n"); - } - - printf("Freeing compression state...\n"); - slhc_free(comp); - printf("\n"); -} - -static struct log_info_cat gprs_categories[] = { - [DSNDCP] = { - .name = "DSNDCP", - .description = - "GPRS Sub-Network Dependent Control Protocol (SNDCP)", - .enabled = 1,.loglevel = LOGL_DEBUG, - }, - [DSLHC] = { - .name = "DSLHC", - .description = - "Van Jacobson RFC1144 TCP/IP header compression (SLHC)", - .enabled = 1,.loglevel = LOGL_DEBUG, - } -}; - -static struct log_info info = { - .cat = gprs_categories, - .num_cat = ARRAY_SIZE(gprs_categories), -}; - -int main(int argc, char **argv) -{ - void *ctx; - - osmo_init_logging(&info); - - ctx = talloc_named_const(NULL, 0, "slhc_ctx"); - - test_slhc(ctx); - - printf("Done\n"); - - talloc_report_full(ctx, stderr); - OSMO_ASSERT(talloc_total_blocks(ctx) == 1); - return 0; -} - -/* stubs */ -struct osmo_prim_hdr; -int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) -{ - abort(); -} diff --git a/tests/slhc/slhc_test.ok b/tests/slhc/slhc_test.ok deleted file mode 100644 index 71f48a179..000000000 --- a/tests/slhc/slhc_test.ok +++ /dev/null @@ -1,154 +0,0 @@ -Allocating compression state... -Testing with packet No. 0 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (64 bytes) 4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 -DecompressedPacket: (64 bytes) 4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 -CompressedPacket: (64 bytes) 7510004046dd40004000a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 - -Testing with packet No. 1 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (91 bytes) 4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 -DecompressedPacket: (91 bytes) 4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 -CompressedPacket: (91 bytes) 7510005b46de40004000a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 - -Testing with packet No. 2 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (55 bytes) 4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 -DecompressedPacket: (55 bytes) 4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 -CompressedPacket: (55 bytes) 7510003746df40004000a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 - -Testing with packet No. 3 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (55 bytes) 4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 -DecompressedPacket: (55 bytes) 4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 -CompressedPacket: (55 bytes) 7510003746e040004000a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 - -Testing with packet No. 4 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (100 bytes) 4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d -DecompressedPacket: (100 bytes) 4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d -CompressedPacket: (100 bytes) 7510007446e140004000a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d - -Testing with packet No. 5 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (66 bytes) 4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 -DecompressedPacket: (66 bytes) 4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 -CompressedPacket: (66 bytes) 7510004246e240004000a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 - -Testing with packet No. 6 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (52 bytes) 4510003446dd40004006a9b3c0a8646ec0a864640017ad8b81980100f3ac984d501800e371410000fffd18fffd20fffd23fffd27 -DecompressedPacket: (52 bytes) 4510003446dd40004006a9b3c0a8646ec0a864640017ad8b81980100f3ac984d501800e371410000fffd18fffd20fffd23fffd27 -CompressedPacket: (52 bytes) 7510003446dd40004000a9b3c0a8646ec0a864640017ad8b81980100f3ac984d501800e371410000fffd18fffd20fffd23fffd27 - -Testing with packet No. 7 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (79 bytes) 4510004f46de40004006a997c0a8646ec0a864640017ad8b8198010cf3ac984d501800e3cda40000fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 -DecompressedPacket: (79 bytes) 4510004f46de40004006a997c0a8646ec0a864640017ad8b8198010cf3ac984d501800e3cda40000fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 -CompressedPacket: (43 bytes) df00cda4fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 - -Testing with packet No. 8 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (43 bytes) 4510002b46df40004006a9bac0a8646ec0a864640017ad8b81980133f3ac989f501800e3a70a0000fffd01 -DecompressedPacket: (43 bytes) 4510002b46df40004006a9bac0a8646ec0a864640017ad8b81980133f3ac989f501800e3a70a0000fffd01 -CompressedPacket: (9 bytes) dc00a70a5227fffd01 - -Testing with packet No. 9 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (43 bytes) 4510002b46e040004006a9b9c0a8646ec0a864640017ad8b81980136f3ac98a2501800e3a7060000fffb01 -DecompressedPacket: (43 bytes) 4510002b46e040004006a9b9c0a8646ec0a864640017ad8b81980136f3ac98a2501800e3a7060000fffb01 -CompressedPacket: (7 bytes) db00a706fffb01 - -Testing with packet No. 10 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (100 bytes) 4510006846e140004006a97bc0a8646ec0a864640017ad8b81980139f3ac98a5501800e3c2d000000d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d -DecompressedPacket: (100 bytes) 4510006846e140004006a97bc0a8646ec0a864640017ad8b81980139f3ac98a5501800e3c2d000000d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d -CompressedPacket: (68 bytes) db00c2d00d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a - -Testing with packet No. 11 -packet[9]=06 -Compressing... -Decompressing... -packet[9]=06 -Results: -Original Packet: (54 bytes) 4510003646e240004006a9acc0a8646ec0a864640017ad8b81980179f3ac98a5501800e321fb0000706f6c6c7578206c6f67696e3a20 -DecompressedPacket: (54 bytes) 4510003646e240004006a9acc0a8646ec0a864640017ad8b81980179f3ac98a5501800e321fb0000706f6c6c7578206c6f67696e3a20 -CompressedPacket: (18 bytes) df0021fb706f6c6c7578206c6f67696e3a20 - -Testing with packet No. 12 -packet[9]=11 -Compressing... -Decompressing... -packet[9]=11 -Results: -Original Packet: (57 bytes) 450000396e0b40004011a0310a0901650a09170105da003500255489a60f01000001000000000000076f736d6f636f6d036f72670000010001 -DecompressedPacket: (57 bytes) 450000396e0b40004011a0310a0901650a09170105da003500255489a60f01000001000000000000076f736d6f636f6d036f72670000010001 -CompressedPacket: (57 bytes) 450000396e0b40004011a0310a0901650a09170105da003500255489a60f01000001000000000000076f736d6f636f6d036f72670000010001 - -Testing with packet No. 13 -packet[9]=11 -Compressing... -Decompressing... -packet[9]=11 -Results: -Original Packet: (100 bytes) 450000dc9eeb00004011aeae0a0917010a090165003505da00c83fbaa60f81800001000100030004076f736d6f636f6d036f72670000010001c00c00010001000079be0004904c2b4cc00c000200010000173d00130773756e6265616d08676e756d6f6e -DecompressedPacket: (100 bytes) 450000dc9eeb00004011aeae0a0917010a090165003505da00c83fbaa60f81800001000100030004076f736d6f636f6d036f72670000010001c00c00010001000079be0004904c2b4cc00c000200010000173d00130773756e6265616d08676e756d6f6e -CompressedPacket: (100 bytes) 450000dc9eeb00004011aeae0a0917010a090165003505da00c83fbaa60f81800001000100030004076f736d6f636f6d036f72670000010001c00c00010001000079be0004904c2b4cc00c000200010000173d00130773756e6265616d08676e756d6f6e - -Testing with packet No. 14 -packet[9]=11 -Compressing... -Decompressing... -packet[9]=11 -Results: -Original Packet: (55 bytes) 45000037652340004011a91b0a0901650a091701ef1b0035002376a2c3910100000100000000000006676f6f676c650264650000010001 -DecompressedPacket: (55 bytes) 45000037652340004011a91b0a0901650a091701ef1b0035002376a2c3910100000100000000000006676f6f676c650264650000010001 -CompressedPacket: (55 bytes) 45000037652340004011a91b0a0901650a091701ef1b0035002376a2c3910100000100000000000006676f6f676c650264650000010001 - -Freeing compression state... - -Done diff --git a/tests/smpp/Makefile.am b/tests/smpp/Makefile.am deleted file mode 100644 index 508270753..000000000 --- a/tests/smpp/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - -I$(top_srcdir)/src/libmsc \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBOSMOSCCP_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(COVERAGE_CFLAGS) \ - $(LIBSMPP34_CFLAGS) \ - $(NULL) - -AM_LDFLAGS = \ - $(COVERAGE_LDFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - smpp_test.ok \ - smpp_test.err \ - $(NULL) - -noinst_PROGRAMS = \ - smpp_test \ - $(NULL) - -smpp_test_SOURCES = \ - smpp_test.c \ - $(top_builddir)/src/libmsc/smpp_utils.c \ - $(NULL) - -smpp_test_LDADD = \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(NULL) diff --git a/tests/smpp/smpp_test.c b/tests/smpp/smpp_test.c deleted file mode 100644 index 62fa9d2e9..000000000 --- a/tests/smpp/smpp_test.c +++ /dev/null @@ -1,73 +0,0 @@ -/* - * (C) 2013 by Holger Hans Peter Freyther - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <stdlib.h> -#include <stdio.h> - -#include <openbsc/debug.h> - -#include <osmocom/core/application.h> -#include <osmocom/core/backtrace.h> - -#include "smpp_smsc.h" - -struct coding_test { - uint8_t dcs; - uint8_t coding; - int mode; - int res; -}; - -static struct coding_test codecs[] = { - { .dcs = 0xf6 , .coding = 0x02, .mode = MODE_8BIT, .res = 0 }, - { .dcs = 0xf2 , .coding = 0x01, .mode = MODE_7BIT, .res = 0 }, - { .dcs = 0x02 , .coding = 0x01, .mode = MODE_7BIT, .res = 0 }, - { .dcs = 0x06 , .coding = 0x02, .mode = MODE_8BIT, .res = 0 }, - { .dcs = 0x0A , .coding = 0x08, .mode = MODE_8BIT, .res = 0 }, - { .dcs = 0x0E , .coding = 0xFF, .mode = 0xFF, .res = -1 }, - { .dcs = 0xE0 , .coding = 0xFF, .mode = 0xFF, .res = -1 }, -}; - -static void test_coding_scheme(void) -{ - int i; - printf("Testing coding scheme support\n"); - - for (i = 0; i < ARRAY_SIZE(codecs); ++i) { - uint8_t coding; - int mode, res; - - res = smpp_determine_scheme(codecs[i].dcs, &coding, &mode); - OSMO_ASSERT(res == codecs[i].res); - if (res != -1) { - OSMO_ASSERT(mode == codecs[i].mode); - OSMO_ASSERT(coding == codecs[i].coding); - } - } -} - -int main(int argc, char **argv) -{ - osmo_init_logging(&log_info); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, 0); - - test_coding_scheme(); - return EXIT_SUCCESS; -} diff --git a/tests/smpp/smpp_test.err b/tests/smpp/smpp_test.err deleted file mode 100644 index ec966ba47..000000000 --- a/tests/smpp/smpp_test.err +++ /dev/null @@ -1,2 +0,0 @@ -SMPP MO Unknown Data Coding 0x0e -SMPP MO Unknown Data Coding 0xe0 diff --git a/tests/smpp/smpp_test.ok b/tests/smpp/smpp_test.ok deleted file mode 100644 index fd44804d1..000000000 --- a/tests/smpp/smpp_test.ok +++ /dev/null @@ -1 +0,0 @@ -Testing coding scheme support diff --git a/tests/smpp_test_runner.py b/tests/smpp_test_runner.py deleted file mode 100644 index 7a3a342ec..000000000 --- a/tests/smpp_test_runner.py +++ /dev/null @@ -1,137 +0,0 @@ -#!/usr/bin/env python - -# (C) 2014 by Holger Hans Peter Freyther -# based on vty_test_runner.py: -# (C) 2013 by Katerina Barone-Adesi <kat.obsc@gmail.com> -# (C) 2013 by Holger Hans Peter Freyther -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -import os -import sys -import time -import unittest -import socket - -import osmopy.obscvty as obscvty -import osmopy.osmoutil as osmoutil - -confpath = os.path.join(sys.path[0], '..') - -class TestVTYBase(unittest.TestCase): - - def vty_command(self): - raise Exception("Needs to be implemented by a subclass") - - def vty_app(self): - raise Exception("Needs to be implemented by a subclass") - - def setUp(self): - osmo_vty_cmd = self.vty_command()[:] - config_index = osmo_vty_cmd.index('-c') - if config_index: - cfi = config_index + 1 - osmo_vty_cmd[cfi] = os.path.join(confpath, osmo_vty_cmd[cfi]) - - try: - self.proc = osmoutil.popen_devnull(osmo_vty_cmd) - except OSError: - print >> sys.stderr, "Current directory: %s" % os.getcwd() - print >> sys.stderr, "Consider setting -b" - - appstring = self.vty_app()[2] - appport = self.vty_app()[0] - self.vty = obscvty.VTYInteract(appstring, "127.0.0.1", appport) - - def tearDown(self): - if self.vty: - self.vty._close_socket() - self.vty = None - osmoutil.end_proc(self.proc) - - -class TestSMPPMSC(TestVTYBase): - - def vty_command(self): - return ["./src/osmo-msc/osmo-msc", "-c", - "doc/examples/osmo-msc/osmo-msc.cfg"] - - def vty_app(self): - return (4254, "./src/osmo-msc/osmo-msc", "OsmoMSC", "msc") - - def testSMPPCrashes(self): - # Enable the configuration - self.vty.enable() - self.assertTrue(self.vty.verify("configure terminal", [''])) - self.assertEquals(self.vty.node(), 'config') - - self.assertTrue(self.vty.verify('smpp', [''])) - self.assertEquals(self.vty.node(), 'config-smpp') - self.assertTrue(self.vty.verify('system-id test', [''])) - self.assertTrue(self.vty.verify('local-tcp-port 2775', [''])) - self.assertTrue(self.vty.verify('esme test', [''])) - self.assertEquals(self.vty.node(), 'config-smpp-esme') - self.assertTrue(self.vty.verify('default-route', [''])) - self.assertTrue(self.vty.verify('end', [''])) - - # MSC should listen to 2775 now! - sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sck.setblocking(1) - sck.connect(('0.0.0.0', 2775)) - sck.sendall('\x00\x00\x00\x02\x00') - sck.close() - - # Check if the VTY is still there - self.vty.verify('disable',['']) - - # Now for the second packet - sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - sck.setblocking(1) - sck.connect(('0.0.0.0', 2775)) - sck.sendall('\x00\x01\x00\x01\x01') - sck.close() - - self.vty.verify('enable',['']) - -if __name__ == '__main__': - import argparse - import sys - - workdir = '.' - - parser = argparse.ArgumentParser() - parser.add_argument("-v", "--verbose", dest="verbose", - action="store_true", help="verbose mode") - parser.add_argument("-p", "--pythonconfpath", dest="p", - help="searchpath for config") - parser.add_argument("-w", "--workdir", dest="w", - help="Working directory") - args = parser.parse_args() - - verbose_level = 1 - if args.verbose: - verbose_level = 2 - - if args.w: - workdir = args.w - - if args.p: - confpath = args.p - - print "confpath %s, workdir %s" % (confpath, workdir) - os.chdir(workdir) - print "Running tests for specific SMPP" - suite = unittest.TestSuite() - suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestSMPPMSC)) - res = unittest.TextTestRunner(verbosity=verbose_level).run(suite) - sys.exit(len(res.errors) + len(res.failures)) diff --git a/tests/sms_queue/Makefile.am b/tests/sms_queue/Makefile.am deleted file mode 100644 index 06c54bcec..000000000 --- a/tests/sms_queue/Makefile.am +++ /dev/null @@ -1,57 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBCRYPTO_CFLAGS) \ - $(LIBOSMOVTY_CFLAGS) \ - $(LIBOSMOABIS_CFLAGS) \ - $(LIBOSMOSIGTRAN_CFLAGS) \ - $(LIBOSMORANAP_CFLAGS) \ - $(LIBASN1C_CFLAGS) \ - $(LIBOSMOLEGACYMGCP_CFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - sms_queue_test.ok \ - sms_queue_test.err \ - $(NULL) - -noinst_PROGRAMS = \ - sms_queue_test \ - $(NULL) - -sms_queue_test_SOURCES = \ - sms_queue_test.c \ - $(NULL) - -sms_queue_test_LDADD = \ - $(top_builddir)/src/libmsc/libmsc.a \ - $(top_builddir)/src/libvlr/libvlr.a \ - $(top_builddir)/src/libbsc/libbsc.a \ - $(top_builddir)/src/libtrau/libtrau.a \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(top_builddir)/src/libcommon-cs/libcommon-cs.a \ - $(LIBSMPP34_LIBS) \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBCRYPTO_LIBS) \ - $(LIBOSMOVTY_LIBS) \ - $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOSIGTRAN_LIBS) \ - $(LIBOSMORANAP_LIBS) \ - $(LIBASN1C_LIBS) \ - $(LIBOSMOLEGACYMGCP_LIBS) \ - $(LIBRARY_GSM) \ - -ldbi \ - -lrt \ - $(NULL) - -sms_queue_test_LDFLAGS = \ - -Wl,--wrap=db_sms_get_next_unsent_rr_msisdn \ - $(NULL) diff --git a/tests/sms_queue/sms_queue_test.c b/tests/sms_queue/sms_queue_test.c deleted file mode 100644 index af25b0645..000000000 --- a/tests/sms_queue/sms_queue_test.c +++ /dev/null @@ -1,215 +0,0 @@ -/* Test Osmocom SMS queue */ - -/* - * (C) 2017 by sysmocom s.f.m.c. GmbH - * All Rights Reserved - * - * Author: Neels Hofmeyr <nhofmeyr@sysmocom.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <osmocom/core/application.h> - -#include <openbsc/debug.h> -#include <openbsc/vlr.h> - -static void *talloc_ctx = NULL; - -struct gsm_sms *smsq_take_next_sms(struct gsm_network *net, - char *last_msisdn, - size_t last_msisdn_buflen); - -static void _test_take_next_sms_print(int i, - struct gsm_sms *sms, - const char *last_msisdn) -{ - printf("#%d: ", i); - if (sms) - printf("sending SMS to %s", sms->text); - else - printf("no SMS to send"); - printf(" (last_msisdn='%s')\n", last_msisdn? last_msisdn : "NULL"); -} - -static struct gsm_sms fake_sms = { 0 }; - -struct { - const char *msisdn; - int nr_of_sms; - int failed_attempts; - bool vsub_attached; -} fake_sms_db[] = { - { - .msisdn = "1111", - .nr_of_sms = 0, - .vsub_attached = true, - }, - { - .msisdn = "2222", - .nr_of_sms = 2, - .failed_attempts = 2, - .vsub_attached = true, - }, - { - .msisdn = "3333", - .nr_of_sms = 2, - .failed_attempts = 3, - .vsub_attached = true, - }, - { - .msisdn = "4444", - .nr_of_sms = 0, - .vsub_attached = true, - }, - { - .msisdn = "5555", - .nr_of_sms = 2, - .failed_attempts = 5, - .vsub_attached = false, - }, -}; - -/* override, requires '-Wl,--wrap=db_sms_get_next_unsent_rr_msisdn' */ -struct gsm_sms *__real_db_sms_get_next_unsent_rr_msisdn(struct gsm_network *net, - const char *last_msisdn, - unsigned int max_failed); -struct gsm_sms *__wrap_db_sms_get_next_unsent_rr_msisdn(struct gsm_network *net, - const char *last_msisdn, - unsigned int max_failed) -{ - static struct vlr_subscr arbitrary_vsub = { .lu_complete = true }; - int i; - printf(" hitting database: looking for MSISDN > '%s', failed_attempts <= %d\n", - last_msisdn, max_failed); - - for (i = 0; i < ARRAY_SIZE(fake_sms_db); i++) { - if (!fake_sms_db[i].nr_of_sms) - continue; - if (strcmp(fake_sms_db[i].msisdn, last_msisdn) <= 0) - continue; - if (fake_sms_db[i].failed_attempts > max_failed) - continue; - osmo_strlcpy(fake_sms.dst.addr, fake_sms_db[i].msisdn, - sizeof(fake_sms.dst.addr)); - fake_sms.receiver = fake_sms_db[i].vsub_attached? &arbitrary_vsub : NULL; - osmo_strlcpy(fake_sms.text, fake_sms_db[i].msisdn, sizeof(fake_sms.text)); - if (fake_sms_db[i].vsub_attached) - fake_sms_db[i].nr_of_sms --; - return &fake_sms; - } - return NULL; -} - -void show_fake_sms_db() -{ - int i; - for (i = 0; i < ARRAY_SIZE(fake_sms_db); i++) { - printf(" %s%s has %u SMS pending, %u failed attempts\n", - fake_sms_db[i].msisdn, - fake_sms_db[i].vsub_attached ? "" : " (NOT attached)", - fake_sms_db[i].nr_of_sms, - fake_sms_db[i].failed_attempts); - } - printf("-->\n"); -} - -static void test_next_sms() -{ - int i; - char last_msisdn[GSM_EXTENSION_LENGTH+1] = ""; - - printf("Testing smsq_take_next_sms()\n"); - - printf("\n- vsub 2, 3 and 5 each have 2 SMS pending, but 5 is not attached\n"); - last_msisdn[0] = '\0'; - show_fake_sms_db(); - for (i = 0; i < 7; i++) { - struct gsm_sms *sms = smsq_take_next_sms(NULL, last_msisdn, sizeof(last_msisdn)); - _test_take_next_sms_print(i, sms, last_msisdn); - OSMO_ASSERT(i >= 4 || sms); - } - - printf("\n- SMS are pending at various nr failed attempts (cutoff at >= 10)\n"); - last_msisdn[0] = '\0'; - for (i = 0; i < ARRAY_SIZE(fake_sms_db); i++) { - fake_sms_db[i].vsub_attached = true; - fake_sms_db[i].nr_of_sms = 1 + i; - fake_sms_db[i].failed_attempts = i*5; - - } - show_fake_sms_db(); - for (i = 0; i < 7; i++) { - struct gsm_sms *sms = smsq_take_next_sms(NULL, last_msisdn, sizeof(last_msisdn)); - _test_take_next_sms_print(i, sms, last_msisdn); - OSMO_ASSERT(i >= 2 || sms); - } - - printf("\n- iterate the SMS DB at most once\n"); - osmo_strlcpy(last_msisdn, "2345", sizeof(last_msisdn)); - for (i = 0; i < ARRAY_SIZE(fake_sms_db); i++) { - fake_sms_db[i].vsub_attached = false; - fake_sms_db[i].nr_of_sms = 1; - fake_sms_db[i].failed_attempts = 0; - } - show_fake_sms_db(); - for (i = 0; i < 3; i++) { - struct gsm_sms *sms = smsq_take_next_sms(NULL, last_msisdn, sizeof(last_msisdn)); - _test_take_next_sms_print(i, sms, last_msisdn); - OSMO_ASSERT(!sms); - } - - printf("\n- there are no SMS in the DB\n"); - last_msisdn[0] = '\0'; - for (i = 0; i < ARRAY_SIZE(fake_sms_db); i++) { - fake_sms_db[i].vsub_attached = true; - fake_sms_db[i].nr_of_sms = 0; - fake_sms_db[i].failed_attempts = 0; - } - show_fake_sms_db(); - for (i = 0; i < 3; i++) { - struct gsm_sms *sms = smsq_take_next_sms(NULL, last_msisdn, sizeof(last_msisdn)); - _test_take_next_sms_print(i, sms, last_msisdn); - OSMO_ASSERT(!sms); - } -} - - -static struct log_info_cat sms_queue_test_categories[] = { -}; - -static struct log_info info = { - .cat = sms_queue_test_categories, - .num_cat = ARRAY_SIZE(sms_queue_test_categories), -}; - -int main(int argc, char **argv) -{ - talloc_ctx = talloc_named_const(NULL, 1, "sms_queue_test"); - msgb_talloc_ctx_init(talloc_ctx, 0); - osmo_init_logging(&info); - - OSMO_ASSERT(osmo_stderr_target); - log_set_use_color(osmo_stderr_target, 0); - log_set_print_timestamp(osmo_stderr_target, 0); - log_set_print_filename(osmo_stderr_target, 0); - log_set_print_category(osmo_stderr_target, 1); - log_parse_category_mask(osmo_stderr_target, "DLOAP,1"); - - test_next_sms(); - printf("Done\n"); - - return 0; -} diff --git a/tests/sms_queue/sms_queue_test.err b/tests/sms_queue/sms_queue_test.err deleted file mode 100644 index e69de29bb..000000000 --- a/tests/sms_queue/sms_queue_test.err +++ /dev/null diff --git a/tests/sms_queue/sms_queue_test.ok b/tests/sms_queue/sms_queue_test.ok deleted file mode 100644 index 146400d21..000000000 --- a/tests/sms_queue/sms_queue_test.ok +++ /dev/null @@ -1,98 +0,0 @@ -Testing smsq_take_next_sms() - -- vsub 2, 3 and 5 each have 2 SMS pending, but 5 is not attached - 1111 has 0 SMS pending, 0 failed attempts - 2222 has 2 SMS pending, 2 failed attempts - 3333 has 2 SMS pending, 3 failed attempts - 4444 has 0 SMS pending, 0 failed attempts - 5555 (NOT attached) has 2 SMS pending, 5 failed attempts ---> - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#0: sending SMS to 2222 (last_msisdn='2222') - hitting database: looking for MSISDN > '2222', failed_attempts <= 9 -#1: sending SMS to 3333 (last_msisdn='3333') - hitting database: looking for MSISDN > '3333', failed_attempts <= 9 - hitting database: looking for MSISDN > '5555', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#2: sending SMS to 2222 (last_msisdn='2222') - hitting database: looking for MSISDN > '2222', failed_attempts <= 9 -#3: sending SMS to 3333 (last_msisdn='3333') - hitting database: looking for MSISDN > '3333', failed_attempts <= 9 - hitting database: looking for MSISDN > '5555', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#4: no SMS to send (last_msisdn='5555') - hitting database: looking for MSISDN > '5555', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#5: no SMS to send (last_msisdn='5555') - hitting database: looking for MSISDN > '5555', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#6: no SMS to send (last_msisdn='5555') - -- SMS are pending at various nr failed attempts (cutoff at >= 10) - 1111 has 1 SMS pending, 0 failed attempts - 2222 has 2 SMS pending, 5 failed attempts - 3333 has 3 SMS pending, 10 failed attempts - 4444 has 4 SMS pending, 15 failed attempts - 5555 has 5 SMS pending, 20 failed attempts ---> - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#0: sending SMS to 1111 (last_msisdn='1111') - hitting database: looking for MSISDN > '1111', failed_attempts <= 9 -#1: sending SMS to 2222 (last_msisdn='2222') - hitting database: looking for MSISDN > '2222', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#2: sending SMS to 2222 (last_msisdn='2222') - hitting database: looking for MSISDN > '2222', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#3: no SMS to send (last_msisdn='') - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#4: no SMS to send (last_msisdn='') - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#5: no SMS to send (last_msisdn='') - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#6: no SMS to send (last_msisdn='') - -- iterate the SMS DB at most once - 1111 (NOT attached) has 1 SMS pending, 0 failed attempts - 2222 (NOT attached) has 1 SMS pending, 0 failed attempts - 3333 (NOT attached) has 1 SMS pending, 0 failed attempts - 4444 (NOT attached) has 1 SMS pending, 0 failed attempts - 5555 (NOT attached) has 1 SMS pending, 0 failed attempts ---> - hitting database: looking for MSISDN > '2345', failed_attempts <= 9 - hitting database: looking for MSISDN > '3333', failed_attempts <= 9 - hitting database: looking for MSISDN > '4444', failed_attempts <= 9 - hitting database: looking for MSISDN > '5555', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 - hitting database: looking for MSISDN > '1111', failed_attempts <= 9 - hitting database: looking for MSISDN > '2222', failed_attempts <= 9 -#0: no SMS to send (last_msisdn='3333') - hitting database: looking for MSISDN > '3333', failed_attempts <= 9 - hitting database: looking for MSISDN > '4444', failed_attempts <= 9 - hitting database: looking for MSISDN > '5555', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 - hitting database: looking for MSISDN > '1111', failed_attempts <= 9 - hitting database: looking for MSISDN > '2222', failed_attempts <= 9 -#1: no SMS to send (last_msisdn='3333') - hitting database: looking for MSISDN > '3333', failed_attempts <= 9 - hitting database: looking for MSISDN > '4444', failed_attempts <= 9 - hitting database: looking for MSISDN > '5555', failed_attempts <= 9 - hitting database: looking for MSISDN > '', failed_attempts <= 9 - hitting database: looking for MSISDN > '1111', failed_attempts <= 9 - hitting database: looking for MSISDN > '2222', failed_attempts <= 9 -#2: no SMS to send (last_msisdn='3333') - -- there are no SMS in the DB - 1111 has 0 SMS pending, 0 failed attempts - 2222 has 0 SMS pending, 0 failed attempts - 3333 has 0 SMS pending, 0 failed attempts - 4444 has 0 SMS pending, 0 failed attempts - 5555 has 0 SMS pending, 0 failed attempts ---> - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#0: no SMS to send (last_msisdn='') - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#1: no SMS to send (last_msisdn='') - hitting database: looking for MSISDN > '', failed_attempts <= 9 -#2: no SMS to send (last_msisdn='') -Done diff --git a/tests/sndcp_xid/Makefile.am b/tests/sndcp_xid/Makefile.am deleted file mode 100644 index d09c41b28..000000000 --- a/tests/sndcp_xid/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBCARES_CFLAGS) - -EXTRA_DIST = sndcp_xid_test.ok - -noinst_PROGRAMS = sndcp_xid_test - -sndcp_xid_test_SOURCES = sndcp_xid_test.c - -sndcp_xid_test_LDADD = \ - $(top_builddir)/src/gprs/gprs_sndcp_xid.o \ - $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOGB_LIBS) \ - $(LIBCARES_LIBS) \ - $(LIBCRYPTO_LIBS) \ - $(LIBGTP_LIBS) \ - -lrt -lm - - diff --git a/tests/sndcp_xid/sndcp_xid_test.c b/tests/sndcp_xid/sndcp_xid_test.c deleted file mode 100644 index 151dd2bb5..000000000 --- a/tests/sndcp_xid/sndcp_xid_test.c +++ /dev/null @@ -1,284 +0,0 @@ -/* Test SNDCP-XID Encoding/Decoding */ - -/* (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * All Rights Reserved - * - * Author: Philipp Maier - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <openbsc/gprs_sndcp_xid.h> -#include <openbsc/debug.h> - -#include <osmocom/core/talloc.h> -#include <osmocom/core/utils.h> - -#include <osmocom/core/application.h> - -#include <stdio.h> -#include <string.h> - -/* Test SNDCP-XID decoding with a real world sample */ -static void test_xid_decode_realworld(const void *ctx) -{ - struct llist_head *comp_fields; - int rc; - printf("Testing SNDCP XID-Decoder/Encoder (real world data)\n"); - - /* Example of a real world SNDCP-XID message */ - uint8_t xid[] = - { 0x00, 0x01, 0x00, 0x02, 0x31, 0x82, 0x02, 0x27, 0x89, 0xff, 0xe0, - 0x00, 0x0f, 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x02, - 0x01, 0x02, 0x00, 0x03, 0x01, 0x03, 0x00, 0x04, 0x01, 0x04, 0x00, 0x05, - 0x01, 0x05, 0x00, 0x06, 0x00, 0x07, 0x01, 0x07, 0x00, 0x08, 0x01, 0x08, - 0x80, 0x00, 0x04, 0x12, 0x00, 0x40, 0x07 }; - uint8_t xid_r[512]; - - /* Parse and show contained comp fields */ - comp_fields = gprs_sndcp_parse_xid(NULL, ctx, xid, sizeof(xid), NULL); - OSMO_ASSERT(comp_fields); - printf("Decoded:\n"); - gprs_sndcp_dump_comp_fields(comp_fields, DSNDCP); - - /* Encode comp-fields again */ - rc = gprs_sndcp_compile_xid(xid_r,sizeof(xid_r), comp_fields, - DEFAULT_SNDCP_VERSION); - printf("Result length=%i\n",rc); - printf("Encoded: %s\n", osmo_hexdump_nospc(xid, sizeof(xid))); - printf("Rencoded: %s\n", osmo_hexdump_nospc(xid_r, rc)); - - OSMO_ASSERT(rc == 54); - OSMO_ASSERT(memcmp(xid, xid_r, sizeof(xid)) == 0); - - /* Free comp fields */ - talloc_free(comp_fields); - - printf("\n"); -} - -/* Encode and decode test with artificial test data */ -static void test_xid_encode_decode(const void *ctx) -{ - printf("Testing SNDCP XID-Encoder/Decoder\n"); - - LLIST_HEAD(comp_fields); - struct gprs_sndcp_pcomp_rfc1144_params rfc1144_params; - struct gprs_sndcp_comp_field rfc1144_comp_field; - struct gprs_sndcp_pcomp_rfc2507_params rfc2507_params; - struct gprs_sndcp_comp_field rfc2507_comp_field; - struct gprs_sndcp_pcomp_rohc_params rohc_params; - struct gprs_sndcp_comp_field rohc_comp_field; - struct gprs_sndcp_dcomp_v42bis_params v42bis_params; - struct gprs_sndcp_comp_field v42bis_comp_field; - struct gprs_sndcp_dcomp_v44_params v44_params; - struct gprs_sndcp_comp_field v44_comp_field; - struct llist_head *comp_fields_dec; - - uint8_t xid[512]; - unsigned int xid_len = sizeof(xid); - int rc; - - memset(&rfc1144_comp_field, 0, sizeof(struct gprs_sndcp_comp_field)); - memset(&rfc2507_comp_field, 0, sizeof(struct gprs_sndcp_comp_field)); - memset(&rohc_comp_field, 0, sizeof(struct gprs_sndcp_comp_field)); - memset(&v42bis_comp_field, 0, sizeof(struct gprs_sndcp_comp_field)); - memset(&v44_comp_field, 0, sizeof(struct gprs_sndcp_comp_field)); - - /* Setup which NSAPIs shall make use of rfc1144 */ - rfc1144_params.nsapi[0] = 5; - rfc1144_params.nsapi_len = 1; - - /* Setup rfc1144 operating parameters */ - rfc1144_params.s01 = 7; - - /* Setup rfc1144 compression field */ - rfc1144_comp_field.p = 1; - rfc1144_comp_field.entity = 0; - rfc1144_comp_field.algo = RFC_1144; - rfc1144_comp_field.comp[RFC1144_PCOMP1] = 1; - rfc1144_comp_field.comp[RFC1144_PCOMP2] = 2; - rfc1144_comp_field.comp_len = RFC1144_PCOMP_NUM; - rfc1144_comp_field.rfc1144_params = &rfc1144_params; - - /* Setup which NSAPIs shall make use of rfc1144 */ - rfc2507_params.nsapi[0] = 6; - rfc2507_params.nsapi_len = 1; - - /* Setup rfc2507 operating parameters */ - rfc2507_params.f_max_period = 256; - rfc2507_params.f_max_time = 5; - rfc2507_params.max_header = 168; - rfc2507_params.tcp_space = 15; - rfc2507_params.non_tcp_space = 15; - - /* Setup rfc2507 compression field */ - rfc2507_comp_field.p = 1; - rfc2507_comp_field.entity = 1; - rfc2507_comp_field.algo = RFC_2507; - rfc2507_comp_field.comp[RFC2507_PCOMP1] = 3; - rfc2507_comp_field.comp[RFC2507_PCOMP2] = 4; - rfc2507_comp_field.comp[RFC2507_PCOMP3] = 5; - rfc2507_comp_field.comp[RFC2507_PCOMP4] = 6; - rfc2507_comp_field.comp[RFC2507_PCOMP5] = 7; - rfc2507_comp_field.comp_len = RFC2507_PCOMP_NUM; - rfc2507_comp_field.rfc2507_params = &rfc2507_params; - - /* Setup which NSAPIs shall make use of ROHC */ - rohc_params.nsapi[0] = 5; - rohc_params.nsapi[1] = 6; - rohc_params.nsapi[2] = 7; - rohc_params.nsapi[3] = 8; - rohc_params.nsapi[4] = 9; - rohc_params.nsapi[5] = 10; - rohc_params.nsapi[6] = 11; - rohc_params.nsapi[7] = 12; - rohc_params.nsapi[8] = 13; - rohc_params.nsapi[9] = 14; - rohc_params.nsapi[10] = 15; - rohc_params.nsapi_len = 11; - - /* Setup ROHC operating parameters */ - rohc_params.max_cid = 15; /* default */ - rohc_params.max_header = 168; /* default */ - rohc_params.profile[0] = ROHC_UNCOMPRESSED; - rohc_params.profile[1] = ROHC_RTP; - rohc_params.profile[2] = ROHCV2_RTP; - rohc_params.profile[3] = ROHC_UDP; - rohc_params.profile[4] = ROHCv2_UDP; - rohc_params.profile[5] = ROHC_ESP; - rohc_params.profile[6] = ROHCV2_ESP; - rohc_params.profile[7] = ROHC_IP; - rohc_params.profile[8] = ROHCV2_IP; - rohc_params.profile[9] = ROHC_LLA; - rohc_params.profile[10] = ROHC_LLA_WITH_R_MODE; - rohc_params.profile[11] = ROHC_TCP; - rohc_params.profile[12] = ROHC_RTP_UDP_LITE; - rohc_params.profile[13] = ROHCV2_RTP_UDP_LITE; - rohc_params.profile[14] = ROHC_UDP_LITE; - rohc_params.profile[15] = ROHCV2_UDP_LITE; - rohc_params.profile_len = 16; - - /* Setup ROHC compression field */ - rohc_comp_field.p = 1; - rohc_comp_field.entity = 2; - rohc_comp_field.algo = ROHC; - rohc_comp_field.comp[ROHC_PCOMP1] = 8; - rohc_comp_field.comp[ROHC_PCOMP2] = 9; - rohc_comp_field.comp_len = ROHC_PCOMP_NUM; - rohc_comp_field.rohc_params = &rohc_params; - - /* Setup which NSAPIs shall make use of v42bis */ - v42bis_params.nsapi[0] = 5; - v42bis_params.nsapi_len = 1; - - /* Setup v42bis operating parameters */ - v42bis_params.p0 = 3; - v42bis_params.p1 = 2048; - v42bis_params.p2 = 20; - - /* Setup v42bis compression field */ - v42bis_comp_field.p = 1; - v42bis_comp_field.entity = 3; - v42bis_comp_field.algo = V42BIS; - v42bis_comp_field.comp[V42BIS_DCOMP1] = 10; - v42bis_comp_field.comp_len = V42BIS_DCOMP_NUM; - v42bis_comp_field.v42bis_params = &v42bis_params; - - /* Setup which NSAPIs shall make use of v44 */ - v44_params.nsapi[0] = 5; - v44_params.nsapi_len = 1; - - /* Setup v44 operating parameters */ - v44_params.c0 = 0x80; - v44_params.p0 = 3; - v44_params.p1t = 300; - v44_params.p1r = 300; - v44_params.p3t = 600; - v44_params.p3r = 600; - - /* Setup v44 compression field */ - v44_comp_field.p = 1; - v44_comp_field.entity = 3; - v44_comp_field.algo = V44; - v44_comp_field.comp[V44_DCOMP1] = 10; - v44_comp_field.comp[V44_DCOMP2] = 11; - v44_comp_field.comp_len = V44_DCOMP_NUM; - v44_comp_field.v44_params = &v44_params; - - /* Add compression field(s) to list */ - llist_add(&v44_comp_field.list, &comp_fields); - llist_add(&v42bis_comp_field.list, &comp_fields); - llist_add(&rfc1144_comp_field.list, &comp_fields); - llist_add(&rfc2507_comp_field.list, &comp_fields); - llist_add(&rohc_comp_field.list, &comp_fields); - printf("Test input data:\n"); - gprs_sndcp_dump_comp_fields(&comp_fields, DSNDCP); - - /* Encode SNDCP-XID fields */ - rc = gprs_sndcp_compile_xid(xid, xid_len, &comp_fields, - DEFAULT_SNDCP_VERSION); - OSMO_ASSERT(rc > 0); - - printf("Encoded: %s (%i bytes)\n", osmo_hexdump_nospc(xid, rc), rc); - - /* Parse and show contained comp fields */ - comp_fields_dec = gprs_sndcp_parse_xid(NULL, ctx, xid, rc, NULL); - OSMO_ASSERT(comp_fields_dec); - - printf("Decoded:\n"); - gprs_sndcp_dump_comp_fields(comp_fields_dec, DSNDCP); - - /* Free comp fields */ - talloc_free(comp_fields_dec); -} - -static struct log_info_cat gprs_categories[] = { - [DSNDCP] = { - .name = "DSNDCP", - .description = - "GPRS Sub-Network Dependent Control Protocol (SNDCP)", - .enabled = 1,.loglevel = LOGL_DEBUG, - } -}; - -static struct log_info info = { - .cat = gprs_categories, - .num_cat = ARRAY_SIZE(gprs_categories), -}; - -int main(int argc, char **argv) -{ - void *xid_ctx; - - osmo_init_logging(&info); - - xid_ctx = talloc_named_const(NULL, 0, "xid_ctx"); - - test_xid_decode_realworld(xid_ctx); - test_xid_encode_decode(xid_ctx); - - printf("Done\n"); - - talloc_report_full(xid_ctx, stderr); - OSMO_ASSERT(talloc_total_blocks(xid_ctx) == 1); - return 0; -} - -/* stubs */ -struct osmo_prim_hdr; -int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) -{ - abort(); -} diff --git a/tests/sndcp_xid/sndcp_xid_test.ok b/tests/sndcp_xid/sndcp_xid_test.ok deleted file mode 100644 index f3572827c..000000000 --- a/tests/sndcp_xid/sndcp_xid_test.ok +++ /dev/null @@ -1,11 +0,0 @@ -Testing SNDCP XID-Decoder/Encoder (real world data) -Decoded: -Result length=54 -Encoded: 000100023182022789ffe0000f00a8000000010101000201020003010300040104000501050006000701070008010880000412004007 -Rencoded: 000100023182022789ffe0000f00a8000000010101000201020003010300040104000501050006000701070008010880000412004007 - -Testing SNDCP XID-Encoder/Decoder -Test input data: -Encoded: 000100011a83010dab00208003012c012c02580258830007a000200308001402408000041200200781010c3456700040010005a80f000f82022789ffe0000f00a80000000101010002010200030103000401040005010500060007010700080108 (97 bytes) -Decoded: -Done diff --git a/tests/testsuite.at b/tests/testsuite.at index 7a8d84bbe..a412f7cae 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -1,12 +1,6 @@ AT_INIT AT_BANNER([Regression tests.]) -AT_SETUP([gsm0408]) -AT_KEYWORDS([gsm0408]) -cat $abs_srcdir/gsm0408/gsm0408_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/gsm0408/gsm0408_test], [], [expout], [ignore]) -AT_CLEANUP - AT_SETUP([bsc_subscr]) AT_KEYWORDS([bsc_subscr]) cat $abs_srcdir/subscr/bsc_subscr_test.ok > expout @@ -20,30 +14,6 @@ cat $abs_srcdir/channel/channel_test.ok > expout AT_CHECK([$abs_top_builddir/tests/channel/channel_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([gprs]) -AT_KEYWORDS([gprs]) -cat $abs_srcdir/gprs/gprs_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/gprs/gprs_test], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([bsc-nat]) -AT_KEYWORDS([bsc-nat]) -AT_CHECK([test "$enable_nat_test" != no || exit 77]) -cp $abs_srcdir/bsc-nat/prefixes.csv . -cp $abs_srcdir/bsc-nat/barr.cfg . -cp $abs_srcdir/bsc-nat/barr_dup.cfg . -cat $abs_srcdir/bsc-nat/bsc_nat_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/bsc-nat/bsc_nat_test], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([smpp]) -AT_KEYWORDS([smpp]) -AT_CHECK([test "$enable_smpp_test" != no || exit 77]) -cat $abs_srcdir/smpp/smpp_test.ok > expout -cat $abs_srcdir/smpp/smpp_test.err > experr -AT_CHECK([$abs_top_builddir/tests/smpp/smpp_test], [], [expout], [experr]) -AT_CLEANUP - AT_SETUP([bsc-nat-trie]) AT_KEYWORDS([bsc-nat-trie]) AT_CHECK([test "$enable_nat_test" != no || exit 77]) @@ -65,140 +35,14 @@ cat $abs_srcdir/bsc/bsc_test.ok > expout AT_CHECK([$abs_top_builddir/tests/bsc/bsc_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([gbproxy]) -AT_KEYWORDS([gbproxy]) -cat $abs_srcdir/gbproxy/gbproxy_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/gbproxy/gbproxy_test], [], [expout], [ignore]) -AT_CLEANUP - AT_SETUP([trau]) AT_KEYWORDS([trau]) cat $abs_srcdir/trau/trau_test.ok > expout AT_CHECK([$abs_top_builddir/tests/trau/trau_test], [], [expout], [ignore]) AT_CLEANUP -AT_SETUP([sgsn]) -AT_KEYWORDS([sgsn]) -AT_CHECK([test "$enable_sgsn_test" != no || exit 77]) -cat $abs_srcdir/sgsn/sgsn_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/sgsn/sgsn_test], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([oap]) -AT_KEYWORDS([oap]) -AT_CHECK([test "$enable_oap_test" != no || exit 77]) -cat $abs_srcdir/oap/oap_client_test.ok > expout -cat $abs_srcdir/oap/oap_client_test.err > experr -AT_CHECK([$abs_top_builddir/tests/oap/oap_client_test], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([gtphub]) -AT_KEYWORDS([gtphub]) -AT_CHECK([test "$enable_gtphub_test" != no || exit 77]) -cat $abs_srcdir/gtphub/gtphub_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/gtphub/gtphub_test], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([xid]) -AT_KEYWORDS([xid]) -AT_CHECK([test "$enable_sgsn_test" != no || exit 77]) -cat $abs_srcdir/xid/xid_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/xid/xid_test], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([sndcp_xid]) -AT_KEYWORDS([sndcp_xid]) -AT_CHECK([test "$enable_sgsn_test" != no || exit 77]) -cat $abs_srcdir/sndcp_xid/sndcp_xid_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/sndcp_xid/sndcp_xid_test], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([slhc]) -AT_KEYWORDS([slhc]) -AT_CHECK([test "$enable_sgsn_test" != no || exit 77]) -cat $abs_srcdir/slhc/slhc_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/slhc/slhc_test], [], [expout], [ignore]) -AT_CLEANUP - -AT_SETUP([v42bis]) -AT_KEYWORDS([v42bis]) -AT_CHECK([test "$enable_sgsn_test" != no || exit 77]) -cat $abs_srcdir/v42bis/v42bis_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/v42bis/v42bis_test], [], [expout], [ignore]) -AT_CLEANUP - AT_SETUP([nanobts_omlattr]) AT_KEYWORDS([nanobts_omlattr]) cat $abs_srcdir/nanobts_omlattr/nanobts_omlattr_test.ok > expout AT_CHECK([$abs_top_builddir/tests/nanobts_omlattr/nanobts_omlattr_test], [], [expout], [ignore]) AT_CLEANUP - -AT_SETUP([sms_queue_test]) -AT_KEYWORDS([sms_queue_test]) -cat $abs_srcdir/sms_queue/sms_queue_test.ok > expout -cat $abs_srcdir/sms_queue/sms_queue_test.err > experr -AT_CHECK([$abs_top_builddir/tests/sms_queue/sms_queue_test], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_no_authen]) -AT_KEYWORDS([msc_vlr_test_no_authen]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_no_authen.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_no_authen.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_no_authen], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_gsm_authen]) -AT_KEYWORDS([msc_vlr_test_gsm_authen]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_gsm_authen.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_gsm_authen.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_authen], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_gsm_ciph]) -AT_KEYWORDS([msc_vlr_test_gsm_ciph]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_gsm_ciph.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_gsm_ciph.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_gsm_ciph], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_umts_authen]) -AT_KEYWORDS([msc_vlr_test_umts_authen]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_umts_authen.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_umts_authen.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_umts_authen], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_hlr_reject]) -AT_KEYWORDS([msc_vlr_test_hlr_reject]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_hlr_reject.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_hlr_reject.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_hlr_reject], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_hlr_timeout]) -AT_KEYWORDS([msc_vlr_test_hlr_timeout]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_hlr_timeout.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_hlr_timeout.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_hlr_timeout], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_ms_timeout]) -AT_KEYWORDS([msc_vlr_test_ms_timeout]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_ms_timeout.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_ms_timeout.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_ms_timeout], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_reject_concurrency]) -AT_KEYWORDS([msc_vlr_test_reject_concurrency]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_reject_concurrency.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_reject_concurrency.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_reject_concurrency], [], [expout], [experr]) -AT_CLEANUP - -AT_SETUP([msc_vlr_test_rest]) -AT_KEYWORDS([msc_vlr_test_rest]) -cat $abs_srcdir/msc_vlr/msc_vlr_test_rest.ok > expout -cat $abs_srcdir/msc_vlr/msc_vlr_test_rest.err > experr -AT_CHECK([$abs_top_builddir/tests/msc_vlr/msc_vlr_test_rest], [], [expout], [experr]) -AT_CLEANUP diff --git a/tests/v42bis/Makefile.am b/tests/v42bis/Makefile.am deleted file mode 100644 index a031e33bd..000000000 --- a/tests/v42bis/Makefile.am +++ /dev/null @@ -1,15 +0,0 @@ -AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBCARES_CFLAGS) - -EXTRA_DIST = v42bis_test.ok - -noinst_PROGRAMS = v42bis_test - -v42bis_test_SOURCES = v42bis_test.c - -v42bis_test_LDADD = \ - $(top_builddir)/src/gprs/v42bis.o \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(LIBOSMOCORE_LIBS) - - diff --git a/tests/v42bis/v42bis_test.c b/tests/v42bis/v42bis_test.c deleted file mode 100644 index 7e907858d..000000000 --- a/tests/v42bis/v42bis_test.c +++ /dev/null @@ -1,435 +0,0 @@ -/* Test v42bis Compression/Decompression */ - -/* (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * All Rights Reserved - * - * Author: Philipp Maier - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <openbsc/v42bis.h> -#include <openbsc/v42bis_private.h> -#include <openbsc/debug.h> - -#include <osmocom/core/talloc.h> -#include <osmocom/core/utils.h> - -#include <osmocom/core/application.h> - -#include <stdio.h> -#include <string.h> -#include <stdbool.h> - -/* V.42bis compression parameters */ -#define P0 3 /* Direction */ -#define P1 512 /* Max number of codewords */ -#define P2 20 /* Max string length */ - -/* V.42bis compression buffer size - * (Does not affect the compression/decompression result) */ -#define MAX_BLOCK_SIZE 1024 - -/* Compressed sample packets, sniffed from real communication */ -#define COMPR_PACKETS_LEN 33 -char *compr_packets[] = { - /* K800i */ - "4500010268000700004006cefac0a80002550d93d740000050462c7ba7e4d1753a80184000aad500000101080a0001a670084dafb4474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005ab97a052b960d59b368d5b2ddb3e60e9c372ef610b6dbf56bd8b165030f2e7cf88dd63b68f64c3d9b76ed1cb58847b490d122e8d0a24761185913d50e1aa423f0dc49036387d6d7b169e4d0cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a68b5b2864d9a3b629a30b1a2b5081b35384613357a07c6133271d4e021a3064d52347182ee81b119c69c3a72d2b079b37e4409c177e6f4902163738cdd71f8a0a903d68ec21866e4c0918185087dfb329cec9831834d951a337c4a2e1174891c3badf5e8d113a38f1c336e24520c8a65751d1844d4c7696d852c1f240e992becf8918d0c9145465441939fcc6a1950a206b7e1fca38e1145eaebc129230aeb24f57bcab011c3c68829f5efe7bfcbe4c814e731668c3042f6fef93a62d9909561e4c91123c163d0085a3a4e1c3466c6c649ea048d519d5ff3a0f95ef4280c2471269e61633ee9193469de8845a3554d9fa74199c48622e7fa7dac30ac602f9af40a9ef0236a54268247cd7f923946d0a8d1c3c68d1e35788c5002e54ad0a00100", - "4500010268000900004006cef8c0a80002550d93d740000050462c7ba7e4d1753a801840007e7f00000101080a0001d1cc084db0ae474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005ab97a052b960d59b368d5b2ddb3e60e9c372ef610b6dbf56bd8b165030f2e7cf88dd63b68f64c3d9b76ed1cb58847b490d122e8d0a24761185913d50e1aa423f0dc49036387d6d7b169e4d0cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a68b5b2864d9a3b629a30b1a2b5081b35384613357a07c6133271d4e021a3064d52347182ee81b119c69c3a72d2b079b37e4409c177e6f4902163738cdd71f8a0a903d68ec21866e4c0918185087dfb329cec9831834d951a337c4a2e1174891c3badf5e8d113a38f1c336e24520c8a65751d1844d4c7696d852c1f240e992becf8918d0c9145465441939fcc6a1950a206b7e1fca38e1145eaebc129230aeb24f57bcab011c3c68829f5efe7bfcbe4c814e731668c3042f6fef93a62d9909561e4c91123c163d0085a3a4e1c3466c6c649ea048d519d5ff3a0f95ef4280c2471269e61633ee9193469de8845a3554d9fa74199c48622e7fa7dac30ac602f9af40a9ef0236a54268247cd7f923946d0a8d1c3c68d1e35788c5002e54ad0a00100", - "4500010268000b00004006cef6c0a80002550d93d740000050462c7ba7e4d1753b80193fff131c00000101080a00022884084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005ab97a052b960d59b368d5b2ddb3e60e9c372ef610b6dbf56bd8b165030f2e7cf88dd63b68f64c3d9b76ed1cb58847b490d122e8d0a24761185913d50e1aa423f0dc49036387d6d7b169e4d0cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a68b5b2864d9a3b629a30b1a2b5081b35384613357a07c6133271d4e021a3064d52347182ee81b119c69c3a72d2b079b37e4409c177e6f4902163738cdd71f8a0a903d68ec21866e4c0918185087dfb329cec9831834d951a337c4a2e1174891c3badf5e8d113a38f1c336e24520c8a65751d1844d4c7696d852c1f240e992be4e8918d8c9045465441939fcc6a1950a206b7e1dca38e1145eaebb929230aeb24f579cab011c3c68829f5efe7afcbe4c814e731668c3042f6fef93a62d9909561e4c91123c163d0084a3a4e1c3466c6c649ea048dd19c5ff3a0f95ef4280c2471269e61633ee9193469de8845a3554d9fa74199c48622c7fa7dac30ac5c2f9af40a1ef0236a502682478dff913946d0a8d1c3c68d1e35788c5002e54ad0a00100", - "4500010268000c00004006cef5c0a80002550d93d740000050462c7ba7e4d1753b80193fff65ab00000101080a0002d5f4084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005ab97a052b960d59b368d5b2ddb3e60e9c372ef610b6dbf56bd8b165030f2e7cf88dd63b68f64c3d9b76ed1cb58847b490d122e8d0a24761185913d50e1aa423f0dc49036387d6d7b169e4d0cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a68b5b2864d9a3b629a30b1a2b5081b35384613357a07c6133271d4e021a3064d52347182ee81b119c69c3a72d2b079b37e4409c177e6f4902163738cdd71f8a0a903d68ec21866e4c0918185087dfb329cec9831834d951a337c4a2e1174891c3badf5e8d113a38f1c336e24520c8a65751d1844d4c7696d852c1f240e992be4e8918d8c9045465441939fcc6a1950a206b7e1dca38e1145eaebb929230aeb24f579cab011c3c68829f5efe7afcbe4c814e731668c3042f6fef93a62d9909561e4c91123c163d0084a3a4e1c3466c6c649ea048dd19c5ff3a0f95ef4280c2471269e61633ee9193469de8845a3554d9fa74199c48622c7fa7dac30ac5c2f9af40a1ef0236a502682478dff913946d0a8d1c3c68d1e35788c5002e54ad0a00100", - "450001022d000f00004006ac5ec0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00", - "450001022d001000004006ac5dc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00", - "450001022d001100004006ac5cc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00", - "450001022d001200004006ac5bc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00", - "4500010268001300004006ceeec0a80002550d93d740000050462c7ba7e4d1753b80193fff7b4a00000101080a0003c054084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005bbb7e0d3b964dd9b369d7b6ddb3e60e9c372ef614beeb15ac58b2660513368cf8cdd63b68f65045ab96ed9cb58947b490d1422851a34861185923d50e9aa423f0dc490363c756d8b269e4d8cac68e9cd93b70f0804143376fe13372dcc801038f193b306a6cb5b2864d9a3b629a30b1b2b5081b353848173d7a07c6133271d4e021a3068d52347184ee81c119c69c3a72d2b079c37e4489c177e6f4902183730cde71f8a0a913d6cec21866e4c091818548fdfb329cec9831834d951a337e4e2e2174891c3baef5e8d113a38f1c336e2656148a85751d1844d6c7716da52c1f240f9b2fecf8918d0c9145465441a39f0c6b1950a40ab7f1fca38e1145ecebc129234aeb24f67bcab011c3c68829f6f1ebb7cbe4c894e731668c3052163ffa3a63d9949561e4c91123c263d0105a3a4e1c3466c8c651ea04cd519d60f3a0016f14290c2471289e61735ee9193469de8c45b3554d1fa84299c88622e73afeac30ac6037aaf40a9ef0236a54268247cd7f923946d0a8d1c3c68d1e35788c5002e58a50a10100", - "450001022d001400004006ac59c0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00", - "450001022d001500004006ac58c0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00", - "4500010239000500004006ac5cc0a800020a0901ab40001f90c286afa741a348cb801840007fcb0000050a41a348dc41a34a440000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d69786564330057b36eedfa954dd8b165cfa6ddb3e60e9c372ef6049eab95ab57b062fd02164cf8cdd53b68f640256b16ed9cb38547b490d1e22791a043efc030b2c6a91d344547e0b99306c68eabad5fd3c871958d1d39b077e0e00183c6eddcbf67e4b89103061e337660d4b86a650d9b3477c4346162e56a11366a7080164d14c6133271d4e021a3068d5134717eee818119c69c3a72d2b079837e4489bf77e6f4902103738cdc71f8a0a9d3d58ec11866e4c091818548fcf9329cec9831834d951a33783e2ef173891c3bab69cc88c1a3674f1d347a6cdcf8134bea3a30889c8fb3da4a583e48162a37a891231b19208b8ca882c63e99d432a038fd6d8339471d238ac8d793534614d549e40b956123868d1153e4d3b77f97c99129cc63cc1861242c7df275beb2092bc3c89323467ef7fc693a4e1c3466c0c631ea04cdd09d5cf3a0e96e66e81d1848e2403cc366bcd13368d2bcf98ae6aa9a3e4c7ffe0c00", - "450001025b000a00004006ac35c0a800020a0901ab40011f90c293b0a8af5e58be5018400072a60000474554202f72656470686f6e652e706e6720485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c33005cbd82154b368e59b46ad9ee597307ce1b177b066fedfa35ec583665010b266cf8cdd63b68f6543d9b76ed1cb58747b490d16268d1a34961185933d50e1aa523f0dc490363c7d6d7b169e4d8cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a6cb5b2864d9a3b629a30b1b2b5081b3538461b457a07c6133238f190518366299a3843f7c0d80c634e1d3969d8bc513fa244e03b737ac890b139c6ee387cd0d4096b07610c3372e0c8c042647e7d194e76cc98c1a64a8d1940259718ba448e9dd63466c4e01134a80e1a3d38721c8a65751d1844d2c7696d65261f240d9923dcd8918d0c9045465441839fcc6a1950a606b7e1bca38e1145e8ebd929230aeb24f485cab011c3c68829f4ede3d7cbe4c814e731668c3032d3be1a3c75c6b2296be4c91123c1830e451d270e1a3364e32c758206694fb079d07c3f9a1406923812cfb0c1b9f40c9a346fc6a2d9aaa64fd4a175d33064b894bfff812b5bc2a421b3e60c8e32860e0d00", - "4500010267001200004006ac21c0a800020a0901ab40011f90c293b0a8af5e58be80184000ee770000050aaf5e6437af5e8c230000474554202f72656470686f6e652e706e6720485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d33006fc8de41b3c72b5cb974e7cc853ca2858c164c9d42950ac3c81aae76d04c1d81e74e1a183bc8e2d64d2307593676e4ecde8183070c1ac2892b9f91e3460e1878ccd8815183ac95356cd2dc11d3848915b245d8a8c1c1fa69d43b309e90098a878c1a3454d1c461ba0706691873eac849c3e6cdfc112514df99d343860cd23188c7e183a68e5a3b126398910347061622fcfdcb70b263c60c36556acc48bab904d32572ecd8a63123060fa54a75d0e861d224532cb4ebc020223f8e6d2b3cf920b1585d62c9936c64a82c32a20a9a826468cb80c255b98deb27758c28d25f4f5119516a27e9df54868d1836464ce9ffbf20612647a65c8f316384119effd5e0a9c3968d5b234f8e1851ae94a9ec3871d098691b87aa1334518fa6cd83063d54a93090c4d978864d50aa67d0a479c3160d59357db432fd9ba66245aa0a193aac7953278d9e3f679894c1946900", - "4500010236003000004006cf03c0a80002550d93d740020050c30e84a9441d06ac80184000c2f400000101080a00052df410fc31bd474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005cbd82154b968d59b46ad9baddb3e60e9c372ef618c6fb35ecd8b26707173e9cf80dd73b68f6544dbbb6ed1cb68a47b490d16268d1a34961185933d50e1aa523f0dc49036307d7d8b369e4e0cac68e1cda3b70f080416377efe13372dcc801038f193b306a70b5b2864d9a3b629a30b1c2b5081b35384a1b457a07c6133271d4e021a306cd52347186ee81d119c69c3a72d2b079d37e4409c277e6f49021a3738cde71f8a0a923d60ec31866e4c0918185887dfc329cec9831834d951a3380522e3174891c3baff5e8d113a38f1c336e285a1c8aa5751d1844d8c7796dc52c1f24109d33f408928d8c9145465441b39f4c6b1950a60eb7011da48e1145eeebc929238aeb24f77dcab011c3c68829f7f3efbfcbe4c814e831668c3062367ffa3a64d9989561e4c91123c363d0186a3a4e1c3466cac659ea040dd29d61f3a0097f34290c24712a9e61837ee9193469de9045c3554d9fa843870600", - "4500010260004500004006cec4c0a80002550d93d740030050c3134faac89c8b2980184000578d00000101080a000535c010fc34c8474554202f6e697276616e612e63737320485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d33006fcede41b3072c5dbb78e7dcad3ca2858c164ea14aa50ac3c81aaf76d0541d81e74e1a183bcef2f64d23c7593676e4fcde8183070c1ac6913b9f91e3460e187884c2a871d6ca1a3669ee8869c2c4cad9226cd4e0801d75ea1d184f7caac143460d1aab68e238dd0303358c3975e4a461f3c6fe88128fefcce9214306ea18c8e3f04153a7edd0b841e5c0918185c87f83329cec9831834d951a33967e2ee174891c3bbaf5e8d113a38f1c336e3ac2718a05771d1844eac7d16d252e1f241985563489928d8c954546544193900c6e1950bc3ab7a11da58e11450aea292a234aee240595cab011c3c68829050f2624cce4c814ed31668c3012f7a0fc3a6fd9c49561e4c91123ce63d0702a3b4e1c3466e0c6b1ea04cdd4a36cf3a0592f952a0c2471ccc839c3268e1aab67d0a479f316cd59357db83af59b062346ab0d1f46b47933e7ce9e329c3a0d00", - "4500010264004600004006cebfc0a80002550d93d740040050c3135bab2189da61801840008f2d00000101080a000535c410fc34dc474554202f382d4269742f4c6162656c2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300952fbf517b07cd1e9f77f3ee9da317f38816325a48a56a152b0c236bc4da419375049e3b6960ec50fb3b388d1c6ad9d891237c070e1e3068245f1e7d468e1b3960e0316307460db556d6b04973474c132656d4f254836376d5ab7760008da3060f193568b4a28923750f8cd530e6d4919386cd9bfc234a48be33a7870c19ab632c8fc3074d1db87630c63023078e0c2c440c2294e164c78c196caad498f1547409a94be4d8e9ad478f9e187de498710352a4542cbbebc020823f4e6f2b74f920e1c81da34a966c64bc2c32a20a1a866476cb802236ba0def2c758c2872500f521951782739d854868d1836464c39a89061612647a6788f31638411ba0aebd791cb86ae0c234f8e18891e838654da71e2a03133378e562768ae2a7d9b078d7bab5861208913f20c1bfa5acfa049f3462e1ab56afa80950a38cdc68d5a214aa4a873e74fa144474a951a00", - "4500010264005800004006ceadc0a80002550d93d740050050c31389acaf7b26538018400075c900000101080a000537d010fc354a474554202f382d4269742f41636f726e2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300942dbf497b07cd1e9f76f1ea9d93f7f28816325a48a56af50e0c236bc2da418375049e3b6960ec48eb1b388d1c69d9d891137c070e1e306820570e7d468e1b3960e0316307468db456d6b04973474c132656d2f2548343b699aa57613c2113470d1e326ad064451347ea1e18aa61cca923270d9b37f94794887c674e0f193254c7501e870f9a3a6fed608c11148e0c2c440c2294e164c78c196caad498f1347409a94be4d8e1ad478f9e187de4987103520e1ca95874d78141047f1cde56e6f241c2713bc6942bd9c87059644415340cc9e89601252c741bdd57ea1851e4a09ea432a2ec4e72d0a90c1b316c8c9872502143c34c8e4ce91e63c608237315d6af1397cd5c19469e1c31023d060da9b4e3c44163466e9cac4ed0585dea360f9af6efefc0401227e81936f4b39e4193e64d5c3469d5f4f92a15709a8d1bb342944831a7ce9e42898a942a3500", - "4500010266007600004006ce8dc0a80002550d93d740060050c31431ada11fa06780184000f08e00000101080a00053b3c10fc35ef474554202f382d4269742f416d73747261642e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d33009733bf597b07cd9e9e78f5f2d5a379440b192da656bd9a1586913563eda0d13a02cf9d343076ac052e9c468eb56cecc819be03070f18349433973e23c78d1c30f098b103a3c65a2b6bd8a4b923a609132b6b77aac141db2ad63b309e9089a3060f193568b6a28933750f0cc830e6d4919386cd9bfd234a50be33a7870c199063308fc3074d9db87636c63023078e0c2c44103294e164c78c196caad49801957489a94be404ddaa478f9e187de4987133b2e4542cbcebc020a23f8e6f2b75f920f9d87d63cb976c64c82c32a20a9a876478cb803256ba8def2f758c28a2500f5319517a27512855868d1836464c51d8f061622647a67c8f31638491ba0defd799cba6ae0c234f8e18911e83c6d4db71e2a0314337ce562768b03a859b07cdfbab5961208943f20c1bfb5bcfa049f3662e9ab56afa849d3a388d478f5b2756bcf813e850a3484d4e9d1a00", - "4500010264007700004006ce8ec0a80002550d93d740040050c3135ddb2189e0108018400060d600000101080a00053b4010fc35e7474554202f382d4269742f41746172692e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300932bbf497b07cd1e9f76f1ea9d93d7f28816325a48a56a152b0c236b84da419375049e3b6960ec48dbfb378d1c69d9d891037c070e1e30681c4ffe7c468e1b3960e0316307468db456d6b04973474c132656d2f254832376d5ab77603c2113470d1e326ad068451347ea1e18a961cca923270d9b37f84794807c674e0f193252c7481e870f9aa1da2fc63023078e0c2c440a1e94e164c78c196caad498f1147409a94be4d8d9ad478f9e187de49871e311a4542cb9ebc020723fce6e2b73f920d968e7224a956c64b42c32a20a9a856472cb8022f4b90dee2a758c286250cf511951742731c854868d1836464c31887061612647a6708f31638491b908e9d789cb66ae0c234f8e18791e8386d4d971e2a03123378e562768ae26759b070d7bab58612089f3f10c9bf95acfa049f3262e9ab46afa8095fa378d468d5a1f469c8833e7ce9f41434a951a00", - "4500010264007c00004006ce89c0a80002550d93d740070050c314f3aefa37ceb18018400009f900000101080a00053e3410fc369e474554202f382d4269742f4170706c652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300942dbf517b07cd1e9f76f1ea9d93f7f28816325a48a56a152b0c236bc4da419375049e3b6960ec50dbfb378d1c6ad9d891037c070e1e30681c4ffe7c468e1b3960e0316307460db556d6b04973474c132656d4f254832376d5ab77603c2113470d1e326ad068451347ea1e18a961cca923270d9ba15a4b44be33a7870c19a963248fc3074d9db7762cc63023078e0c2c400da691e164c78c196caad498f1147409a94be4d8d9ad478f9e187de49871e311a4542cb9ebc020723fce6e2b73f920d1a8dd224a956c64b42c32a20a9aa16472cb8022f6b90dee2a758c2862504f521951742731e854868d1836464c29a910cd602647a6708f31638491b908e9d789cb66ae0c234f8e18791e8386d4d971e2a03123378e562768ae2e7dc3260f1af656b1c24012e7e31936f3b59e4193e64d5c346ad5f4012bd56f9a8c19b53a84281167ce9d3f8b86942a3500", - "4500010265007d00004006ce87c0a80002550d93d740050050c3138bdcaf7b296780183cec0de600000101080a00053e3410fc368e474554202f382d4269742f447261676f6e2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d33009631bf597b07cd1e9f8df5f2d59379440b192da656bd9a1586913563eda0d13a02cf9d343076ac052e9c468eb56cecc819be03070f18349433973e23c78d1c30f098b103a3c65a2b6bd8a4b923a609132b6b79aac141db2ad63b309e9089a3068f50345bd1c499ba07c6631873eac849c3e68dfe112526df99d343868cc73198c7e183a64e5c3b1963989103470616220715ca70b263c60c36556acc804abac4d42572ecf8d6a3474f8c3e72ccb80939722a16de75601051c3dfb715a27c9074ec9e71654b363260161951054d4332bc6540192bddc6f7963a461441a847a98c28bd93208ce3d3460c1b23a6205cd89030932353bec79831c208d185f7ebcc6553d7c8932346a4c7a03175769c3868ccd08db3d5091aac4ce1e641f3fe6a561848e2883cc3c6fed63368d2bc998b66ad9a3e61a7fe4dc391e3d688132beeec0974a8519253a70600", - "4500010269008000004006ce80c0a80002550d93d740060050c3143301dfa11fa3de80183c892b5d00000101080a0005412c10fc3761474554202f382d4269742f456e74657270726973652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f6600952f67defcc66dd03d3df7f6fd3bc72fe7112d64b4b08a552b571846d6983dda75049e3b6960ec701b7c388d1c6e8dca21be03070f183496db694e63468e1b3960e0316307460db756d6b04973474c132656dcee5483c376d6ad77603c2113470d1e326ad0784513c7ea1e18ae6110959386cd1bfe234a58be33a7870c19ae63548fc347285d3b1b63989103470616220ad3c870b263c60c36556acc986aba84d52572ecfcd6a3474f8c3e72ccb81149d22a96a3756010d91fe7b715bc7c90d4f9b891a54b36326216195105cd4332476540312bdd0678973a4614a923478f531951d0dc49d299aa0c1b316c8c98d2b9e143c64c8e4c011f63c60823781be2af63970d5e19469e1c31223d060dabbce3c44163e66e1caf4ed06c853a370f1af85ab9c2401267e41936f7bd9e4193e68d5d346ed5f4216bd5701aa142bd4eac78d1e7cfa1489596b46a3500", - "4500010268008100004006ce80c0a80002550d93d740040050c313600b2189e30280183d0e896b00000101080a000541d810fc379d474554202f382d4269742f436f6d6d6f646f72652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f3300952f67defcc6ed1d347b7ceeedfb778e5fce235ac8686115ab56ae308cac316b074dd71178eea481b1c3edf0e23472b86563478ef11d3878c0a0d1fc79f519396ee48081c78c1d1835dc5a59c326cd1d314d985871cb530d8edb59b7de81f1844c1c3578c8a841e3154d1cab7b60bc8631a78e9c346cdef81f51c2f29d393d64c8781de3791c3e68ead0b5d3318699a032b01061e85086931d3366b0a95263c654d325ac2e916327b81e3d7a62f49163c64dc9a056b1fcae038348ff38c1ade0e5832424f88e2e61b29131b3c8882a682292f92d038ad9ea36c4c3d431a248433d4c6544019ea46154193662d81831a5e1c38889991c99223ec68c1146f03ed45fc72e1bbc328c3c3962a47a0c1a5671c78983c6ccdd385e9da0d9ea746e1e34f2b5728581248ec9336cf27b3d8326cd1bbb68dcaae943d62ae13420417aad78312350a1448d228523c3aad500", - "4500010263008200004006ce84c0a80002550d93d740050050c3138e0daf7b2cf180183962cb2f00000101080a000542b410fc3822474554202f382d4269742f454143412e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b330096dfa4bd83668f4fbb78f5cec97b79440b192da24ead7a1586913561eda0c13a02cf9d343076a4f50d9c468eb46cecc809be03070f1834902b873e23c78d1c30f098b103a3465a2b6bd8a4b923a609132b6979aac1219baad53b309e9089a3060f193568b2a28913750f0cd530e6d4919386cd9bfc234a44be33a7870c19aa63288fc3074d9db77630c63023078e0c2c440c2294e164c78c196caad498e1347489a84be4d8e1ad478f9e187de49871035264542cbaebc020823f0e6f2b73f920e1b81da34a966c64bc2c32a20a1a866474cb801216ba8dee2c758c287250cf511951762739c854868d1836464c39a89021612647a6748f31638491b90aebd789cb66ae0c234f8e18811e8346d4d971e2a03123374e562768ac26759b074dfbaa5761208913f20c1bfa59cfa049f3262e9ab46afa7c8dfa37cdc68d59214aa4a873e7cfa04347468d1a00", - "4500010262008500004006ce82c0a80002550d93d740070050c314f5defa37d29b80183c168b6100000101080a000542c810fc37e5474554202f382d4269742f4d53582e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b330095dfa0bd83668fcfba77f3cec16b79440b192da04aa56a1586913560eda0b93a02cf9d343076a0edfd9b460eb46cecc801be03070f18348e277f3e23c78d1c30f098b103a3065a2b6bd8a4b923a609132b6879aac1117b6ad53b309e9089a3060f193568b0a28903750f8cd430e6d4919386cd1bfc234a40be33a7870c19a963248fc3074d1db7762ec63023078e0c2c440a1e94e164c78c196caad498d1147409a84be4d8d9ad478f9e187de49871f33124542cb9ebc020723fce6e2b72f920d9a8fd62ca956c64b82c32a20a9a856472cb8002f6b90dee2b758c2862508f511951742731b854868d1836464c318870e1602647a6708f31638411b908e9d781cb46ae0c234f8e18791e830654d971e2a03113370e562768aa226d9b070d7baa5661208903f20c9bf958cfa049f3062e1ab46afa7885ea378d468d581f469c9853674fa0424542851a00", - "4500010265009400004006ce70c0a80002550d93d740060050c3143614a11fa986801836e1f43c00000101080a000545b010fc38b7474554202f382d4269742f4d617474656c2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300942dbf512b744fcfbb79f7ced17b79440b192da452b58a1586913562eda0c93a02cf9d343076a8edfd9b460eb56cecc801be03070f18348e277f3e23c78d1c30f098b103a3865a2b6bd8a4b923a609132b6a77aac111bbead53b309e9089a3060f193568b4a28923750f8cd430e6d4919386cd1bfc234a44be33a7870c19a963248fc3074d1db87630c63023078e0c2c440a1e94e164c78c196caad498f1347409a94be4d8d9ad478f9e187de498710352a4542cb9ebc020723fce6e2b74f920e1a81da34a966c64bc2c32a20a1a866472cb8022f6b90dee2c758c2862504f521951742731e854868d1836464c31889021612647a6708f31638411ba08e9d791bbd8c89323469ec7a02195769c3868cc7ca5abd5099aab4bdfe641c3de2a561848e2843cc366bed63368d2bc018a46ad9a3e60a5fe4db371a356881229eae4f97368d19152a50600", - "4500010263009900004006ce6dc0a80002550d93d740040050c313623f2189e66b801839a5739a00000101080a0005464c10fc38f3474554202f382d4269742f4f7269632e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b330095dfa4bd83668f4fc578f5eab13ca2858c1651a756bd0ac3c89ab076d0601d81e74e1a183bd2fa064e23475a3676e404df8183070c1ac895439f91e3460e1878ccd8815123ad95356cd2dc11d3848995b43cd5e0904dd5ea1d184fc8c45183878c1a3459d1c489ba0706631873eac849c3e64dfe112520df99d343860cc63194c7e18326e8768c31ccc88123030b1183086538d93163069b2a356638155d22ea12397678ebd1a327461f3966dc7c0c19158bee3a3088e08fc3db8a5c3e4838dac19872251b192e8b8ca882862119dd32a084856ea3fb4a1d238a1cd483544694dd490e36956123868d11530e2a642898c99129dd63cc186144aec2fa75e0b2912bc3c8932346a0c7a01135769c3868ccc48d93d5091aab4adde641d3beea551848e2803cc3867ed63368d2bc818b26ad9a3e5fa3f64db3716356881229e6d4d91328519151a30600", - "4500010269009e00004006ce62c0a80002550d93d740060050c3143845a11fab60801840003c1c00000101080a000547d810fc38b7474554202f382d4269742f526164696f536861636b2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f330096316be6fcc6ed1d347b7a46f60b584fe7112d64b4b08a552b5718468ad6b183a6eb083c77d2c0d8e17678711a39dcb2b123c7f80e1c3c60d068febcfa8c1c3772c0c063c60e8c1a6e89b24973474c132656dcee5483e376d6ad77603c2113470d1e326ad0784513c7ea1e189361cca923270d9b37fd4794b87c674e0f193226c7781e870f9a3a74ed748c61460e1c195888307428c3c98e1933d854a93163eae9125697c8b1135c8f1e3d31fac831e3a6e449ab587ed78141847f9ce056f0f24112127cc79731d9c8a0596444153411c9fc9601c56c751be263ea1851a4a19ea732a2004fd2b0aa0c1b316c8c98d2f061c4c54c8e4c111f63c60823781fe6af6357685e234f8e18a91e838655dd71e2a03173378e572768b6469d9b074d7cad5c61208963f20c1bfc5ecfa049f3c62e1ab76afa90b55a380d48905e2b5ecc1874e8d1a44b515ab51a00", - "4500010266009f00004006ce64c0a80002550d93d740050050c313903caf7b2f9580183d5ce4ef00000101080a0005481810fc3934474554202f382d4269742f5068696c6970732e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300952fbf597b07cd1e9f8cf5f2d58379440b192da85ac5aa1586913563eda0d93a02cf9d343076acfd1d9c468eb56cecc811be03070f1834922f8f3e23c78d1c30f098b103a3c65a2b41d3dc11d3848995b53cd5e0987d35eb1d184fc8c45183878c1a345cd1c4a1ba0786631873eac8492334ff881292efcce9214386e318cbe3f0415307b19d8b31ccc88123030b1183086538d93163069b2a3566441d5d82ea1239767aebd1a327461f3966dc7c0c4915cbee3a3088e08fd3db0a5d3e483672bf9872251b192e8b8ca882e60d1a32bb6540191bdd86f7953a461439a847a98c28bc931c7c2ac3460c1b23a61c5428f830932353bcc79831c2085d85f5ebc8654357869127478c448f4183eaed3871d098991b87ab133459990ecd83a63d56ad3090c40179860d7dae67d0a4792317cd5a357d8852059c46a346ae0f234ecca9b32750a322a9520d00", - "450001049b00ae00004006cc20c0a80002550d93d740050050c31396ceaf7b396e801840009ad400000101080a0005611010fc3d6b474554202f382d4269742f6d72776f6e672e67696620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d33009733bf617b07cd9e9f8ef7f6d5a379440b192da85ac5aa1586913564eda0d93a02cf9d343076b00d3e9c460eb66cecc821be03070f183496379f3e23c78d1c30f098b103a3065b2b6b92de11d3848915b63dd5e0a87d35eb1d184fc814c543460d1aae68e250dd0303328c3975e4a461f346ff881294efcce9214306e418cde3f0415347ae1d8c31ccc88123030b1183086538d93163069b2a3566442d5d82ea1239767eebd1a327461f3966dc801449154bef3a3088e48ff3db0a513e48387ac7a892251b192f8b8ca882862199de32a0909d6e033c4b1d238a1cd4a3544614df490e3e956123868d11530e2a644898c99129e063cc186184a8423578ead06563d7c8932346a6c7a04175769c3868ccd48dc3d5099aac4ce3e641f31eab561848e2843cc3a628d73368d2bca18b86ad9a3e62a9fe4db3712357881229eadce933e8d09154a92a417265848c1d307afec489074e198678e6108d31a7e8882557ae4c9111357903abdf7f7b052b96ec4f3868d51e7e1b77ae74198ef7f63d1a76ce52bf50cf4c9d7355b7ddb290634cae7cb9b4dec05f135b76c178c41d347b7e16eeabc732db16325a74cf7a07869135647bff0e3e7c075bdad3732c6f4e7c070e1ed37dcb993e23c78d1c30f07807cfd6ca1a3669ee8869c2c40adb9e6a70a8d60ae30999a278c8e4e78a260ed53d3020c33088900d43ae25204aa46818239f8d6cbc631c3a120b11ff6964a864c9e6e58ca8a54b505d220727579d3b7d06bd48158b52a6f99f72b542940f923a13ed600c39838d8c974546fc6548a63761b2d36d8067a96344913a72f428951105cd9d248a9fcab011c3c688298ad30c444398c99129e063cc18313bce683578eae8b66be4c91123d363246f003b0e1a33d2b93a41939569dc3c68d6df8181248e193967d814e57a064d9a3774d1b055d387cd1caa7fd36cdcc835618f853a63d07473510655aa0100", - - /* SGSN with IAXMODEM V.42bis */ - "45000101a0f3d84000400679210a0901abc0a800021f90400538e210f07a827bb1501900ed7be90000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205765642c203301312041756720323031362030393a32383a353220474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a66003f481c9162e40a97294800002068746d6c20506600588a3c6162644409183200002f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d66006f8234f87187cd1d006c653e4469726563746f7279206c697374696e672066016f72202f3c2f7469746c990068bcff2823e70c9fff6b6a943f9f7e7dfbf7f1e7d7bf9f5fb1c2ef6beafcc7d3fd3b7ced646aa34f03a404fa3373a4c64113630efdec27534e7509538d7e32ff657044a8f1bb0c82067f72f71e00", - "45000101a0e9a54000400683540a0901abc0a800021f904004437442f17a4ab3b1501900ed04900000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205765642c203301312041756720323031362030393a32373a353520474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a66003f481c9162e40a97294800002068746d6c20506600588a3c6162644409183200002f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e672066016f72202f3c2f7469746c990068beff2823e70c9f816b6a9847af9ebd7bf8f2e9dbc7af5ff142f06bea0cc4e31d7cfced646aa74f03a444fa3373a4c64113634e7ded28554e7d1953cd7e320365744cb811bc8c82078376ff1e00", -}; - -/* Uncompressed sample packets, sniffed from real communication */ -#define UNCOMPR_PACKETS_LEN 11 -char *uncompr_packets[] = { - "45000236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a", - "4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27", - "4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0", - "4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01", - "4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01", - "4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a", - "4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20", - "450001a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c2033302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a", - "450000e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d34323736386138656338656330220d0a0d0a", - "450000e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a", - "450000e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a", -}; - -/* Calculate IP Header checksum */ -static uint16_t calc_ip_csum(uint8_t *data, int len) -{ - int i; - uint32_t accumulator = 0; - uint16_t *pointer = (uint16_t *) data; - - for (i = len; i > 1; i -= 2) { - accumulator += *pointer; - pointer++; - } - - if (len % 2) - accumulator += *pointer; - - accumulator = (accumulator & 0xffff) + ((accumulator >> 16) & 0xffff); - accumulator += (accumulator >> 16) & 0xffff; - return (~accumulator); -} - -/* Calculate TCP/IP checksum */ -static uint16_t calc_tcpip_csum(const void *ctx, uint8_t *packet, int len) -{ - uint8_t *buf; - uint16_t csum; - - buf = talloc_zero_size(ctx, len); - memset(buf, 0, len); - memcpy(buf, packet + 12, 8); - buf[9] = packet[9]; - buf[11] = (len - 20) & 0xFF; - buf[10] = (len - 20) >> 8 & 0xFF; - memcpy(buf + 12, packet + 20, len - 20); - csum = calc_ip_csum(buf, len - 20 + 12); - talloc_free(buf); - return csum; -} - -/* A simple function to show the ascii content of a packet */ -void show_packet(uint8_t *packet, int len) -{ - int i; - char c; - for (i = 0; i < len; i++) { - c = packet[i]; - if (c >= 0x20 && c <= 0x7E) - printf("%c", c); - else - printf("."); - } - printf("\n"); -} - -/* A struct to capture the output data of compressor and decompressor */ -struct v42bis_output_buffer { - uint8_t *buf; - uint8_t *buf_pointer; - int len; -}; - -/* A simple testpattern generator */ -static void gen_test_pattern(uint8_t *data, int len) -{ - int i; - for (i = 0; i < len; i++) - data[i] = i & 0xF0; -} - -/* Handler to capture the output data from the compressor */ -void tx_v42bis_frame_handler(void *user_data, const uint8_t *pkt, int len) -{ - struct v42bis_output_buffer *output_buffer = - (struct v42bis_output_buffer *)user_data; - memcpy(output_buffer->buf_pointer, pkt, len); - output_buffer->buf_pointer += len; - output_buffer->len += len; - return; -} - -/* Handler to capture the output data from the decompressor */ -void tx_v42bis_data_handler(void *user_data, const uint8_t *buf, int len) -{ - /* stub, never used */ - OSMO_ASSERT(false); - return; -} - -/* Handler to capture the output data from the compressor */ -void rx_v42bis_frame_handler(void *user_data, const uint8_t *pkt, int len) -{ - /* stub, never used */ - OSMO_ASSERT(false); - return; -} - -/* Handler to capture the output data from the decompressor */ -void rx_v42bis_data_handler(void *user_data, const uint8_t *buf, int len) -{ - struct v42bis_output_buffer *output_buffer = - (struct v42bis_output_buffer *)user_data; - memcpy(output_buffer->buf_pointer, buf, len); - output_buffer->buf_pointer += len; - output_buffer->len += len; - return; -} - -/* Test V.42bis compression and decompression */ -static void v42bis(const void *ctx, int mode, uint8_t *testvec, int len) -{ - v42bis_state_t *tx_state; - v42bis_state_t *rx_state; - uint8_t *uncompressed_original; - uint8_t *compressed; - uint8_t *uncompressed; - - uncompressed_original = talloc_zero_size(ctx, len); - uncompressed = talloc_zero_size(ctx, len); - - /* Note: We allocate double the size for the compressed buffer, - * because in some cases the compression may increase the amount. - * of data. */ - compressed = talloc_zero_size(ctx, len * 2); - - int rc; - int rc_sum = 0; - struct v42bis_output_buffer compressed_data; - struct v42bis_output_buffer uncompressed_data; - - /* Initalize */ - tx_state = - v42bis_init(ctx, NULL, P0, P1, P2, - &tx_v42bis_frame_handler, NULL, MAX_BLOCK_SIZE, - &tx_v42bis_data_handler, NULL, MAX_BLOCK_SIZE); - OSMO_ASSERT(tx_state); - rx_state = - v42bis_init(ctx, NULL, P0, P1, P2, - &rx_v42bis_frame_handler, NULL, MAX_BLOCK_SIZE, - &rx_v42bis_data_handler, NULL, MAX_BLOCK_SIZE); - OSMO_ASSERT(rx_state); - v42bis_compression_control(tx_state, mode); - - /* Setup input data */ - memcpy(uncompressed_original, testvec, len); - - /* Run compressor */ - compressed_data.buf = compressed; - compressed_data.buf_pointer = compressed; - compressed_data.len = 0; - tx_state->compress.user_data = (&compressed_data); - rc = v42bis_compress(tx_state, uncompressed_original, len); - printf("v42bis_compress() rc=%d\n", rc); - OSMO_ASSERT(rc == 0); - rc = v42bis_compress_flush(tx_state); - printf("v42bis_compress_flush() rc=%d\n", rc); - OSMO_ASSERT(rc == 0); - - /* Decompress again */ - uncompressed_data.buf = uncompressed; - uncompressed_data.buf_pointer = uncompressed; - uncompressed_data.len = 0; - rx_state->decompress.user_data = (&uncompressed_data); - rc = v42bis_decompress(rx_state, compressed_data.buf, - compressed_data.len); - printf("v42bis_decompress() rc=%d\n", rc); - rc = v42bis_decompress_flush(rx_state); - rc_sum += rc; - printf("v42bis_decompress_flush() rc=%d\n", rc); - rc_sum += rc; - - /* Check results */ - printf("Mode: %i\n", mode); - - printf("uncompressed_original= %s ASCII:", - osmo_hexdump_nospc(uncompressed_original, len)); - show_packet(uncompressed_original, len); - printf("uncompressed= %s ASCII:", - osmo_hexdump_nospc(uncompressed_data.buf, - uncompressed_data.len)); - show_packet(uncompressed_data.buf, uncompressed_data.len); - printf("compressed= %s ASCII:", - osmo_hexdump_nospc(compressed_data.buf, compressed_data.len)); - show_packet(compressed_data.buf, compressed_data.len); - - rc = memcmp(uncompressed, uncompressed_original, len); - printf("memcmp() rc=%d\n", rc); - rc_sum += rc; - OSMO_ASSERT(rc_sum == 0); - - /* Free buffers and exit */ - v42bis_free(tx_state); - v42bis_free(rx_state); - talloc_free(uncompressed_original); - talloc_free(compressed); - talloc_free(uncompressed); - printf("\n"); -} - -/* Test V.42bis compression and decompression with generated data*/ -static void test_v42bis(const void *ctx) -{ - printf("Testing compression/decompression with generated data:\n"); - uint8_t testvec[1024]; - int len = sizeof(testvec); - gen_test_pattern(testvec, len); - v42bis(ctx, V42BIS_COMPRESSION_MODE_DYNAMIC, testvec, len); - v42bis(ctx, V42BIS_COMPRESSION_MODE_ALWAYS, testvec, len); - v42bis(ctx, V42BIS_COMPRESSION_MODE_NEVER, testvec, len); -} - -/* Test V.42bis compression and decompression with some TCP/IP packets */ -static void test_v42bis_tcpip(const void *ctx, int packet_id) -{ - uint8_t *testvec; - int len; - printf - ("Testing compression/decompression with realistic TCP/IP packets:\n"); - printf("Packet No.: %i\n", packet_id); - len = strlen(uncompr_packets[packet_id]); - testvec = talloc_zero_size(ctx, len); - len = osmo_hexparse(uncompr_packets[packet_id], testvec, len); - OSMO_ASSERT(len > 0); - v42bis(ctx, V42BIS_COMPRESSION_MODE_DYNAMIC, testvec, len); - v42bis(ctx, V42BIS_COMPRESSION_MODE_ALWAYS, testvec, len); - v42bis(ctx, V42BIS_COMPRESSION_MODE_NEVER, testvec, len); - talloc_free(testvec); -} - -/* Test V.42bis decompression with real, sniffed packets */ -static void test_v42bis_tcpip_decompress(const void *ctx, int packet_id) -{ - uint8_t *compressed; - int compressed_len; - uint8_t *uncompressed; - v42bis_state_t *rx_state; - int rc; - int rc_sum = 0; - int len; - struct v42bis_output_buffer uncompressed_data; - - printf - ("Testing decompression with sniffed compressed TCP/IP packets:\n"); - printf("Packet No.: %i\n", packet_id); - len = strlen(compr_packets[packet_id]); - - uncompressed = talloc_zero_size(ctx, len); - compressed = talloc_zero_size(ctx, len); - - /* Initalize */ - rx_state = - v42bis_init(ctx, NULL, P0, P1, P2, - &rx_v42bis_frame_handler, NULL, MAX_BLOCK_SIZE, - &rx_v42bis_data_handler, NULL, MAX_BLOCK_SIZE); - OSMO_ASSERT(rx_state); - - /* Setup input data */ - compressed_len = - osmo_hexparse(compr_packets[packet_id], compressed, len); - - /* Decompress */ - uncompressed_data.buf = uncompressed; - uncompressed_data.buf_pointer = uncompressed; - uncompressed_data.len = 0; - rx_state->decompress.user_data = (&uncompressed_data); - rc = v42bis_decompress_flush(rx_state); - printf("v42bis_decompress_flush() rc=%d\n", rc); - rc_sum += rc; - rc = v42bis_decompress(rx_state, compressed, compressed_len); - printf("v42bis_decompress() rc=%d\n", rc); - rc_sum += rc; - rc = v42bis_decompress_flush(rx_state); - printf("v42bis_decompress_flush() rc=%d\n", rc); - rc_sum += rc; - - /* Check results */ - printf("compressed= %s ASCII:", - osmo_hexdump_nospc(compressed, compressed_len)); - show_packet(compressed, compressed_len); - printf("uncompressed= %s ASCII:", - osmo_hexdump_nospc(uncompressed_data.buf, - uncompressed_data.len)); - show_packet(uncompressed_data.buf, uncompressed_data.len); - - OSMO_ASSERT(calc_ip_csum(uncompressed_data.buf, 20) == 0); - OSMO_ASSERT(calc_tcpip_csum(ctx, uncompressed_data.buf, - uncompressed_data.len) == 0); - - /* Free buffers and exit */ - v42bis_free(rx_state); - talloc_free(uncompressed); - talloc_free(compressed); - printf("\n"); -} - -static struct log_info_cat gprs_categories[] = { - [DV42BIS] = { - .name = "DV42BIS", - .description = "V.42bis data compression (SNDCP)", - .enabled = 1,.loglevel = LOGL_DEBUG, - } -}; - -static struct log_info info = { - .cat = gprs_categories, - .num_cat = ARRAY_SIZE(gprs_categories), -}; - -int main(int argc, char **argv) -{ - void *v42bis_ctx; - int i; - - osmo_init_logging(&info); - - v42bis_ctx = talloc_named_const(NULL, 0, "v42bis_ctx"); - - test_v42bis(v42bis_ctx); - - for (i = 0; i < UNCOMPR_PACKETS_LEN; i++) - test_v42bis_tcpip(v42bis_ctx, i); - - for (i = 0; i < COMPR_PACKETS_LEN; i++) - test_v42bis_tcpip_decompress(v42bis_ctx, i); - - printf("Done\n"); - talloc_report_full(v42bis_ctx, stderr); - OSMO_ASSERT(talloc_total_blocks(v42bis_ctx) == 1); - return 0; -} - -/* stubs */ -struct osmo_prim_hdr; -int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) -{ - abort(); -} diff --git a/tests/v42bis/v42bis_test.ok b/tests/v42bis/v42bis_test.ok deleted file mode 100644 index 070767473..000000000 --- a/tests/v42bis/v42bis_test.ok +++ /dev/null @@ -1,648 +0,0 @@ -Testing compression/decompression with generated data: -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 00000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 ASCII:................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................ -uncompressed= 00000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 ASCII:................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................ -compressed= 000100000000000000003300040b4e9870f020428409478c58b89021c38633663c7c081162c42143264ea448b1e29429172f62c49871cc988d1b3972ec3867cec78f2041861c3468e44892244b4e9a74f2244a9429478d5ab99225cb96b366bd7c091366cc61c366cea449b3e6b469376fe2c49973dcb89d3b79f2ec396fdecf9f4081062d587028c184098d226cd83029c388119942ac58f129c58c19a562ecd8b12ac79021b1822c59722bc99429bda26cd9322ccb9831c9c2ac59f32ccd9c39d5e2ecd9b32dcfa041e102254ad4e0d1a348952a5ddab4a953a850a34e9d4ad5aad5ab59b36ae5cab5ebd7af60c58a1d5bb6ac59b468d3ae5dcbd6addbb771e3ca9d3b7740ddba07efde5d9837efc3bd7b27f6ed7bf1efdf8d81037f1c3c7864e1c2270f1f5e9938f1cbc58b67366e7cf3f1e39d9123ff0c00 ASCII:..........3...N.p. B..G.X..!..3f<|..b.!C&N.H...)./b..q....9r.8g... A..4h.H.$KN.t.$J.)G.Z..%...f.|..f.a.f..I...i7o...s...;y..9o...@..-Xp(...."l.0)....B.X.)....b...*..!..,Yr+..)..l.2,..1...Y.,..9.....-..A..%J....H.*]...S.P.N.J....Y.j......`...[..Y.h..].....q...;w@.....].7...{'..{........<xd..'..^.8....g6n|.....#... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 00000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 ASCII:................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................ -uncompressed= 00000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 ASCII:................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................ -compressed= 0001330003060e2448b0e08409070f22449870c488850b19326c3863c6c3871021461c3264e2448a142b4e9972f122468c19c78cd9b89123c78e73e67cfc081264c84183468e2449b2e4a449274fa2449972d4a8952b59b26c396bd6cb973061c61c366ce64c9a346b4e9b76f3264e9c39c78ddbb99327cf9ef3e6fdfc091468d0820587124c98d028c2860d93328c189129c48a159f52cc98512ac68e1dab720c19122bc89225b7924c99d22bca962dc3b28c19932ccc9a35cfd2cc99532dce9e3ddbf20c1a142e50a2440d1e3d8a54a9d2a54d9b3a850a35ead4a954ad5abd9a35ab56ae5cbb7efd0a56acd8b165cb9a458b36eddab56cddba7d1b37aedcb97307d4ad7bf0eedd8579f33edcbb7762dfbe17fffedd1838f0c7c18347162e7cf2f0e1958913bf5cbc7866e3c6371f3fde1939f2cf00 ASCII:..3....$H......"D.p.....2l8c....!F.2d.D..+N.r."F.......#..s.|...d.A.F.$I...I'O.D.r...+Y.l9k...0a..6l.L.4kN.v.&N.9.....'........h.....L..(....2...)....R..Q*....r...+..%..L..+..-.....,..5....S-..=......P.D..=.T...M.:..5...T.Z..5.V.\.~..V...e..E.6...l..}.7...s...{....y.>..wb.......8....G..|.......\.xf..7.?..9... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 00000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 ASCII:................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................ -uncompressed= 00000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 ASCII:................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................ -compressed= 0001000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f000000000000000000000000000000000101010101010101010101010101010102020202020202020202020202020202030303030303030303030303030303030404040404040404040404040404040405050505050505050505050505050505060606060606060606060606060606060707070707070707070707070707070708080808080808080808080808080808090909090909090909090909090909090a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0 ASCII:................................. 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................................................ 0000000000000000@@@@@@@@@@@@@@@@PPPPPPPPPPPPPPPP````````````````pppppppppppppppp................................................................................................................................ -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 0 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 45000236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..6....@..,....U...@..P. ....Zp..@..7........t..S..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... -uncompressed= 45000236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..6....@..,....U...@..P. ....Zp..@..7........t..S..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... -compressed= 4500010236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c6963330062d990358b562ddb3d6beec079e3620f61bb5dbf861d5b36f0e0c287df68bd8366cfd4b369d7ce518b78440b192d820e2d7a1486913551eda0413a02cf9d343076687d1d9b460ead6cecc891bd03070f183472ef0e3e23c78d1c30f098b103a386562b6bd8a4b923a609132b5a8bb05183633451a377603c2113470d1e326ad024451327e81e189b61cca923270d9b37eb4794107c674e0f193236c7d81d870f9a3a60ed288c61460e1c195888d0b72fc3c98e1933d854a931c3a7e4124197c8b1d35a8f1e3d31fac831e34622c5a05856d78141447d9cd656c8f241e290b9c28e1fd9c8105964441534f9c9ac9601256a701bce3fea1851a4be1e9c32a2b04e52bfa70c1b316c8c9852ff7efebb4c8e4c711e63c6082364ef9faf23960d5919469e1c31123c068da0a5e3c44163666c9ca44ed018d5f9350f9aef458fc2401267e21936e6939e4193e68d58345ad5f4791a346800 ASCII:E...6....@..,....U...@..P. ....Zp..@..7........t..S..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, applic3.b..5.V-.=k..y.b.a.]...[6.....h..f...i..Q.xD..-..-z...5Q..A:...40vh}..F..l........4r..>#...0......V+k...#...+Z..Q.c4Q.w`<!.G..2j.$E.'....a..#'..7.G..|gN..26......:`.(.aF...X.../....3.T.1....A....Z..=1..1.F"..XV..AD}..V..A.........YdD.4.....%jp..?..Q....2..NR....1l..R.~..L.Lq.c..#d...#..Y.F..1.<......Acfl..N....5...E..@.g..6...A...X4Z..y.4h. -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 45000236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..6....@..,....U...@..P. ....Zp..@..7........t..S..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... -uncompressed= 45000236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..6....@..,....U...@..P. ....Zp..@..7........t..S..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... -compressed= 450000030ae418a060c0802109a4bd18b68a20160896b40d493825c40808aa8631eb3267d0068b31742424406041830104ee5c5860e51a232548ae8c903162c9952b5364d088410342032266cca09973a7c7083878dedc6133874c9d3b32e0b0d983e6cc8b1164e6cc79c3c60c19a772e2c8c813e74c0c3d5c632c6dfa34ea9db656b16ae5ea15ac583664cda255cb76cf9a3b70deb8d843d86ed7af61c7960d3cb8f0e1375aefa0d933f56cdab573d4221ed142468ba0438b1e8561644d543b68908ec073270d8c1d5a5fc7a691432b1b3b7264efc0c103068ddcbb83cfc87123070c3c66ecc0a8a1d5ca1a3669ee8869c2c48ad6226cd4e0184dd4e81d184fc8c45183878c1a3449d1c409ba07c6661873eac849c3e6cdfa112504df99d343868ccd3176c7e183a60e583b0a6398910347061622f4edcb70b263c60c36556accf029b944d02572ecb4d6a3474f8c3e72ccb89148312896d5756010511fa7b515b27c903864aeb0e347363244161951054d7e32ab6540891adc86f38f3a4614a9af07a78c28ac93d4ef29c3460c1b23a6d4bf9fff2e9323539cc79831c208d9fbe7eb88654356869127478c048f412368e93871d098191b27a9133446757ecd83e67bd1a33090c49978868df9a467d0a47923168d56357d9e060d1a00 ASCII:E.......`..!...... .....I8%.....1.2g...1t$$@`A....\X`..#%H...1b..+Sd..A.B."f...s...8x..a3.L.;2........d..y.....r.....L.=\c,m.4...V.j....X6d..U.v..;p...C.n..a...<...7Z...3.l..s."..BF..C...adMT;h...s'...Z_...C+.;rd...........q#..<f.......6i..i...."l...M....O..Q....4I......f.s..I.....%....C...1v.....X;.c...G.."...p.c..6Uj..).D.%r....GO.>r...H1(..u`.Q.....|.8d...G62D..Q.M~2.e@......:F......(....).F..#.......#S...1.......eCV..'G...A#h.8q....'..4Fu~...{..0...x....g..y#..V5}..... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 45000236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..6....@..,....U...@..P. ....Zp..@..7........t..S..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... -uncompressed= 45000236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..6....@..,....U...@..P. ....Zp..@..7........t..S..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... -compressed= 4500010236000700004006cf2cc0a80002550d93d7400000501e200da7c0c95a70801840002e3700000101080a000174140853d489474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d3133012d323030372042726f777365722f4e657446726f6e742f332e332050726f6601696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E...6....@..,....U...@..P. ....Zp..@..7........t..S..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13.-2007 Browser/NetFront/3.3 Prof.ile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 1 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 ASCII:E..@F.@.@.....dn..dd...........M....*.........G....^..... ..#..' -uncompressed= 4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 ASCII:E..@F.@.@.....dn..dd...........M....*.........G....^..... ..#..' -compressed= 451000014046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 ASCII:E...@F.@.@.....dn..dd...........M....*.........G....^..... ..#..' -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 ASCII:E..@F.@.@.....dn..dd...........M....*.........G....^..... ..#..' -uncompressed= 4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 ASCII:E..@F.@.@.....dn..dd...........M....*.........G....^..... ..#..' -compressed= 45000013060c49026e48c104ac540d5b75268ec33367066880e588d0260203ecbdda0465d08601e65a641830800081050d062450122e013561610402dc5073444d1335550400 ASCII:E.....I.nH...T.[u&..3g.h....&......e....Zd.0......$P...5aa...PsDM.5U.. -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 ASCII:E..@F.@.@.....dn..dd...........M....*.........G....^..... ..#..' -uncompressed= 4510004046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 ASCII:E..@F.@.@.....dn..dd...........M....*.........G....^..... ..#..' -compressed= 451000014046dd40004006a9a7c0a8646ec0a864640017ad8b81980100f3ac984d801800e32a1600000101080a000647de06d1bf5efffd18fffd20fffd23fffd27 ASCII:E...@F.@.@.....dn..dd...........M....*.........G....^..... ..#..' -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 2 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 ASCII:E..[F.@.@.....dn..dd...........M.....u........G....a........!.."..... .....#.....'......... -uncompressed= 4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 ASCII:E..[F.@.@.....dn..dd...........M.....u........G....a........!.."..... .....#.....'......... -compressed= 451000015b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 ASCII:E...[F.@.@.....dn..dd...........M.....u........G....a........!.."..... .....#.....'......... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 ASCII:E..[F.@.@.....dn..dd...........M.....u........G....a........!.."..... .....#.....'......... -uncompressed= 4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 ASCII:E..[F.@.@.....dn..dd...........M.....u........G....a........!.."..... .....#.....'......... -compressed= 45000013067849126ec880210958391ab6ea4c9c8767ce0cd000cb11a14d041ed87bb509caa00d03cc25c233600001020b1a0c48a0445c026ac2c808f467402040113949080c58c2260281fd461010386fa809a348fba9583a74c3d200 ASCII:E....xI.n..!.X9...L..g.......M...{.......%.3`......H.D\.j....g@ @.9I..X.&...F..8o...H..X:t... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 ASCII:E..[F.@.@.....dn..dd...........M.....u........G....a........!.."..... .....#.....'......... -uncompressed= 4510005b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 ASCII:E..[F.@.@.....dn..dd...........M.....u........G....a........!.."..... .....#.....'......... -compressed= 451000015b46de40004006a98bc0a8646ec0a864640017ad8b8198010cf3ac984d801800e3867500000101080a000647df06d1bf61fffb03fffd1ffffd21fffe22fffb05fffa2001fff0fffa2301fff0fffa2701fff0fffa1801fff0 ASCII:E...[F.@.@.....dn..dd...........M.....u........G....a........!.."..... .....#.....'......... -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 3 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 ASCII:E..7F.@.@.....dn..dd.......3........_.........G....c... -uncompressed= 4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 ASCII:E..7F.@.@.....dn..dd.......3........_.........G....c... -compressed= 451000013746df40004006a9aec0a8646ec0a864640017ad8b8198013301f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 ASCII:E...7F.@.@.....dn..dd.......3........._.........G....c... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 ASCII:E..7F.@.@.....dn..dd.......3........_.........G....c... -uncompressed= 4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 ASCII:E..7F.@.@.....dn..dd.......3........_.........G....c... -compressed= 4500001306e848226ec880210958c51ab6ea4c9c8767ce0cd000cb11a14d046cd87bb549d4a00d03cc89d136600001020b1a0c48a0845c026ac2cc0804482000 ASCII:E.....H"n..!.X....L..g.......M.l.{.I.......6`......H..\.j....H . -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 ASCII:E..7F.@.@.....dn..dd.......3........_.........G....c... -uncompressed= 4510003746df40004006a9aec0a8646ec0a864640017ad8b81980133f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 ASCII:E..7F.@.@.....dn..dd.......3........_.........G....c... -compressed= 451000013746df40004006a9aec0a8646ec0a864640017ad8b8198013301f3ac989f801800e35fd700000101080a000647e106d1bf63fffd01 ASCII:E...7F.@.@.....dn..dd.......3........._.........G....c... -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 4 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 ASCII:E..7F.@.@.....dn..dd.......6........_.........G....d... -uncompressed= 4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 ASCII:E..7F.@.@.....dn..dd.......6........_.........G....d... -compressed= 451000013746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 ASCII:E...7F.@.@.....dn..dd.......6........_.........G....d... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 ASCII:E..7F.@.@.....dn..dd.......6........_.........G....d... -uncompressed= 4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 ASCII:E..7F.@.@.....dn..dd.......6........_.........G....d... -compressed= 4500001306e848326ec880210958c11ab6ea4c9c8767ce0cd000cb11a14d0472d87bb5a9d4a00d03cc89a936600001020b1a0c48a0845c026ac2ce08f4472000 ASCII:E.....H2n..!.X....L..g.......M.r.{.........6`......H..\.j....G . -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 ASCII:E..7F.@.@.....dn..dd.......6........_.........G....d... -uncompressed= 4510003746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 ASCII:E..7F.@.@.....dn..dd.......6........_.........G....d... -compressed= 451000013746e040004006a9adc0a8646ec0a864640017ad8b81980136f3ac98a2801800e35fd200000101080a000647e106d1bf64fffb01 ASCII:E...7F.@.@.....dn..dd.......6........_.........G....d... -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 5 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a ASCII:E..tF.@.@..o..dn..dd.......9........{.........G....d..------------------..Wellcome to pollux..------------------.... -uncompressed= 4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a ASCII:E..tF.@.@..o..dn..dd.......9........{.........G....d..------------------..Wellcome to pollux..------------------.... -compressed= 451000017446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3300386d6a41f3e68d193970d08cb82367c41c3940f1ecb1b97327549e0d6c0600 ASCII:E...tF.@.@..o..dn..dd.......9........{.........G....d..----------------3.8mjA....9p...#g..9@....s'T..l.. -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a ASCII:E..tF.@.@..o..dn..dd.......9........{.........G....d..------------------..Wellcome to pollux..------------------.... -uncompressed= 4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a ASCII:E..tF.@.@..o..dn..dd.......9........{.........G....d..------------------..Wellcome to pollux..------------------.... -compressed= 4500001306dc49426ec880210958c919b6ea4c9c8767ce0cd000cb11a14d0478d87bb509d5a00d03ccf9f134600001020b1a0c48a0a45c026ac2ce40680003064e9c3973eac469530b9a376fccc8818366c41d3923e6c8018a678fcd9d3ba1f26c603300 ASCII:E.....IBn..!.X....L..g.......M.x.{.........4`......H..\.j..@h...N.9s..iS..7o....f..9#....g...;..l`3. -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a ASCII:E..tF.@.@..o..dn..dd.......9........{.........G....d..------------------..Wellcome to pollux..------------------.... -uncompressed= 4510007446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a ASCII:E..tF.@.@..o..dn..dd.......9........{.........G....d..------------------..Wellcome to pollux..------------------.... -compressed= 451000017446e140004006a96fc0a8646ec0a864640017ad8b81980139f3ac98a5801800e37b9b00000101080a000647e206d1bf640d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a57656c6c636f6d6520746f20706f6c6c75780d0a2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d0d0a0d0a ASCII:E...tF.@.@..o..dn..dd.......9........{.........G....d..------------------..Wellcome to pollux..------------------.... -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 6 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 ASCII:E..BF.@.@.....dn..dd.......y..................G....opollux login: -uncompressed= 4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 ASCII:E..BF.@.@.....dn..dd.......y..................G....opollux login: -compressed= 451000014246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 ASCII:E...BF.@.@.....dn..dd.......y..................G....opollux login: -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 ASCII:E..BF.@.@.....dn..dd.......y..................G....opollux login: -uncompressed= 4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 ASCII:E..BF.@.@.....dn..dd.......y..................G....opollux login: -compressed= 45000013061449526ec8802109588d1ab6ea4c9c8767ce0cd000cb11a14d04f8d87bb509d5a00d03cc759b35600001020b1a0c48a0e45d026ac2e4cc91f3e60d9e3d23dec851c3264e8f110100 ASCII:E.....IRn..!.X....L..g.......M...{.......u.5`......H..].j........=#..Q.&N.... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 ASCII:E..BF.@.@.....dn..dd.......y..................G....opollux login: -uncompressed= 4510004246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 ASCII:E..BF.@.@.....dn..dd.......y..................G....opollux login: -compressed= 451000014246e240004006a9a0c0a8646ec0a864640017ad8b81980179f3ac98a5801800e3dab000000101080a000647ec06d1bf6f706f6c6c7578206c6f67696e3a20 ASCII:E...BF.@.@.....dn..dd.......y..................G....opollux login: -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 7 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 450001a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c2033302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E.....@.@.............@...`...@.P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Tue, 30 Aug 2016 09:43:07 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing for /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. -uncompressed= 450001a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c2033302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E.....@.@.............@...`...@.P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Tue, 30 Aug 2016 09:43:07 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing for /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. -compressed= 45000101a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c203301302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a206600356ad4c899f3078923528c5ce13205c908c58c9d6229f2848991112560c890a1050033432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e672066016f72202f3c2f7469746c990068bcff2823e70c9fff6b6a943f9f7e7dfbf7f1e7d7bf9f3fb1c2ef6beafcc7d3fd3b7ced6468a34f03a404fa3373a4c64113630efdec27534e7509538d7e32ff657044a8f1bb0c82067f72f71e00 ASCII:E......@.@.............@...`...@.P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Tue, 3.0 Aug 2016 09:43:07 GMT..Content-type: text/html; charset=UTF-8..Content-Length: f.5j......#R.\.2......b).....%`.....3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing f.or /</titl..h..(#....kj.?.~}.......?...k.....;|.dh.O....3s..A.c...'SNu.S.~2.epD.......r... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 450001a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c2033302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E.....@.@.............@...`...@.P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Tue, 30 Aug 2016 09:43:07 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing for /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. -uncompressed= 450001a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c2033302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E.....@.@.............@...`...@.P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Tue, 30 Aug 2016 09:43:07 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing for /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. -compressed= 45000003088cba4561c880210976ad6bc08080ab61ab061410316948016cbbc6e0ea556b48ac291c06c04b0462c0802557ae4c914123c68c113566c894e20442032b68eae4e1d96384153670e6bc41b3b2a58c1931728c98c2e7ce1a397164d488a18369ce2364eea0017a050f9a17236cc8248247cdcc19349acee0d1e3868d1e33748c5002e54a4e2353bbc6b903e30e9f395e4774dd7347c69a3b70def81861660d993a76d0dc0182e54a12183bf4f245e317c693cf6aa202ad51a346ce9c3f481c9162e40a972948462866ec144b91274c8c8c280143860c2d368c003f72e5c88895509e908d516344123671c8bc018e244a89203f6abf09d2e0c71d36778c0639c2a60e1a3377e4d4e133e20d1b3be1e3a44dc37e848c1f32c28f47e3fd47193967f8fc5f53a3fcf9f4ebdbbf8f3fbffefdfc89157e5f53e73f9eeedfe16b27431b7d1a2025d09f9923350e9a1873e8673f9972aa4b986af493f92f8323428ddf651034f893bbf700 ASCII:E......Ea..!.v.k....a....1iH.l....UkH.)...K.b..%W.L.A#...5f....B.+h....c..6p..A.....1r......9qd....i.#d...z....#l.$.G...4........3t.P..JN#S.......9^Gt.sG..;p...af..:v.....J..;..E.....j...Q.F..?H..b...)HF(f..K.'L..(.C..-6..?r....P...QcD.6q....$J. ?j......6w..9....3w...3...;...M.~...2..G..G.9g.._S........?......~_S.?....k'C.}. %...#5...s.g?.r.K.j.../.#B..e.4..... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 450001a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c2033302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E.....@.@.............@...`...@.P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Tue, 30 Aug 2016 09:43:07 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing for /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. -uncompressed= 450001a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c2033302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E.....@.@.............@...`...@.P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Tue, 30 Aug 2016 09:43:07 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing for /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. -compressed= 45000101a0b41140004006b8e80a0901abc0a800021f904002d5b860b5bab240ae501900ed861d0000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205475652c203301302041756720323031362030393a34333a303720474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e672066016f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E......@.@.............@...`...@.P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Tue, 3.0 Aug 2016 09:43:07 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing f.or /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 8 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 450000e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d34323736386138656338656330220d0a0d0a ASCII:E.....@.7..lU........P@G!.Y"..u....|O........S.9.,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a149-46e-42768a8ec8ec0".... -uncompressed= 450000e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d34323736386138656338656330220d0a0d0a ASCII:E.....@.7..lU........P@G!.Y"..u....|O........S.9.,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a149-46e-42768a8ec8ec0".... -compressed= 45000100e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e312033013034204e6f74204d6f646966016965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d3432373638613865633865990066669478fa3400 ASCII:E......@.7..lU........P@G!.Y"..u....|O........S.9.,..HTTP/1.1 3.04 Not Modif.ied..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a149-46e-42768a8ec8e..ff.x.4. -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 450000e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d34323736386138656338656330220d0a0d0a ASCII:E.....@.7..lU........P@G!.Y"..u....|O........S.9.,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a149-46e-42768a8ec8ec0".... -uncompressed= 450000e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d34323736386138656338656330220d0a0d0a ASCII:E.....@.7..lU........P@G!.Y"..u....|O........S.9.,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a149-46e-42768a8ec8ec0".... -compressed= 450000030694d3e461c8001d090abcc102c192b661ab061418306588121282b894606600cfa7411b06fc91728b2001020b1a50b0128dc78017f9d62db972658a0c1a31688cb031e3c6882872ee8c8022e70c9b346cd09c81d0e008993b687a8cb88207cd0b9f334610c1a366448d1934728c20dbc3468e1e37b82a8172e5a9153475f2ccad4a640e19336bd03c3522274e1c3466eeb0015cd5091a3473601079c3a6eed3c48b1b3fae5bb5301c3472f0dc0152432b1c327b80d0983163c6532457c8a8a95ae286991d6468dce001e3460e34b76be8c8217bc760e066669478fa3400 ASCII:E.......a...........a....0e......`f...A....r. ....P........-.re...1h..1...(r..."...4l.......;hz.......3F...fD..4r. ..F..7.*.r...4u...Jd..3k.<5"'N.4f...\...4s`.y.......?.[.0.4r...RC+.2{...1c.S$W...Z....dh....F.4.k..!{.`.ff.x.4. -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 450000e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d34323736386138656338656330220d0a0d0a ASCII:E.....@.7..lU........P@G!.Y"..u....|O........S.9.,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a149-46e-42768a8ec8ec0".... -uncompressed= 450000e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d34323736386138656338656330220d0a0d0a ASCII:E.....@.7..lU........P@G!.Y"..u....|O........S.9.,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a149-46e-42768a8ec8ec0".... -compressed= 45000100e2971b40003706026c550d93d7c0a8000200504047217f5922c903759c8018007c4fb400000101080a1153ce39002cf6e8485454502f312e312033013034204e6f74204d6f646966016965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613134392d3436652d34323736386138656338656330220d0a0d0a ASCII:E......@.7..lU........P@G!.Y"..u....|O........S.9.,..HTTP/1.1 3.04 Not Modif.ied..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a149-46e-42768a8ec8ec0".... -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 9 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 450000e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a ASCII:E...$.@.7.t.U........P@H......8....|.W.......S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a380-8a6-427687a226880".... -uncompressed= 450000e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a ASCII:E...$.@.7.t.U........P@H......8....|.W.......S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a380-8a6-427687a226880".... -compressed= 45000100e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e312033013034204e6f74204d6f646966016965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a ASCII:E....$.@.7.t.U........P@H......8....|.W.......S...,..HTTP/1.1 3.04 Not Modif.ied..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a380-8a6-427687a226880".... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 450000e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a ASCII:E...$.@.7.t.U........P@H......8....|.W.......S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a380-8a6-427687a226880".... -uncompressed= 450000e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a ASCII:E...$.@.7.t.U........P@H......8....|.W.......S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a380-8a6-427687a226880".... -compressed= 4500000306943b416fc8001d09ee64c202c192b661ab0614183065c8124b8adccd63766087a8411b06fc79a7852001020b1a50b0228dc08017fbfe2db972658a0c1a31688cb031e3c6882872ee8c8022e70c9b346cd09c81d0e008993b687a8cb88207cd0b9f334610c1a366448d1934728c20dbc3468e1e37b82a8172e5a9153475f2ccad4a640e19336bd03c3522274e1c3466eeb0015cd5091a3473601079c3a6eed3c48b1b3fae5bb5301c3472f0dc0152432b1c327b80d0983163c6532457c8a8a95ae286991d646cec980143760e18376ae8c8b14307991a357cd72ef1f46900 ASCII:E.....;Ao.....d.....a....0e..K...cv`..A...y.. ....P."......-.re...1h..1...(r..."...4l.......;hz.......3F...fD..4r. ..F..7.*.r...4u...Jd..3k.<5"'N.4f...\...4s`.y.......?.[.0.4r...RC+.2{...1c.S$W...Z....dl...Cv..7j...C...5|....i. -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 450000e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a ASCII:E...$.@.7.t.U........P@H......8....|.W.......S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a380-8a6-427687a226880".... -uncompressed= 450000e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a ASCII:E...$.@.7.t.U........P@H......8....|.W.......S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a380-8a6-427687a226880".... -compressed= 45000100e224f1400037067496550d93d7c0a80002005040489387ebf0c904389f8018007cec5700000101080a1153cf01002cf8fc485454502f312e312033013034204e6f74204d6f646966016965640d0a446174653a205475652c2033302041756720323031362031363a33363a343020474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338613338302d3861362d34323736383761323236383830220d0a0d0a ASCII:E....$.@.7.t.U........P@H......8....|.W.......S...,..HTTP/1.1 3.04 Not Modif.ied..Date: Tue, 30 Aug 2016 16:36:40 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8a380-8a6-427687a226880".... -memcmp() rc=0 - -Testing compression/decompression with realistic TCP/IP packets: -Packet No.: 10 -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 0 -uncompressed_original= 450000e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a ASCII:E....a@.7..%U........P@I..y........|.........S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:41 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8136d-18d-45820e0968040".... -uncompressed= 450000e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a ASCII:E....a@.7..%U........P@I..y........|.........S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:41 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8136d-18d-45820e0968040".... -compressed= 45000100e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e312033013034204e6f74204d6f646966016965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a ASCII:E.....a@.7..%U........P@I..y........|.........S...,..HTTP/1.1 3.04 Not Modif.ied..Date: Tue, 30 Aug 2016 16:36:41 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8136d-18d-45820e0968040".... -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 1 -uncompressed_original= 450000e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a ASCII:E....a@.7..%U........P@I..y........|.........S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:41 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8136d-18d-45820e0968040".... -uncompressed= 450000e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a ASCII:E....a@.7..%U........P@I..y........|.........S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:41 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8136d-18d-45820e0968040".... -compressed= 450000030694cb4566c8001d09cca1c002c192b661ab061418306508137fb9f8fc628620c4a9411b06fc71d78e2001020b1a50b022eddb8017006f2db972658a0c1a31688cb031e3c6882872ee8c8022e70c9b346cd09c81d0e008993b687a8cb88207cd0b9f334610c1a366448d1934728c20dbc3468e1e377a2a8172e5a9153475f2ccad4a640e19336bd03c3522274e1c3466eeb0015cd5091a3473601079c3a6eed3c48b1b3fae5bb5301c3472f0dc0152432b1c327b80d0983163c6532457c8a8a95ae286991d34d29e81416347ed1b387688453383478e1d40679478fa3400 ASCII:E......Ef...........a....0e......b. ..A...q.. ....P.".....o-.re...1h..1...(r..."...4l.......;hz.......3F...fD..4r. ..F..7z*.r...4u...Jd..3k.<5"'N.4f...\...4s`.y.......?.[.0.4r...RC+.2{...1c.S$W...Z....4...AcG..8v.E3.G..@g.x.4. -memcmp() rc=0 - -v42bis_compress() rc=0 -v42bis_compress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -Mode: 2 -uncompressed_original= 450000e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a ASCII:E....a@.7..%U........P@I..y........|.........S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:41 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8136d-18d-45820e0968040".... -uncompressed= 450000e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e3120333034204e6f74204d6f6469666965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a ASCII:E....a@.7..%U........P@I..y........|.........S...,..HTTP/1.1 304 Not Modified..Date: Tue, 30 Aug 2016 16:36:41 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8136d-18d-45820e0968040".... -compressed= 45000100e2b66140003706e325550d93d7c0a8000200504049fbb679bcc9051ea48018007cebea00000101080a1153cfdc002cfdb4485454502f312e312033013034204e6f74204d6f646966016965640d0a446174653a205475652c2033302041756720323031362031363a33363a343120474d540d0a5365727665723a204170616368650d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4b6565702d416c6976653a2074696d656f75743d322c206d61783d313030300d0a455461673a2022346338313336642d3138642d34353832306530393638303430220d0a0d0a ASCII:E.....a@.7..%U........P@I..y........|.........S...,..HTTP/1.1 3.04 Not Modif.ied..Date: Tue, 30 Aug 2016 16:36:41 GMT..Server: Apache..Connection: Keep-Alive..Keep-Alive: timeout=2, max=1000..ETag: "4c8136d-18d-45820e0968040".... -memcmp() rc=0 - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 0 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010268000700004006cefac0a80002550d93d740000050462c7ba7e4d1753a80184000aad500000101080a0001a670084dafb4474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005ab97a052b960d59b368d5b2ddb3e60e9c372ef610b6dbf56bd8b165030f2e7cf88dd63b68f64c3d9b76ed1cb58847b490d122e8d0a24761185913d50e1aa423f0dc49036387d6d7b169e4d0cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a68b5b2864d9a3b629a30b1a2b5081b35384613357a07c6133271d4e021a3064d52347182ee81b119c69c3a72d2b079b37e4409c177e6f4902163738cdd71f8a0a903d68ec21866e4c0918185087dfb329cec9831834d951a337c4a2e1174891c3badf5e8d113a38f1c336e24520c8a65751d1844d4c7696d852c1f240e992becf8918d0c9145465441939fcc6a1950a206b7e1fca38e1145eaebc129230aeb24f57bcab011c3c68829f5efe7bfcbe4c814e731668c3042f6fef93a62d9909561e4c91123c163d0085a3a4e1c3466c6c649ea048d519d5ff3a0f95ef4280c2471269e61633ee9193469de8845a3554d9fa74199c48622e7fa7dac30ac602f9af40a9ef0236a54268247cd7f923946d0a8d1c3c68d1e35788c5002e54ad0a00100 ASCII:E...h....@.......U...@..PF,{...u:..@............p.M..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed3.Z.z.+..Y.h.......7......k..e...|...;h.L=.v....G..."...Ga.Y.....#..I.c....i.......;p..A#...3r......;0jh...M.;b.0.....58F.5z...2q..!..MR4q.......:r..y.~D..w...!cs..q........f......}.2...1.M..3|J..t..;........3n$R..eu..D..im.,.$..+......EFTA...j.P........E...)#..$.{......).........1f.0B...:b...a...#.c..Z:N.4f..I...Q._...^.(.$q&.ac>..4i..E.UM..A..."..}.0.`/.....#jT&.G...9F.......5x.P..J.... -uncompressed= 45000268000700004006cefac0a80002550d93d740000050462c7ba7e4d1753a80184000aad500000101080a0001a670084dafb4474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a49662d4d6f6469666965642d53696e63653a205475652c2032332041756720323031362031323a33343a323920474d540d0a0d0a ASCII:E..h....@.......U...@..PF,{...u:..@............p.M..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..If-Modified-Since: Tue, 23 Aug 2016 12:34:29 GMT.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 1 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010268000900004006cef8c0a80002550d93d740000050462c7ba7e4d1753a801840007e7f00000101080a0001d1cc084db0ae474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005ab97a052b960d59b368d5b2ddb3e60e9c372ef610b6dbf56bd8b165030f2e7cf88dd63b68f64c3d9b76ed1cb58847b490d122e8d0a24761185913d50e1aa423f0dc49036387d6d7b169e4d0cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a68b5b2864d9a3b629a30b1a2b5081b35384613357a07c6133271d4e021a3064d52347182ee81b119c69c3a72d2b079b37e4409c177e6f4902163738cdd71f8a0a903d68ec21866e4c0918185087dfb329cec9831834d951a337c4a2e1174891c3badf5e8d113a38f1c336e24520c8a65751d1844d4c7696d852c1f240e992becf8918d0c9145465441939fcc6a1950a206b7e1fca38e1145eaebc129230aeb24f57bcab011c3c68829f5efe7bfcbe4c814e731668c3042f6fef93a62d9909561e4c91123c163d0085a3a4e1c3466c6c649ea048d519d5ff3a0f95ef4280c2471269e61633ee9193469de8845a3554d9fa74199c48622e7fa7dac30ac602f9af40a9ef0236a54268247cd7f923946d0a8d1c3c68d1e35788c5002e54ad0a00100 ASCII:E...h....@.......U...@..PF,{...u:..@.~............M..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed3.Z.z.+..Y.h.......7......k..e...|...;h.L=.v....G..."...Ga.Y.....#..I.c....i.......;p..A#...3r......;0jh...M.;b.0.....58F.5z...2q..!..MR4q.......:r..y.~D..w...!cs..q........f......}.2...1.M..3|J..t..;........3n$R..eu..D..im.,.$..+......EFTA...j.P........E...)#..$.{......).........1f.0B...:b...a...#.c..Z:N.4f..I...Q._...^.(.$q&.ac>..4i..E.UM..A..."..}.0.`/.....#jT&.G...9F.......5x.P..J.... -uncompressed= 45000268000900004006cef8c0a80002550d93d740000050462c7ba7e4d1753a801840007e7f00000101080a0001d1cc084db0ae474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a49662d4d6f6469666965642d53696e63653a205475652c2032332041756720323031362031323a33343a323920474d540d0a0d0a ASCII:E..h....@.......U...@..PF,{...u:..@.~............M..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..If-Modified-Since: Tue, 23 Aug 2016 12:34:29 GMT.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 2 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010268000b00004006cef6c0a80002550d93d740000050462c7ba7e4d1753b80193fff131c00000101080a00022884084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005ab97a052b960d59b368d5b2ddb3e60e9c372ef610b6dbf56bd8b165030f2e7cf88dd63b68f64c3d9b76ed1cb58847b490d122e8d0a24761185913d50e1aa423f0dc49036387d6d7b169e4d0cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a68b5b2864d9a3b629a30b1a2b5081b35384613357a07c6133271d4e021a3064d52347182ee81b119c69c3a72d2b079b37e4409c177e6f4902163738cdd71f8a0a903d68ec21866e4c0918185087dfb329cec9831834d951a337c4a2e1174891c3badf5e8d113a38f1c336e24520c8a65751d1844d4c7696d852c1f240e992be4e8918d8c9045465441939fcc6a1950a206b7e1dca38e1145eaebb929230aeb24f579cab011c3c68829f5efe7afcbe4c814e731668c3042f6fef93a62d9909561e4c91123c163d0084a3a4e1c3466c6c649ea048dd19c5ff3a0f95ef4280c2471269e61633ee9193469de8845a3554d9fa74199c48622c7fa7dac30ac5c2f9af40a1ef0236a502682478dff913946d0a8d1c3c68d1e35788c5002e54ad0a00100 ASCII:E...h....@.......U...@..PF,{...u;..?...........(..M.XGET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed3.Z.z.+..Y.h.......7......k..e...|...;h.L=.v....G..."...Ga.Y.....#..I.c....i.......;p..A#...3r......;0jh...M.;b.0.....58F.5z...2q..!..MR4q.......:r..y.~D..w...!cs..q........f......}.2...1.M..3|J..t..;........3n$R..eu..D..im.,.$..+......EFTA...j.P........E...)#..$.y......).........1f.0B...:b...a...#.c..J:N.4f..I....._...^.(.$q&.ac>..4i..E.UM..A..."..}.0.\/.....#jP&.G...9F.......5x.P..J.... -uncompressed= 45000268000b00004006cef6c0a80002550d93d740000050462c7ba7e4d1753b80193fff131c00000101080a00022884084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a49662d4d6f6469666965642d53696e63653a205475652c2032332041756720323031362031323a33343a323920474d540d0a0d0a ASCII:E..h....@.......U...@..PF,{...u;..?...........(..M.XGET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..If-Modified-Since: Tue, 23 Aug 2016 12:34:29 GMT.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 3 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010268000c00004006cef5c0a80002550d93d740000050462c7ba7e4d1753b80193fff65ab00000101080a0002d5f4084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005ab97a052b960d59b368d5b2ddb3e60e9c372ef610b6dbf56bd8b165030f2e7cf88dd63b68f64c3d9b76ed1cb58847b490d122e8d0a24761185913d50e1aa423f0dc49036387d6d7b169e4d0cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a68b5b2864d9a3b629a30b1a2b5081b35384613357a07c6133271d4e021a3064d52347182ee81b119c69c3a72d2b079b37e4409c177e6f4902163738cdd71f8a0a903d68ec21866e4c0918185087dfb329cec9831834d951a337c4a2e1174891c3badf5e8d113a38f1c336e24520c8a65751d1844d4c7696d852c1f240e992be4e8918d8c9045465441939fcc6a1950a206b7e1dca38e1145eaebb929230aeb24f579cab011c3c68829f5efe7afcbe4c814e731668c3042f6fef93a62d9909561e4c91123c163d0084a3a4e1c3466c6c649ea048dd19c5ff3a0f95ef4280c2471269e61633ee9193469de8845a3554d9fa74199c48622c7fa7dac30ac5c2f9af40a1ef0236a502682478dff913946d0a8d1c3c68d1e35788c5002e54ad0a00100 ASCII:E...h....@.......U...@..PF,{...u;..?.e............M.XGET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed3.Z.z.+..Y.h.......7......k..e...|...;h.L=.v....G..."...Ga.Y.....#..I.c....i.......;p..A#...3r......;0jh...M.;b.0.....58F.5z...2q..!..MR4q.......:r..y.~D..w...!cs..q........f......}.2...1.M..3|J..t..;........3n$R..eu..D..im.,.$..+......EFTA...j.P........E...)#..$.y......).........1f.0B...:b...a...#.c..J:N.4f..I....._...^.(.$q&.ac>..4i..E.UM..A..."..}.0.\/.....#jP&.G...9F.......5x.P..J.... -uncompressed= 45000268000c00004006cef5c0a80002550d93d740000050462c7ba7e4d1753b80193fff65ab00000101080a0002d5f4084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a49662d4d6f6469666965642d53696e63653a205475652c2032332041756720323031362031323a33343a323920474d540d0a0d0a ASCII:E..h....@.......U...@..PF,{...u;..?.e............M.XGET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..If-Modified-Since: Tue, 23 Aug 2016 12:34:29 GMT.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 4 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 450001022d000f00004006ac5ec0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00 ASCII:E...-....@..^........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application3.\....g..8o\...vj..Y........w..I..k.9`..h!....;{.0....4>G........O......9.w........g......3v`..je..4w.4ab.j.6jpd.....'d...CF...h....#2.9u..a.&...x...!CF.....AS....1...#.....e8.1c..*5f.D\...9vF....G..:h..H.&..u`...g...|...._"E62...Q..{2.e@9z..q.:F.Y....(....).F..#..o..-.#S...1......`e.U..'G...y.s.8h.d......1..AS}gO.H. <....3h.......>Eo... -uncompressed= 4500022d000f00004006ac5ec0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383030300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..-....@..^........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8000..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 5 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 450001022d001000004006ac5dc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00 ASCII:E...-....@..]........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application3.\....g..8o\...vj..Y........w..I..k.9`..h!....;{.0....4>G........O......9.w........g......3v`..je..4w.4ab.j.6jpd.....'d...CF...h....#2.9u..a.&...x...!CF.....AS....1...#.....e8.1c..*5f.D\...9vF....G..:h..H.&..u`...g...|...._"E62...Q..{2.e@9z..q.:F.Y....(....).F..#..o..-.#S...1......`e.U..'G...y.s.8h.d......1..AS}gO.H. <....3h.......>Eo... -uncompressed= 4500022d001000004006ac5dc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383030300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..-....@..]........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8000..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 6 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 450001022d001100004006ac5cc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00 ASCII:E...-....@..\........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application3.\....g..8o\...vj..Y........w..I..k.9`..h!....;{.0....4>G........O......9.w........g......3v`..je..4w.4ab.j.6jpd.....'d...CF...h....#2.9u..a.&...x...!CF.....AS....1...#.....e8.1c..*5f.D\...9vF....G..:h..H.&..u`...g...|...._"E62...Q..{2.e@9z..q.:F.Y....(....).F..#..o..-.#S...1......`e.U..'G...y.s.8h.d......1..AS}gO.H. <....3h.......>Eo... -uncompressed= 4500022d001100004006ac5cc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383030300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..-....@..\........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8000..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 7 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 450001022d001200004006ac5bc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00 ASCII:E...-....@..[........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application3.\....g..8o\...vj..Y........w..I..k.9`..h!....;{.0....4>G........O......9.w........g......3v`..je..4w.4ab.j.6jpd.....'d...CF...h....#2.9u..a.&...x...!CF.....AS....1...#.....e8.1c..*5f.D\...9vF....G..:h..H.&..u`...g...|...._"E62...Q..{2.e@9z..q.:F.Y....(....).F..#..o..-.#S...1......`e.U..'G...y.s.8h.d......1..AS}gO.H. <....3h.......>Eo... -uncompressed= 4500022d001200004006ac5bc0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383030300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..-....@..[........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8000..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 8 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010268001300004006ceeec0a80002550d93d740000050462c7ba7e4d1753b80193fff7b4a00000101080a0003c054084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005bbb7e0d3b964dd9b369d7b6ddb3e60e9c372ef614beeb15ac58b2660513368cf8cdd63b68f65045ab96ed9cb58947b490d1422851a34861185923d50e9aa423f0dc490363c756d8b269e4d8cac68e9cd93b70f0804143376fe13372dcc801038f193b306a6cb5b2864d9a3b629a30b1b2b5081b353848173d7a07c6133271d4e021a3068d52347184ee81c119c69c3a72d2b079c37e4489c177e6f4902183730cde71f8a0a913d6cec21866e4c091818548fdfb329cec9831834d951a337e4e2e2174891c3baef5e8d113a38f1c336e2656148a85751d1844d6c7716da52c1f240f9b2fecf8918d0c9145465441a39f0c6b1950a40ab7f1fca38e1145ecebc129234aeb24f67bcab011c3c68829f6f1ebb7cbe4c894e731668c3052163ffa3a63d9949561e4c91123c263d0105a3a4e1c3466c8c651ea04cd519d60f3a0016f14290c2471289e61735ee9193469de8c45b3554d1fa84299c88622e73afeac30ac6037aaf40a9ef0236a54268247cd7f923946d0a8d1c3c68d1e35788c5002e58a50a10100 ASCII:E...h....@.......U...@..PF,{...u;..?.{J.........T.M.XGET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed3.[.~.;.M..i.......7.......X.f..6....;h.PE......G...B(Q.Ha.Y#....#..I.c.V..i.......;p..AC7o.3r......;0jl...M.;b.0.....58H.=z...2q..!...R4q.......:r..y.~D..w...!.s..q........f.....H..2...1.M..3~N.!t..;........3n&V...u..D..qm.,.$../......EFTA...k.P........E...)#J.$.{......).........1f.0R.?.:c...a...#.c..Z:N.4f..Q...Q.`...o.).$q(.as^..4i..E.UM..B...".:..0.`7.....#jT&.G...9F.......5x.P...P... -uncompressed= 45000268001300004006ceeec0a80002550d93d740000050462c7ba7e4d1753b80193fff7b4a00000101080a0003c054084dc558474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a49662d4d6f6469666965642d53696e63653a205475652c2032332041756720323031362031323a33343a323920474d540d0a0d0a ASCII:E..h....@.......U...@..PF,{...u;..?.{J.........T.M.XGET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..If-Modified-Since: Tue, 23 Aug 2016 12:34:29 GMT.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 9 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 450001022d001400004006ac59c0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00 ASCII:E...-....@..Y........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application3.\....g..8o\...vj..Y........w..I..k.9`..h!....;{.0....4>G........O......9.w........g......3v`..je..4w.4ab.j.6jpd.....'d...CF...h....#2.9u..a.&...x...!CF.....AS....1...#.....e8.1c..*5f.D\...9vF....G..:h..H.&..u`...g...|...._"E62...Q..{2.e@9z..q.:F.Y....(....).F..#..o..-.#S...1......`e.U..'G...y.s.8h.d......1..AS}gO.H. <....3h.......>Eo... -uncompressed= 4500022d001400004006ac59c0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383030300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..-....@..Y........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8000..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 10 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 450001022d001500004006ac58c0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e33005cbd8215bb67cd1d386f5cecd1cb766ad5ab59b7decdbbb7ef1ba877d0ec49daf56bd83960fd8e6821a3c5cd9c3b7bc230b2e6a81d343e47e0b99306c60ea8a54fd3c801958d1d39a877e0e00183c6ebd8b767e4b89103061e337660d4806a650d9b3477c4346162056a11366a7064d6c9f30e8c2764e2a8c143460d9a9f68e2dcdc0323328c3975e4a461f326fc881278efcce9214346e418b1e3f04153c7aa9dfd31ccc88123030b11f5ec6538d93163069b2a3566d0445ce2e612397646d398118347cd9a3a68f49848f12696d0756010011f67b415ad7c90fc17be5f224536322e16195105cd7b32a16540397adb06718a3a461459afe7a58c28a293acb729c3460c1b23a6ac6ffffe2d93235388c79831c288d6f6ddeb6065a355869127478cdcae79b3739c3868cc648df3d3091a9e31abe641537d674f1848e2203cc386fbcf3368d2bcc18a06aa9a3e456fde0c00 ASCII:E...-....@..X........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application3.\....g..8o\...vj..Y........w..I..k.9`..h!....;{.0....4>G........O......9.w........g......3v`..je..4w.4ab.j.6jpd.....'d...CF...h....#2.9u..a.&...x...!CF.....AS....1...#.....e8.1c..*5f.D\...9vF....G..:h..H.&..u`...g...|...._"E62...Q..{2.e@9z..q.:F.Y....(....).F..#..o..-.#S...1......`e.U..'G...y.s.8h.d......1..AS}gO.H. <....3h.......>Eo... -uncompressed= 4500022d001500004006ac58c0a800020a0901ab40011f4046a2f5a8e0a618025018400093480000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383030300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..-....@..X........@..@F.......P.@..H..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8000..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 11 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010239000500004006ac5cc0a800020a0901ab40001f90c286afa741a348cb801840007fcb0000050a41a348dc41a34a440000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d69786564330057b36eedfa954dd8b165cfa6ddb3e60e9c372ef6049eab95ab57b062fd02164cf8cdd53b68f640256b16ed9cb38547b490d1e22791a043efc030b2c6a91d344547e0b99306c68eabad5fd3c871958d1d39b077e0e00183c6eddcbf67e4b89103061e337660d4b86a650d9b3477c4346162e56a11366a7080164d14c6133271d4e021a3068d5134717eee818119c69c3a72d2b079837e4489bf77e6f4902103738cdc71f8a0a9d3d58ec11866e4c091818548fcf9329cec9831834d951a33783e2ef173891c3bab69cc88c1a3674f1d347a6cdcf8134bea3a30889c8fb3da4a583e48162a37a891231b19208b8ca882c63e99d432a038fd6d8339471d238ac8d793534614d549e40b956123868d1153e4d3b77f97c99129cc63cc1861242c7df275beb2092bc3c89323467ef7fc693a4e1c3466c0c631ea04cdd09d5cf3a0e96e66e81d1848e2403cc366bcd13368d2bcf98ae6aa9a3e4c7ffe0c00 ASCII:E...9....@..\........@.......A.H...@.......A.H.A.JD..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed3.W.n...M..e.......7.......W.b...L...;h.@%k.....G....'..C..0....4EG........_..q...9.w........g......3v`..je..4w.4ab.j.6jp..M...2q..!...Q4q~......:r..y.~D..w...!.s..q........f.....H..2...1.M..3x>..s..;.i....gO.4zl...K.:0.....JX>H.*7..#.. .....>..2.8.m.9G.#....SF..I...a#...S.......).c..a$,}.u...+...#F~..i:N.4f..1.....\...nf...H.@<.f..3h.......>L.... -uncompressed= 45000239000500004006ac5cc0a800020a0901ab40001f90c286afa741a348cb801840007fcb0000050a41a348dc41a34a440000474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383038300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..9....@..\........@.......A.H...@.......A.H.A.JD..GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8080..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 12 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 450001025b000a00004006ac35c0a800020a0901ab40011f90c293b0a8af5e58be5018400072a60000474554202f72656470686f6e652e706e6720485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c33005cbd82154b368e59b46ad9ee597307ce1b177b066fedfa35ec583665010b266cf8cdd63b68f6543d9b76ed1cb58747b490d16268d1a34961185933d50e1aa523f0dc490363c7d6d7b169e4d8cac68e1cd93b70f0804123f7eee03372dcc801038f193b306a6cb5b2864d9a3b629a30b1b2b5081b3538461b457a07c6133238f190518366299a3843f7c0d80c634e1d3969d8bc513fa244e03b737ac890b139c6ee387cd0d4096b07610c3372e0c8c042647e7d194e76cc98c1a64a8d1940259718ba448e9dd63466c4e01134a80e1a3d38721c8a65751d1844d2c7696d65261f240d9923dcd8918d0c9045465441839fcc6a1950a606b7e1bca38e1145e8ebd929230aeb24f485cab011c3c68829f4ede3d7cbe4c814e731668c3032d3be1a3c75c6b2296be4c91123c1830e451d270e1a3364e32c758206694fb079d07c3f9a1406923812cfb0c1b9f40c9a346fc6a2d9aaa64fd4a175d33064b894bfff812b5bc2a421b3e60c8e32860e0d00 ASCII:E...[....@..5........@........^X.P.@.r...GET /redphone.png HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed,3.\...K6.Y.j..Ys....{.o..5.X6e..&l...;h.T=.v....G...bh..Ia.Y3....#..I.c....i.......;p..A#...3r......;0jl...M.;b.0.....58F.Ez...28..Q.f).8C....cN.9i..Q?.D.;sz...9..8|...k.a.3r...Bd~}.Nv....J..@%...D...4f...4...=8r..eu..D..ime&.$..#......EFTA...j.P........E...)#..$........).........1f.02...<u..)k...#...E.'..3d.,u..iO.y.|?....8........4o.....O..u.0d.....+[..!....2.... -uncompressed= 4500025b000a00004006ac35c0a800020a0901ab40011f90c293b0a8af5e58be5018400072a60000474554202f72656470686f6e652e706e6720485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383038300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f31302e392e312e3137313a383038302f0d0a0d0a ASCII:E..[....@..5........@........^X.P.@.r...GET /redphone.png HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8080..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://10.9.1.171:8080/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 13 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010267001200004006ac21c0a800020a0901ab40011f90c293b0a8af5e58be80184000ee770000050aaf5e6437af5e8c230000474554202f72656470686f6e652e706e6720485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d33006fc8de41b3c72b5cb974e7cc853ca2858c164c9d42950ac3c81aae76d04c1d81e74e1a183bc8e2d64d2307593676e4ecde8183070c1ac2892b9f91e3460e1878ccd8815183ac95356cd2dc11d3848915b245d8a8c1c1fa69d43b309e90098a878c1a3454d1c461ba0706691873eac849c3e6cdfc112514df99d343860cd23188c7e183a68e5a3b126398910347061622fcfdcb70b263c60c36556acc48bab904d32572ecd8a63123060fa54a75d0e861d224532cb4ebc020223f8e6d2b3cf920b1585d62c9936c64a82c32a20a9a826468cb80c255b98deb27758c28d25f4f5119516a27e9df54868d1836464ce9ffbf20612647a65c8f316384119effd5e0a9c3968d5b234f8e1851ae94a9ec3871d098691b87aa1334518fa6cd83063d54a93090c4d978864d50aa67d0a479c3160d59357db432fd9ba66245aa0a193aac7953278d9e3f679894c1946900 ASCII:E...g....@..!........@........^X...@..w.....^d7.^.#..GET /redphone.png HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xm3.o..A..+\.t...<....L.B......v.L...N..;...M#.Y6v..........+...F..x...Q...5l........E.....i.;0.......4T..a...i.s..I.....%....C...1......Z;.c...G.."...p.c..6Uj.H....%r...1#...Ju..a.$S,... "?.m+<. .X]b..ld.,2....dh...U...'u.(._OQ.Qj'..T...6FL... a&G.\.1c..........[#O..Q....8q..i....4Q.....=T.0...x.MP.g..y...Y5}.2...bE...:.yS'..?g....i. -uncompressed= 45000267001200004006ac21c0a800020a0901ab40011f90c293b0a8af5e58be80184000ee770000050aaf5e6437af5e8c230000474554202f72656470686f6e652e706e6720485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a2031302e392e312e3137313a383038300d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f31302e392e312e3137313a383038302f0d0a0d0a ASCII:E..g....@..!........@........^X...@..w.....^d7.^.#..GET /redphone.png HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: 10.9.1.171:8080..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://10.9.1.171:8080/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 14 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010236003000004006cf03c0a80002550d93d740020050c30e84a9441d06ac80184000c2f400000101080a00052df410fc31bd474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d6978656433005cbd82154b968d59b46ad9baddb3e60e9c372ef618c6fb35ecd8b26707173e9cf80dd73b68f6544dbbb6ed1cb68a47b490d16268d1a34961185933d50e1aa523f0dc49036307d7d8b369e4e0cac68e1cda3b70f080416377efe13372dcc801038f193b306a70b5b2864d9a3b629a30b1c2b5081b35384a1b457a07c6133271d4e021a306cd52347186ee81d119c69c3a72d2b079d37e4409c277e6f49021a3738cde71f8a0a923d60ec31866e4c0918185887dfc329cec9831834d951a3380522e3174891c3baff5e8d113a38f1c336e285a1c8aa5751d1844d8c7796dc52c1f24109d33f408928d8c9145465441b39f4c6b1950a60eb7011da48e1145eeebc929238aeb24f77dcab011c3c68829f7f3efbfcbe4c814e831668c3062367ffa3a64d9989561e4c91123c363d0186a3a4e1c3466cac659ea040dd29d61f3a0097f34290c24712a9e61837ee9193469de9045c3554d9fa843870600 ASCII:E...6.0..@.......U...@..P....D.....@...........-...1.GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed3.\...K..Y.j.......7.....5...g..>....;h.TM......G...bh..Ia.Y3....#..I.c....i.......;p..Acw..3r......;0jp...M.;b.0.....58J.Ez...2q..!...R4q.......:r..y.~D..w...!.s..q...#....f......}.2...1.M..3.R.1t..;........3n(Z...u..D..ym.,.$..3......EFTA..Lk.P........E...)#..$.}......).........1f.0b6..:d...a...#.c..j:N.4f..Y.....a....4).$q*.a.~..4i..E.UM..C... -uncompressed= 45000236003000004006cf03c0a80002550d93d740020050c30e84a9441d06ac80184000c2f400000101080a00052df410fc31bd474554202f20485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a0d0a ASCII:E..6.0..@.......U...@..P....D.....@...........-...1.GET / HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 15 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010260004500004006cec4c0a80002550d93d740030050c3134faac89c8b2980184000578d00000101080a000535c010fc34c8474554202f6e697276616e612e63737320485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d33006fcede41b3072c5dbb78e7dcad3ca2858c164ea14aa50ac3c81aaf76d0541d81e74e1a183bcef2f64d23c7593676e4fcde8183070c1ac6913b9f91e3460e187884c2a871d6ca1a3669ee8869c2c4cad9226cd4e0801d75ea1d184f7caac143460d1aab68e238dd0303358c3975e4a461f3c6fe88128fefcce9214306ea18c8e3f04153a7edd0b841e5c0918185c87f83329cec9831834d951a33967e2ee174891c3bbaf5e8d113a38f1c336e3ac2718a05771d1844eac7d16d252e1f241985563489928d8c954546544193900c6e1950bc3ab7a11da58e11450aea292a234aee240595cab011c3c68829050f2624cce4c814ed31668c3012f7a0fc3a6fd9c49561e4c91123ce63d0702a3b4e1c3466e0c6b1ea04cdd4a36cf3a0592f952a0c2471ccc839c3268e1aab67d0a479f316cd59357db83af59b062346ab0d1f46b47933e7ce9e329c3a0d00 ASCII:E...`.E..@.......U...@..P..O....)..@.W.........5...4.GET /nirvana.css HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xm3.o..A..,].x...<....N.J......v.T...N..;...M#.Y6v..........;...F..x...q...6i..i...."l....u...O|..CF...h.8...5.9u..a.........!C......AS....A........2...1.M..3.~..t..;........3n:.q..w..D...m%..$..V4.....EFTA...n.P.:......E..)*#J.$........)..&$.....1f.0....:o...a...#.c.p*;N.4f........l..Y/.*.$q..9.&...g..y...Y5}.:...#F...F.y3...2.:.. -uncompressed= 45000260004500004006cec4c0a80002550d93d740030050c3134faac89c8b2980184000578d00000101080a000535c010fc34c8474554202f6e697276616e612e63737320485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..`.E..@.......U...@..P..O....)..@.W.........5...4.GET /nirvana.css HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 16 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010264004600004006cebfc0a80002550d93d740040050c3135bab2189da61801840008f2d00000101080a000535c410fc34dc474554202f382d4269742f4c6162656c2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300952fbf517b07cd1e9f77f3ee9da317f38816325a48a56a152b0c236bc4da419375049e3b6960ec50fb3b388d1c6ad9d891237c070e1e3068245f1e7d468e1b3960e0316307460db556d6b04973474c132656d4f254836376d5ab7760008da3060f193568b4a28923750f8cd530e6d4919386cd9bfc234a48be33a7870c19ab632c8fc3074d1db87630c63023078e0c2c440c2294e164c78c196caad498f1547409a94be4d8e9ad478f9e187de498710352a4542cbbebc020823f4e6f2b74f920e1c81da34a966c64bc2c32a20a1a866476cb802236ba0def2c758c2872500f521951782739d854868d1836464c39a89061612647a6788f31638411ba0aebd791cb86ae0c234f8e18891e838654da71e2a03133378e562768ae2a7d9b078d7bab5861208913f20c1bfa5acfa049f3462e1ab56afa80950a38cdc68d5a214aa4a873e74fa144474a951a00 ASCII:E...d.F..@.......U...@..P..[.!..a..@..-........5...4.GET /8-Bit/Label.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3../.Q{....w........2ZH.j.+.#k..A.u..;i`.P.;8..j...#|...0h$_.}F..9`.1c.F..V..IsGL.&V..T.cv..w`......5h...#u...0........#JH.3.....c,...M..v0.0#...,D."..d...l....Tt..K....G...}..q.R.T,... .?No+t. ....J.ld.,2....dv.."6...,u.(rP.R.Qx'9.T...6FL9..aa&G.x.1c...........#O......T.q..137.V'h.*}...{.Xa ......Z..I.F...j....8...Z!J..s.O.DGJ... -uncompressed= 45000264004600004006cebfc0a80002550d93d740040050c3135bab2189da61801840008f2d00000101080a000535c410fc34dc474554202f382d4269742f4c6162656c2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..d.F..@.......U...@..P..[.!..a..@..-........5...4.GET /8-Bit/Label.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 17 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010264005800004006ceadc0a80002550d93d740050050c31389acaf7b26538018400075c900000101080a000537d010fc354a474554202f382d4269742f41636f726e2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300942dbf497b07cd1e9f76f1ea9d93f7f28816325a48a56af50e0c236bc2da418375049e3b6960ec48eb1b388d1c69d9d891137c070e1e306820570e7d468e1b3960e0316307468db456d6b04973474c132656d2f2548343b699aa57613c2113470d1e326ad064451347ea1e18aa61cca923270d9b37f94794887c674e0f193254c7501e870f9a3a6fed608c11148e0c2c440c2294e164c78c196caad498f1347409a94be4d8e1ad478f9e187de4987103520e1ca95874d78141047f1cde56e6f241c2713bc6942bd9c87059644415340cc9e89601252c741bdd57ea1851e4a09ea432a2ec4e72d0a90c1b316c8c9872502143c34c8e4ce91e63c608237315d6af1397cd5c19469e1c31023d060da9b4e3c44163466e9cac4ed0585dea360f9af6efefc0401227e81936f4b39e4193e64d5c3469d5f4f92a15709a8d1bb342944831a7ce9e42898a942a3500 ASCII:E...d.X..@.......U...@..P.....{&S..@.u.........7...5JGET /8-Bit/Acorn.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3..-.I{....v........2ZH.j...#k..A.u..;i`.H..8..i....|...0h W.}F..9`.1c.F..V..IsGL.&V..T.C...Wa<!.G..2j.dE.G....a..#'..7.G..|gN..2T.P....:o.`.....,D."..d...l....4t..K....G...}..q.R...Xt..A....V..A.q;..+..pYdD.4.....%,t..W..Q....2..Nr....1l..rP!C.L.L..c..#s......\.F..1.=......AcFn..N.X].6......@.'..6...A..M\4i...*.p....B.H1...B...*5. -uncompressed= 45000264005800004006ceadc0a80002550d93d740050050c31389acaf7b26538018400075c900000101080a000537d010fc354a474554202f382d4269742f41636f726e2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..d.X..@.......U...@..P.....{&S..@.u.........7...5JGET /8-Bit/Acorn.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 18 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010266007600004006ce8dc0a80002550d93d740060050c31431ada11fa06780184000f08e00000101080a00053b3c10fc35ef474554202f382d4269742f416d73747261642e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d33009733bf597b07cd9e9e78f5f2d5a379440b192da656bd9a1586913563eda0d13a02cf9d343076ac052e9c468eb56cecc819be03070f18349433973e23c78d1c30f098b103a3c65a2b6bd8a4b923a609132b6b77aac141db2ad63b309e9089a3060f193568b6a28933750f0cc830e6d4919386cd9bfd234a50be33a7870c199063308fc3074d9db87636c63023078e0c2c44103294e164c78c196caad49801957489a94be404ddaa478f9e187de4987133b2e4542cbcebc020a23f8e6f2b75f920f9d87d63cb976c64c82c32a20a9a876478cb803256ba8def2f758c28a2500f5319517a27512855868d1836464c51d8f061622647a67c8f31638491ba0defd799cba6ae0c234f8e18911e83c6d4db71e2a0314337ce562768b03a859b07cdfbab5961208943f20c1bfb5bcfa049f3662e9ab56afa849d3a388d478f5b2756bcf813e850a3484d4e9d1a00 ASCII:E...f.v..@.......U...@..P..1....g..@...........;<..5.GET /8-Bit/Amstrad.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3..3.Y{....x....yD..-.V.....5c...:...40v....F..l........4.3.>#...0......Z+k...#...+kw..A.*.;0.......5h...3u...0........#JP.3.....c0...M..v6.0#...,D.2..d...l.....t..K....G...}..q3..T,... .?.o+u. ..}c..ld.,2....dx..2V.../u.(.P.S.Qz'Q(U...6FLQ..ab&G.|.1c...........#O........q..1C7.V'h.:......Ya .C....[..I.f...j...:8.G.['V....P.HMN... -uncompressed= 45000266007600004006ce8dc0a80002550d93d740060050c31431ada11fa06780184000f08e00000101080a00053b3c10fc35ef474554202f382d4269742f416d73747261642e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..f.v..@.......U...@..P..1....g..@...........;<..5.GET /8-Bit/Amstrad.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 19 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010264007700004006ce8ec0a80002550d93d740040050c3135ddb2189e0108018400060d600000101080a00053b4010fc35e7474554202f382d4269742f41746172692e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300932bbf497b07cd1e9f76f1ea9d93d7f28816325a48a56a152b0c236b84da419375049e3b6960ec48dbfb378d1c69d9d891037c070e1e30681c4ffe7c468e1b3960e0316307468db456d6b04973474c132656d2f254832376d5ab77603c2113470d1e326ad068451347ea1e18a961cca923270d9b37f84794807c674e0f193252c7481e870f9aa1da2fc63023078e0c2c440a1e94e164c78c196caad498f1147409a94be4d8d9ad478f9e187de49871e311a4542cb9ebc020723fce6e2b73f920d968e7224a956c64b42c32a20a9a856472cb8022f4b90dee2a758c286250cf511951742731c854868d1836464c31887061612647a6708f31638491b908e9d789cb66ae0c234f8e18791e8386d4d971e2a03123378e562768ae26759b070d7bab58612089f3f10c9bf95acfa049f3262e9ab46afa8095fa378d468d5a1f469c8833e7ce9f41434a951a00 ASCII:E...d.w..@.......U...@..P..].!.....@.`.........;@..5.GET /8-Bit/Atari.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3..+.I{....v........2ZH.j.+.#k..A.u..;i`.H..7..i....|...0h.O.|F..9`.1c.F..V..IsGL.&V..T.#v..w`<!.G..2j.hE.G....a..#'..7.G..|gN..2R.H....../.0#...,D....d...l.....t..K....G...}..q...T,... r?.n+s. .h."J.ld.,2....dr.."....*u.(bP.Q.Qt'1.T...6FL1.paa&G.p.1c........f..#O..y.....q..1#7.V'h.&u...{.Xa ......Z..I.&...j....7.F.Z.F..3...ACJ... -uncompressed= 45000264007700004006ce8ec0a80002550d93d740040050c3135ddb2189e0108018400060d600000101080a00053b4010fc35e7474554202f382d4269742f41746172692e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..d.w..@.......U...@..P..].!.....@.`.........;@..5.GET /8-Bit/Atari.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 20 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010264007c00004006ce89c0a80002550d93d740070050c314f3aefa37ceb18018400009f900000101080a00053e3410fc369e474554202f382d4269742f4170706c652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300942dbf517b07cd1e9f76f1ea9d93f7f28816325a48a56a152b0c236bc4da419375049e3b6960ec50dbfb378d1c6ad9d891037c070e1e30681c4ffe7c468e1b3960e0316307460db556d6b04973474c132656d4f254832376d5ab77603c2113470d1e326ad068451347ea1e18a961cca923270d9ba15a4b44be33a7870c19a963248fc3074d9db7762cc63023078e0c2c400da691e164c78c196caad498f1147409a94be4d8d9ad478f9e187de49871e311a4542cb9ebc020723fce6e2b73f920d1a8dd224a956c64b42c32a20a9aa16472cb8022f6b90dee2a758c2862504f521951742731e854868d1836464c29a910cd602647a6708f31638491b908e9d789cb66ae0c234f8e18791e8386d4d971e2a03123378e562768ae2e7dc3260f1af656b1c24012e7e31936f3b59e4193e64d5c346ad5f4012bd56f9a8c19b53a84281167ce9d3f8b86942a3500 ASCII:E...d.|..@.......U...@..P.....7....@...........>4..6.GET /8-Bit/Apple.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3..-.Q{....v........2ZH.j.+.#k..A.u..;i`.P..7..j....|...0h.O.|F..9`.1c.F..V..IsGL.&V..T.#v..w`<!.G..2j.hE.G....a..#'...ZKD.3.....c$...M..v,.0#...,@....d...l.....t..K....G...}..q...T,... r?.n+s. ..."J.ld.,2....dr.."....*u.(bPOR.Qt'1.T...6FL)...`&G.p.1c........f..#O..y.....q..1#7.V'h..}.&...V..@....6...A..M\4j...+.o....:.(.g..?...*5. -uncompressed= 45000264007c00004006ce89c0a80002550d93d740070050c314f3aefa37ceb18018400009f900000101080a00053e3410fc369e474554202f382d4269742f4170706c652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..d.|..@.......U...@..P.....7....@...........>4..6.GET /8-Bit/Apple.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 21 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010265007d00004006ce87c0a80002550d93d740050050c3138bdcaf7b296780183cec0de600000101080a00053e3410fc368e474554202f382d4269742f447261676f6e2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d33009631bf597b07cd1e9f8df5f2d59379440b192da656bd9a1586913563eda0d13a02cf9d343076ac052e9c468eb56cecc819be03070f18349433973e23c78d1c30f098b103a3c65a2b6bd8a4b923a609132b6b79aac141db2ad63b309e9089a3068f50345bd1c499ba07c6631873eac849c3e68dfe112526df99d343868cc73198c7e183a64e5c3b1963989103470616220715ca70b263c60c36556acc804abac4d42572ecf8d6a3474f8c3e72ccb80939722a16de75601051c3dfb715a27c9074ec9e71654b363260161951054d4332bc6540192bddc6f7963a461441a847a98c28bd93208ce3d3460c1b23a6205cd89030932353bec79831c208d185f7ebcc6553d7c8932346a4c7a03175769c3868ccd08db3d5091aac4ce1e641f3fe6a561848e2883cc3c6fed63368d2bc998b66ad9a3e61a7fe4dc391e3d688132beeec0974a8519253a70600 ASCII:E...e.}..@.......U...@..P.....{)g..<...........>4..6.GET /8-Bit/Dragon.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3..1.Y{.........yD..-.V.....5c...:...40v....F..l........4.3.>#...0......Z+k...#...+ky..A.*.;0......P4[......c.s..I.....%&...C...1.....N\;.c...G.."...p.c..6Uj..J...%r....GO.>r...9r*..u`.Q.....|.t..qeK62`..Q.MC2.e@.+....:F.A.G..(.. ...F..#. \..0.#S...1.......eS...#F...1uv.8h........L..A..jV.H..<....3h....f..>a..M......+...t.Q.S... -uncompressed= 45000265007d00004006ce87c0a80002550d93d740050050c3138bdcaf7b296780183cec0de600000101080a00053e3410fc368e474554202f382d4269742f447261676f6e2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..e.}..@.......U...@..P.....{)g..<...........>4..6.GET /8-Bit/Dragon.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 22 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010269008000004006ce80c0a80002550d93d740060050c3143301dfa11fa3de80183c892b5d00000101080a0005412c10fc3761474554202f382d4269742f456e74657270726973652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f6600952f67defcc66dd03d3df7f6fd3bc72fe7112d64b4b08a552b571846d6983dda75049e3b6960ec701b7c388d1c6e8dca21be03070f183496db694e63468e1b3960e0316307460db756d6b04973474c132656dcee5483c376d6ad77603c2113470d1e326ad0784513c7ea1e18ae6110959386cd1bfe234a58be33a7870c19ae63548fc347285d3b1b63989103470616220ad3c870b263c60c36556acc986aba84d52572ecfcd6a3474f8c3e72ccb81149d22a96a3756010d91fe7b715bc7c90d4f9b891a54b36326216195105cd4332476540312bdd0678973a4614a923478f531951d0dc49d299aa0c1b316c8c98d2b9e143c64c8e4c011f63c60823781be2af63970d5e19469e1c31223d060dabbce3c44163e66e1caf4ed06c853a370f1af85ab9c2401267e41936f7bd9e4193e68d5d346ed5f4216bd5701aa142bd4eac78d1e7cfa1489596b46a3500 ASCII:E...i....@.......U...@..P..3........<.+]........A,..7aGET /8-Bit/Enterprise.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/f../g...m.==...;./..-d...U+W.F..=.u..;i`.p.|8..n..!.....4..iNcF..9`.1c.F..V..IsGL.&V..T..v..w`<!.G..2j.xE......a.......#JX.3.....cT..G(];.c...G.."...p.c..6Uj..j...%r....GO.>r...I.*..u`.......|......K62b..Q..C2Ge@1+..x.:F..#G.S.Q..I.....1l.....C.L.L..c..#x...c..^.F..1"=......Ac.n..N.l.:7...Z..@.g..6...A...]4n..!k.p..B.N.x....H...j5. -uncompressed= 45000269008000004006ce80c0a80002550d93d740060050c31433dfa11fa3de80183c892b5d00000101080a0005412c10fc3761474554202f382d4269742f456e74657270726973652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..i....@.......U...@..P..3.......<.+]........A,..7aGET /8-Bit/Enterprise.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 23 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010268008100004006ce80c0a80002550d93d740040050c313600b2189e30280183d0e896b00000101080a000541d810fc379d474554202f382d4269742f436f6d6d6f646f72652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f3300952f67defcc6ed1d347b7ceeedfb778e5fce235ac8686115ab56ae308cac316b074dd71178eea481b1c3edf0e23472b86563478ef11d3878c0a0d1fc79f519396ee48081c78c1d1835dc5a59c326cd1d314d985871cb530d8edb59b7de81f1844c1c3578c8a841e3154d1cab7b60bc8631a78e9c346cdef81f51c2f29d393d64c8781de3791c3e68ead0b5d3318699a032b01061e85086931d3366b0a95263c654d325ac2e916327b81e3d7a62f49163c64dc9a056b1fcae038348ff38c1ade0e5832424f88e2e61b29131b3c8882a682292f92d038ad9ea36c4c3d431a248433d4c6544019ea46154193662d81831a5e1c38889991c99223ec68c1146f03ed45fc72e1bbc328c3c3962a47a0c1a5671c78983c6ccdd385e9da0d9ea746e1e34f2b5728581248ec9336cf27b3d8326cd1bbb68dcaae943d62ae13420417aad78312350a1448d228523c3aad500 ASCII:E...h....@.......U...@..P..`.!.....=..k........A...7.GET /8-Bit/Commodore.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/3../g.....4{|...w._.#Z.ha..V.0..1k.M..x........4r.ecG...8x....y..9n.......5.ZY.&..1M.Xq.S...Y.....L.5x..A..M..{`..1...4l...Q...9=d.x..y.>h....1...2..a.P...3f..Rc.T.%...c'..=zb..c.M..V.....H.8.....$$...a..1...*h"..-....6...1.HC=LeD...aT.6b..1........">...F.>._....2.<9b.z..Vq......8^....tn.4..r..$..3l.{=.&...h...C.*.4 Az.x1#P.D.".#.... -uncompressed= 45000268008100004006ce80c0a80002550d93d740040050c313600b2189e30280183d0e896b00000101080a000541d810fc379d474554202f382d4269742f436f6d6d6f646f72652e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..h....@.......U...@..P..`.!.....=..k........A...7.GET /8-Bit/Commodore.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 24 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010263008200004006ce84c0a80002550d93d740050050c3138e0daf7b2cf180183962cb2f00000101080a000542b410fc3822474554202f382d4269742f454143412e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b330096dfa4bd83668f4fbb78f5cec97b79440b192da24ead7a1586913561eda0c13a02cf9d343076a4f50d9c468eb46cecc809be03070f1834902b873e23c78d1c30f098b103a3465a2b6bd8a4b923a609132b6979aac1219baad53b309e9089a3060f193568b2a28913750f0cd530e6d4919386cd9bfc234a44be33a7870c19aa63288fc3074d9db77630c63023078e0c2c440c2294e164c78c196caad498e1347489a84be4d8e1ad478f9e187de49871035264542cbaebc020823f0e6f2b73f920e1b81da34a966c64bc2c32a20a1a866474cb801216ba8dee2c758c287250cf511951762739c854868d1836464c39a89021612647a6748f31638491b90aebd789cb66ae0c234f8e18811e8346d4d971e2a03123374e562768ac26759b074dfbaa5761208913f20c1bfa59cfa049f3262e9ab46afa7c8dfa37cdc68d59214aa4a873e7cfa04347468d1a00 ASCII:E...c....@.......U...@..P.....{,...9b./........B...8"GET /8-Bit/EACA.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+3......f.O.x...{yD..-.N.z...5a...:...40v....F..l........4.+.>#...0.....FZ+k...#...+iy..!...;0.......5h....u...0........#JD.3.....c(...M..v0.0#...,D."..d...l....4t..K....G...}..q.RdT,... .?.o+s. ....J.ld.,2....dt.......,u.(rP.Q.Qv'9.T...6FL9..!a&G.t.1c........f..#O.....F..q..1#7NV'h.&u..M..Wa ......Y..I.&...j.|..7...Y!J..s...CGF... -uncompressed= 45000263008200004006ce84c0a80002550d93d740050050c3138e0daf7b2cf180183962cb2f00000101080a000542b410fc3822474554202f382d4269742f454143412e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..c....@.......U...@..P.....{,...9b./........B...8"GET /8-Bit/EACA.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 25 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010262008500004006ce82c0a80002550d93d740070050c314f5defa37d29b80183c168b6100000101080a000542c810fc37e5474554202f382d4269742f4d53582e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b330095dfa0bd83668fcfba77f3cec16b79440b192da04aa56a1586913560eda0b93a02cf9d343076a0edfd9b460eb46cecc801be03070f18348e277f3e23c78d1c30f098b103a3065a2b6bd8a4b923a609132b6879aac1117b6ad53b309e9089a3060f193568b0a28903750f8cd430e6d4919386cd1bfc234a40be33a7870c19a963248fc3074d1db7762ec63023078e0c2c440a1e94e164c78c196caad498d1147409a84be4d8d9ad478f9e187de49871f33124542cb9ebc020723fce6e2b72f920d9a8fd62ca956c64b82c32a20a9a856472cb8002f6b90dee2b758c2862508f511951742731b854868d1836464c318870e1602647a6708f31638411b908e9d781cb46ae0c234f8e18791e830654d971e2a03113370e562768aa226d9b070d7baa5661208903f20c9bf958cfa049f3062e1ab46afa7885ea378d468d581f469c9853674fa0424542851a00 ASCII:E...b....@.......U...@..P.....7....<..a........B...7.GET /8-Bit/MSX.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+3......f...w...kyD..-.J.j...5`...:...40v....F..l........4.'.>#...0......Z+k...#...+hy...{j.;0.......5h....u...0........#J@.3.....c$...M..v..0#...,D....d...l.....t..K....G...}..q.1$T,... r?.n+r. ...b..ld.,2....dr.......+u.(bP.Q.Qt'1.T...6FL1.p.`&G.p.1c........F..#O..y...T.q..1.7.V'h."m...{.Va ......X..I.....j.x..7.F.X.F..SgO.BEB... -uncompressed= 45000262008500004006ce82c0a80002550d93d740070050c314f5defa37d29b80183c168b6100000101080a000542c810fc37e5474554202f382d4269742f4d53582e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..b....@.......U...@..P.....7....<..a........B...7.GET /8-Bit/MSX.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 26 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010265009400004006ce70c0a80002550d93d740060050c3143614a11fa986801836e1f43c00000101080a000545b010fc38b7474554202f382d4269742f4d617474656c2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300942dbf512b744fcfbb79f7ced17b79440b192da452b58a1586913562eda0c93a02cf9d343076a8edfd9b460eb56cecc801be03070f18348e277f3e23c78d1c30f098b103a3865a2b6bd8a4b923a609132b6a77aac111bbead53b309e9089a3060f193568b4a28923750f8cd430e6d4919386cd1bfc234a44be33a7870c19a963248fc3074d1db87630c63023078e0c2c440a1e94e164c78c196caad498f1347409a94be4d8d9ad478f9e187de498710352a4542cb9ebc020723fce6e2b74f920e1a81da34a966c64bc2c32a20a1a866472cb8022f6b90dee2c758c2862504f521951742731e854868d1836464c31889021612647a6708f31638411ba08e9d791bbd8c89323469ec7a02195769c3868cc7ca5abd5099aab4bdfe641c3de2a561848e2843cc366bed63368d2bc018a46ad9a3e60a5fe4db371a356881229eae4f97368d19152a50600 ASCII:E...e....@..p....U...@..P..6.......6..<........E...8.GET /8-Bit/Mattel.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3..-.Q+tO..y...{yD..-.R.....5b...:...40v....F..l........4.'.>#...0......Z+k...#...+jw......;0.......5h...#u...0........#JD.3.....c$...M..v0.0#...,D....d...l....4t..K....G...}..q.R.T,... r?.n+t. ....J.ld.,2....dr.."....,u.(bPOR.Qt'1.T...6FL1..!a&G.p.1c...........#F...!.v.8h.|......K..A..*V.H..<.f..3h....F..>`..M.q.V..)...sh..R... -uncompressed= 45000265009400004006ce70c0a80002550d93d740060050c3143614a11fa986801836e1f43c00000101080a000545b010fc38b7474554202f382d4269742f4d617474656c2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..e....@..p....U...@..P..6.......6..<........E...8.GET /8-Bit/Mattel.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 27 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010263009900004006ce6dc0a80002550d93d740040050c313623f2189e66b801839a5739a00000101080a0005464c10fc38f3474554202f382d4269742f4f7269632e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b330095dfa4bd83668f4fc578f5eab13ca2858c1651a756bd0ac3c89ab076d0601d81e74e1a183bd2fa064e23475a3676e404df8183070c1ac895439f91e3460e1878ccd8815123ad95356cd2dc11d3848995b43cd5e0904dd5ea1d184fc8c45183878c1a3459d1c489ba0706631873eac849c3e64dfe112520df99d343860cc63194c7e18326e8768c31ccc88123030b1183086538d93163069b2a356638155d22ea12397678ebd1a327461f3966dc7c0c19158bee3a3088e08fc3db8a5c3e4838dac19872251b192e8b8ca882862119dd32a084856ea3fb4a1d238a1cd483544694dd490e36956123868d11530e2a642898c99129dd63cc186144aec2fa75e0b2912bc3c8932346a0c7a01135769c3868ccc48d93d5091aab4adde641d3beea551848e2803cc3867ed63368d2bc818b26ad9a3e5fa3f64db3716356881229e6d4d91328519151a30600 ASCII:E...c....@..m....U...@..P..b?!..k..9.s.........FL..8.GET /8-Bit/Oric.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+3......f.O.x...<....Q.V......v.`...N..;...N#GZ6v..........C...F..x...Q#..5l........<...M....O..Q....4Y......c.s..I..M..% ...C...1....&.v.1...#.....e8.1c..*5f8.]"..9vx...'F.9f.|.....:0......\>H8...r%........!..2...n..J.#....TF..I.6.a#...S.*d(...).c..aD...u...+...#F....5v.8h........J..A...U.H..<..~.3h....&..>_..M.qcV..)....(Q.Q... -uncompressed= 45000263009900004006ce6dc0a80002550d93d740040050c313623f2189e66b801839a5739a00000101080a0005464c10fc38f3474554202f382d4269742f4f7269632e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..c....@..m....U...@..P..b?!..k..9.s.........FL..8.GET /8-Bit/Oric.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 28 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010269009e00004006ce62c0a80002550d93d740060050c3143845a11fab60801840003c1c00000101080a000547d810fc38b7474554202f382d4269742f526164696f536861636b2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f330096316be6fcc6ed1d347b7a46f60b584fe7112d64b4b08a552b5718468ad6b183a6eb083c77d2c0d8e17678711a39dcb2b123c7f80e1c3c60d068febcfa8c1c3772c0c063c60e8c1a6e89b24973474c132656dcee5483e376d6ad77603c2113470d1e326ad0784513c7ea1e189361cca923270d9b37fd4794b87c674e0f193226c7781e870f9a3a74ed748c61460e1c195888307428c3c98e1933d854a93163eae9125697c8b1135c8f1e3d31fac831e3a6e449ab587ed78141847f9ce056f0f24112127cc79731d9c8a0596444153411c9fc9601c56c751be263ea1851a4a19ea732a2004fd2b0aa0c1b316c8c98d2f061c4c54c8e4c111f63c60823781fe6af6357685e234f8e18a91e838655dd71e2a03173378e572768b6469d9b074d7cad5c61208963f20c1bfc5ecfa049f3c62e1ab76afa90b55a380d48905e2b5ecc1874e8d1a44b515ab51a00 ASCII:E...i....@..b....U...@..P..8E...`..@.<.........G...8.GET /8-Bit/RadioShack.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/3..1k.....4{zF..XO..-d...U+W.F.......<w....vxq.9...#....<`.h.....7r..c....n..IsGL.&V..T..v..w`<!.G..2j.xE......a..#'..7.G..|gN..2&.x....:t.t.aF...X.0t(....3.T.1c...V....\..=1..1...I.X~..A....V..A..|..1...YdD.4......lu..c..Q....2..O.....1l....a..L.L..c..#x...cWh^#O......U.q..1s7.W'h.F...M|.\a .c....^..I.....j...Z8.H.^+^..t...KQZ... -uncompressed= 45000269009e00004006ce62c0a80002550d93d740060050c3143845a11fab60801840003c1c00000101080a000547d810fc38b7474554202f382d4269742f526164696f536861636b2e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..i....@..b....U...@..P..8E...`..@.<.........G...8.GET /8-Bit/RadioShack.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 29 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 4500010266009f00004006ce64c0a80002550d93d740050050c313903caf7b2f9580183d5ce4ef00000101080a0005481810fc3934474554202f382d4269742f5068696c6970732e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d3300952fbf597b07cd1e9f8cf5f2d58379440b192da85ac5aa1586913563eda0d93a02cf9d343076acfd1d9c468eb56cecc811be03070f1834922f8f3e23c78d1c30f098b103a3c65a2b41d3dc11d3848995b53cd5e0987d35eb1d184fc8c45183878c1a345cd1c4a1ba0786631873eac8492334ff881292efcce9214386e318cbe3f0415307b19d8b31ccc88123030b1183086538d93163069b2a3566441d5d82ea1239767aebd1a327461f3966dc7c0c4915cbee3a3088e08fd3db0a5d3e483672bf9872251b192e8b8ca882e60d1a32bb6540191bdd86f7953a461439a847a98c28bc931c7c2ac3460c1b23a61c5428f830932353bcc79831c2085d85f5ebc8654357869127478c448f4183eaed3871d098991b87ab133459990ecd83a63d56ad3090c40179860d7dae67d0a4792317cd5a357d8852059c46a346ae0f234ecca9b32750a322a9520d00 ASCII:E...f....@..d....U...@..P...<.{/...=\..........H...94GET /8-Bit/Philips.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3../.Y{.........yD..-.Z.....5c...:...40v....F..l........4./.>#...0......Z+A........<...}5...O..Q....4\......c.s..I#4.......!C......AS....1...#.....e8.1c..*5fD.]...9vz...'F.9f.|.I...:0......]>H6r..r%..........2.e@......:F.9.G..(...|*.F..#..T(.0.#S...1..]....eCW..'G.D.A...8q.......4Y.....=V.0...y..}.g..y#..Z5}.R..F.F..#N...'P.".R.. -uncompressed= 45000266009f00004006ce64c0a80002550d93d740050050c313903caf7b2f9580183d5ce4ef00000101080a0005481810fc3934474554202f382d4269742f5068696c6970732e47494620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E..f....@..d....U...@..P...<.{/...=\..........H...94GET /8-Bit/Philips.GIF HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 30 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 450001049b00ae00004006cc20c0a80002550d93d740050050c31396ceaf7b396e801840009ad400000101080a0005611010fc3d6b474554202f382d4269742f6d72776f6e672e67696620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d33009733bf617b07cd9e9f8ef7f6d5a379440b192da85ac5aa1586913564eda0d93a02cf9d343076b00d3e9c460eb66cecc821be03070f183496379f3e23c78d1c30f098b103a3065b2b6b92de11d3848915b63dd5e0a87d35eb1d184fc814c543460d1aae68e250dd0303328c3975e4a461f346ff881294efcce9214306e418cde3f0415347ae1d8c31ccc88123030b1183086538d93163069b2a3566442d5d82ea1239767eebd1a327461f3966dc801449154bef3a3088e48ff3db0a513e48387ac7a892251b192f8b8ca882862199de32a0909d6e033c4b1d238a1cd4a3544614df490e3e956123868d11530e2a644898c99129e063cc186184a8423578ead06563d7c8932346a6c7a04175769c3868ccd48dc3d5099aac4ce3e641f31eab561848e2843cc3a628d73368d2bca18b86ad9a3e62a9fe4db3712357881229eadce933e8d09154a92a417265848c1d307afec489074e198678e6108d31a7e8882557ae4c9111357903abdf7f7b052b96ec4f3868d51e7e1b77ae74198ef7f63d1a76ce52bf50cf4c9d7355b7ddb290634cae7cb9b4dec05f135b76c178c41d347b7e16eeabc732db16325a74cf7a07869135647bff0e3e7c075bdad3732c6f4e7c070e1ed37dcb993e23c78d1c30f07807cfd6ca1a3669ee8869c2c40adb9e6a70a8d60ae30999a278c8e4e78a260ed53d3020c33088900d43ae25204aa46818239f8d6cbc631c3a120b11ff6964a864c9e6e58ca8a54b505d220727579d3b7d06bd48158b52a6f99f72b542940f923a13ed600c39838d8c974546fc6548a63761b2d36d8067a96344913a72f428951105cd9d248a9fcab011c3c688298ad30c444398c99129e063cc18313bce683578eae8b66be4c91123d363246f003b0e1a33d2b93a41939569dc3c68d6df8181248e193967d814e57a064d9a3774d1b055d387cd1caa7fd36cdcc835618f853a63d07473510655aa0100 ASCII:E........@.. ....U...@..P.....{9n..@...........a...=kGET /8-Bit/mrwong.gif HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtm3..3.a{.........yD..-.Z.....5d...:...40v..>.F..l..!.....4.7.>#...0......[+k........=...}5...O...CF...h.P...2.9u..a.F.......!C......ASG...1...#.....e8.1c..*5fD-]...9v~...'F.9f...I.K.:0......Q>H8z...%../.....!..2...n.<K.#....TF..I.>.a#...S.*dH...).c..a..B5x..ec...#F...Auv.8h........L..A...V.H..<..(.3h.......>b..M.q#W..)...3...T.*Are...0z....N..x...1...%W.L..5y....{.+..O8h..~.w.t....=.v.R.P.L.sU....cL.|...._.[v.x..4{~....2..2Zt.z...5d{..>|.[..s,oN|....}..>#...0.x.....6i..i.....jp.......x....&..=0 .0...C.% J.h.#..l.c.:....id.d......KP]".'W.;}..H..R...r.B...:..`.9....EF.eH.7a..m.g.cD.:r.(.....$........)...DC...).c..1;.h5x...k...#.c$o.;..3..:A..i.<h....$..9g...z.M.7t..U.......l..5a..:c.tsQ.U... -uncompressed= 4500049b00ae00004006cc20c0a80002550d93d740050050c31396ceaf7b396e801840009ad400000101080a0005611010fc3d6b474554202f382d4269742f6d72776f6e672e67696620485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a474554202f382d4269742f7374756d626c6575706f6e2e706e6720485454502f312e310d0a4163636570743a206d756c7469706172742f6d697865642c206170706c69636174696f6e2f766e642e7761702e6d756c7469706172742e6d697865642c206170706c69636174696f6e2f766e642e7761702e7868746d6c2b786d6c2c206170706c69636174696f6e2f7868746d6c2b786d6c2c20746578742f766e642e7761702e776d6c2c202a2f2a0d0a4163636570742d436861727365743a207574662d382c207574662d31362c2069736f2d383835392d312c2069736f2d31303634362d7563732d322c2053686966745f4a49532c20426967350d0a4163636570742d4c616e67756167653a20656e0d0a782d7761702d70726f66696c653a2022687474703a2f2f7761702e736f6e796572696373736f6e2e636f6d2f554170726f662f4b38303069523230312e786d6c220d0a486f73743a207777772e7a6f636b2e636f6d0d0a557365722d4167656e743a20536f6e794572696373736f6e4b383030692f5232422052656c656173652f4d61722d31332d323030372042726f777365722f4e657446726f6e742f332e332050726f66696c652f4d4944502d322e3020436f6e66696775726174696f6e2f434c44432d312e310d0a436f6e6e656374696f6e3a204b6565702d416c6976650d0a4163636570742d456e636f64696e673a206465666c6174652c20677a69700d0a526566657265723a20687474703a2f2f7777772e7a6f636b2e636f6d2f0d0a0d0a ASCII:E.......@.. ....U...@..P.....{9n..@...........a...=kGET /8-Bit/mrwong.gif HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/....GET /8-Bit/stumbleupon.png HTTP/1.1..Accept: multipart/mixed, application/vnd.wap.multipart.mixed, application/vnd.wap.xhtml+xml, application/xhtml+xml, text/vnd.wap.wml, */*..Accept-Charset: utf-8, utf-16, iso-8859-1, iso-10646-ucs-2, Shift_JIS, Big5..Accept-Language: en..x-wap-profile: "http://wap.sonyericsson.com/UAprof/K800iR201.xml"..Host: www.zock.com..User-Agent: SonyEricssonK800i/R2B Release/Mar-13-2007 Browser/NetFront/3.3 Profile/MIDP-2.0 Configuration/CLDC-1.1..Connection: Keep-Alive..Accept-Encoding: deflate, gzip..Referer: http://www.zock.com/.... - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 31 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 45000101a0f3d84000400679210a0901abc0a800021f90400538e210f07a827bb1501900ed7be90000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205765642c203301312041756720323031362030393a32383a353220474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a66003f481c9162e40a97294800002068746d6c20506600588a3c6162644409183200002f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d66006f8234f87187cd1d006c653e4469726563746f7279206c697374696e672066016f72202f3c2f7469746c990068bcff2823e70c9fff6b6a943f9f7e7dfbf7f1e7d7bf9f5fb1c2ef6beafcc7d3fd3b7ced646aa34f03a404fa3373a4c64113630efdec27534e7509538d7e32ff657044a8f1bb0c82067f72f71e00 ASCII:E......@.@.y!..........@.8...z.{.P...{...HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Wed, 3.1 Aug 2016 09:28:52 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....f.?H..b...)H.. html Pf.X.<abdD..2../W3C//DTD HTML 3.2 Final//EN"><htmf.o.4.q....le>Directory listing f.or /</titl..h..(#....kj.?.~}......._...k.....;|.dj.O....3s..A.c...'SNu.S.~2.epD.......r... -uncompressed= 450001a0f3d84000400679210a0901abc0a800021f90400538e210f07a827bb1501900ed7be90000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205765642c2033312041756720323031362030393a32383a353220474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E.....@.@.y!..........@.8...z.{.P...{...HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Wed, 31 Aug 2016 09:28:52 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing for /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. - -Testing decompression with sniffed compressed TCP/IP packets: -Packet No.: 32 -v42bis_decompress_flush() rc=0 -v42bis_decompress() rc=0 -v42bis_decompress_flush() rc=0 -compressed= 45000101a0e9a54000400683540a0901abc0a800021f904004437442f17a4ab3b1501900ed04900000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205765642c203301312041756720323031362030393a32373a353520474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a66003f481c9162e40a97294800002068746d6c20506600588a3c6162644409183200002f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e672066016f72202f3c2f7469746c990068beff2823e70c9f816b6a9847af9ebd7bf8f2e9dbc7af5ff142f06bea0cc4e31d7cfced646aa74f03a444fa3373a4c64113634e7ded28554e7d1953cd7e320365744cb811bc8c82078376ff1e00 ASCII:E......@.@..T..........@.CtB.zJ..P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Wed, 3.1 Aug 2016 09:27:55 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....f.?H..b...)H.. html Pf.X.<abdD..2../W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing f.or /</titl..h..(#....kj.G...{......_.B.k.....|..dj.O..D.3s..A.cN}.(UN}.S.~2.etL.......v... -uncompressed= 450001a0e9a54000400683540a0901abc0a800021f904004437442f17a4ab3b1501900ed04900000485454502f312e3020323030204f4b0d0a5365727665723a2053696d706c65485454502f302e3620507974686f6e2f322e372e360d0a446174653a205765642c2033312041756720323031362030393a32373a353520474d540d0a436f6e74656e742d747970653a20746578742f68746d6c3b20636861727365743d5554462d380d0a436f6e74656e742d4c656e6774683a203232320d0a0d0a3c21444f43545950452068746d6c205055424c494320222d2f2f5733432f2f4454442048544d4c20332e322046696e616c2f2f454e223e3c68746d6c3e0a3c7469746c653e4469726563746f7279206c697374696e6720666f72202f3c2f7469746c653e0a3c626f64793e0a3c68323e4469726563746f7279206c697374696e6720666f72202f3c2f68323e0a3c68723e0a3c756c3e0a3c6c693e3c6120687265663d2272656470686f6e652e706e67223e72656470686f6e652e706e673c2f613e0a3c2f756c3e0a3c68723e0a3c2f626f64793e0a3c2f68746d6c3e0a ASCII:E.....@.@..T..........@.CtB.zJ..P.......HTTP/1.0 200 OK..Server: SimpleHTTP/0.6 Python/2.7.6..Date: Wed, 31 Aug 2016 09:27:55 GMT..Content-type: text/html; charset=UTF-8..Content-Length: 222....<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><html>.<title>Directory listing for /</title>.<body>.<h2>Directory listing for /</h2>.<hr>.<ul>.<li><a href="redphone.png">redphone.png</a>.</ul>.<hr>.</body>.</html>. - -Done diff --git a/tests/vty_test_runner.py b/tests/vty_test_runner.py index c4a3c8fbc..1727e5308 100644 --- a/tests/vty_test_runner.py +++ b/tests/vty_test_runner.py @@ -108,182 +108,6 @@ class TestVTYGenericBSC(TestVTYBase): self.assertTrue(self.vty.verify("exit",[''])) self.assertTrue(self.vty.node() is None) -class TestVTYMSC(TestVTYBase): - - def vty_command(self): - return ["./src/osmo-msc/osmo-msc", "-c", - "doc/examples/osmo-msc/osmo-msc.cfg"] - - def vty_app(self): - return (4254, "./src/osmo-msc/osmo-msc", "OsmoMSC", "msc") - - def testConfigNetworkTree(self, include_bsc_items=True): - self.vty.enable() - self.assertTrue(self.vty.verify("configure terminal",[''])) - self.assertEquals(self.vty.node(), 'config') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify("network",[''])) - self.assertEquals(self.vty.node(), 'config-net') - self.checkForEndAndExit() - self.vty.command("write terminal") - self.assertTrue(self.vty.verify("exit",[''])) - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify("exit",[''])) - self.assertTrue(self.vty.node() is None) - - def checkForSmpp(self): - """SMPP is not always enabled, check if it is""" - res = self.vty.command("list") - return "smpp" in res - - def testSmppFirst(self): - # enable the configuration - self.vty.enable() - self.vty.command("configure terminal") - - if not self.checkForSmpp(): - return - - self.vty.command("smpp") - - # check the default - res = self.vty.command("write terminal") - self.assert_(res.find(' no smpp-first') > 0) - - self.vty.verify("smpp-first", ['']) - res = self.vty.command("write terminal") - self.assert_(res.find(' smpp-first') > 0) - self.assertEquals(res.find('no smpp-first'), -1) - - self.vty.verify("no smpp-first", ['']) - res = self.vty.command("write terminal") - self.assert_(res.find('no smpp-first') > 0) - - def testVtyTree(self): - self.vty.enable() - self.assertTrue(self.vty.verify("configure terminal", [''])) - self.assertEquals(self.vty.node(), 'config') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify('mncc-int', [''])) - self.assertEquals(self.vty.node(), 'config-mncc-int') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify('exit', [''])) - - if self.checkForSmpp(): - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify('smpp', [''])) - self.assertEquals(self.vty.node(), 'config-smpp') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify("exit", [''])) - - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify("exit", [''])) - self.assertTrue(self.vty.node() is None) - - # Check searching for outer node's commands - self.vty.command("configure terminal") - self.vty.command('mncc-int') - - if self.checkForSmpp(): - self.vty.command('smpp') - self.assertEquals(self.vty.node(), 'config-smpp') - self.vty.command('mncc-int') - - self.assertEquals(self.vty.node(), 'config-mncc-int') - - def testVtyAuthorization(self): - self.vty.enable() - self.vty.command("configure terminal") - self.vty.command("network") - self.assertTrue(self.vty.verify("auth policy closed", [''])) - self.assertTrue(self.vty.verify("auth policy regexp", [''])) - self.assertTrue(self.vty.verify("authorized-regexp ^001", [''])) - self.assertTrue(self.vty.verify("authorized-regexp 02$", [''])) - self.assertTrue(self.vty.verify("authorized-regexp *123.*", [''])) - self.vty.command("end") - - def testSi2Q(self): - self.vty.enable() - self.vty.command("configure terminal") - self.vty.command("network") - self.vty.command("bts 0") - before = self.vty.command("show running-config") - self.vty.command("si2quater neighbor-list add earfcn 1911 threshold 11 2") - self.vty.command("si2quater neighbor-list add earfcn 1924 threshold 11 3") - self.vty.command("si2quater neighbor-list add earfcn 2111 threshold 11") - self.vty.command("si2quater neighbor-list del earfcn 1911") - self.vty.command("si2quater neighbor-list del earfcn 1924") - self.vty.command("si2quater neighbor-list del earfcn 2111") - self.assertEquals(before, self.vty.command("show running-config")) - self.vty.command("si2quater neighbor-list add uarfcn 1976 13 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 38 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 44 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 120 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 140 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 163 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 166 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 217 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 224 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 225 1") - self.vty.command("si2quater neighbor-list add uarfcn 1976 226 1") - self.vty.command("si2quater neighbor-list del uarfcn 1976 13") - self.vty.command("si2quater neighbor-list del uarfcn 1976 38") - self.vty.command("si2quater neighbor-list del uarfcn 1976 44") - self.vty.command("si2quater neighbor-list del uarfcn 1976 120") - self.vty.command("si2quater neighbor-list del uarfcn 1976 140") - self.vty.command("si2quater neighbor-list del uarfcn 1976 163") - self.vty.command("si2quater neighbor-list del uarfcn 1976 166") - self.vty.command("si2quater neighbor-list del uarfcn 1976 217") - self.vty.command("si2quater neighbor-list del uarfcn 1976 224") - self.vty.command("si2quater neighbor-list del uarfcn 1976 225") - self.vty.command("si2quater neighbor-list del uarfcn 1976 226") - self.assertEquals(before, self.vty.command("show running-config")) - - def testEnableDisablePeriodicLU(self): - self.vty.enable() - self.vty.command("configure terminal") - self.vty.command("network") - self.vty.command("bts 0") - - # Test invalid input - self.vty.verify("periodic location update 0", ['% Unknown command.']) - self.vty.verify("periodic location update 5", ['% Unknown command.']) - self.vty.verify("periodic location update 1531", ['% Unknown command.']) - - # Enable periodic lu.. - self.vty.verify("periodic location update 60", ['']) - res = self.vty.command("write terminal") - self.assert_(res.find('periodic location update 60') > 0) - self.assertEquals(res.find('no periodic location update'), -1) - - # Now disable it.. - self.vty.verify("no periodic location update", ['']) - res = self.vty.command("write terminal") - self.assertEquals(res.find('periodic location update 60'), -1) - self.assert_(res.find('no periodic location update') > 0) - - def testShowNetwork(self): - res = self.vty.command("show network") - self.assert_(res.startswith('BSC is on Country Code') >= 0) - - def testMeasurementFeed(self): - self.vty.enable() - self.vty.command("configure terminal") - self.vty.command("mncc-int") - - res = self.vty.command("write terminal") - self.assertEquals(res.find('meas-feed scenario'), -1) - - self.vty.command("meas-feed scenario bla") - res = self.vty.command("write terminal") - self.assert_(res.find('meas-feed scenario bla') > 0) - - self.vty.command("meas-feed scenario abcdefghijklmnopqrstuvwxyz01234567890") - res = self.vty.command("write terminal") - self.assertEquals(res.find('meas-feed scenario abcdefghijklmnopqrstuvwxyz01234567890'), -1) - self.assertEquals(res.find('meas-feed scenario abcdefghijklmnopqrstuvwxyz012345'), -1) - self.assert_(res.find('meas-feed scenario abcdefghijklmnopqrstuvwxyz01234') > 0) - class TestVTYBSC(TestVTYGenericBSC): @@ -719,205 +543,6 @@ class TestVTYNAT(TestVTYGenericBSC): asserted = True self.assert_(asserted) -class TestVTYGbproxy(TestVTYGenericBSC): - - def vty_command(self): - return ["./src/gprs/osmo-gbproxy", "-c", - "doc/examples/osmo-gbproxy/osmo-gbproxy.cfg"] - - def vty_app(self): - return (4246, "./src/gprs/osmo-gbproxy", "OsmoGbProxy", "bsc") - - def testVtyTree(self): - self.vty.enable() - self.assertTrue(self.vty.verify('configure terminal', [''])) - self.assertEquals(self.vty.node(), 'config') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify('ns', [''])) - self.assertEquals(self.vty.node(), 'config-ns') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify('exit', [''])) - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify('gbproxy', [''])) - self.assertEquals(self.vty.node(), 'config-gbproxy') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify('exit', [''])) - self.assertEquals(self.vty.node(), 'config') - - def testVtyShow(self): - res = self.vty.command("show ns") - self.assert_(res.find('Encapsulation NS-UDP-IP') >= 0) - - res = self.vty.command("show gbproxy stats") - self.assert_(res.find('GBProxy Global Statistics') >= 0) - - def testVtyDeletePeer(self): - self.vty.enable() - self.assertTrue(self.vty.verify('delete-gbproxy-peer 9999 bvci 7777', ['BVC not found'])) - res = self.vty.command("delete-gbproxy-peer 9999 all dry-run") - self.assert_(res.find('Not Deleted 0 BVC') >= 0) - self.assert_(res.find('Not Deleted 0 NS-VC') >= 0) - res = self.vty.command("delete-gbproxy-peer 9999 only-bvc dry-run") - self.assert_(res.find('Not Deleted 0 BVC') >= 0) - self.assert_(res.find('Not Deleted 0 NS-VC') < 0) - res = self.vty.command("delete-gbproxy-peer 9999 only-nsvc dry-run") - self.assert_(res.find('Not Deleted 0 BVC') < 0) - self.assert_(res.find('Not Deleted 0 NS-VC') >= 0) - res = self.vty.command("delete-gbproxy-peer 9999 all") - self.assert_(res.find('Deleted 0 BVC') >= 0) - self.assert_(res.find('Deleted 0 NS-VC') >= 0) - -class TestVTYSGSN(TestVTYGenericBSC): - - def vty_command(self): - return ["./src/gprs/osmo-sgsn", "-c", - "doc/examples/osmo-sgsn/osmo-sgsn-accept-all.cfg"] - - def vty_app(self): - return (4245, "./src/gprs/osmo-sgsn", "OsmoSGSN", "sgsn") - - def testVtyTree(self): - self.vty.enable() - self.assertTrue(self.vty.verify('configure terminal', [''])) - self.assertEquals(self.vty.node(), 'config') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify('ns', [''])) - self.assertEquals(self.vty.node(), 'config-ns') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify('exit', [''])) - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify('sgsn', [''])) - self.assertEquals(self.vty.node(), 'config-sgsn') - self.checkForEndAndExit() - self.assertTrue(self.vty.verify('exit', [''])) - self.assertEquals(self.vty.node(), 'config') - - def testVtyShow(self): - res = self.vty.command("show ns") - self.assert_(res.find('Encapsulation NS-UDP-IP') >= 0) - self.assertTrue(self.vty.verify('show bssgp', [''])) - self.assertTrue(self.vty.verify('show bssgp stats', [''])) - # TODO: uncomment when the command does not segfault anymore - # self.assertTrue(self.vty.verify('show bssgp nsei 123', [''])) - # self.assertTrue(self.vty.verify('show bssgp nsei 123 stats', [''])) - - self.assertTrue(self.vty.verify('show sgsn', [''])) - self.assertTrue(self.vty.verify('show mm-context all', [''])) - self.assertTrue(self.vty.verify('show mm-context imsi 000001234567', ['No MM context for IMSI 000001234567'])) - self.assertTrue(self.vty.verify('show pdp-context all', [''])) - - res = self.vty.command("show sndcp") - self.assert_(res.find('State of SNDCP Entities') >= 0) - - res = self.vty.command("show llc") - self.assert_(res.find('State of LLC Entities') >= 0) - - def testVtyAuth(self): - self.vty.enable() - self.assertTrue(self.vty.verify('configure terminal', [''])) - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify('sgsn', [''])) - self.assertEquals(self.vty.node(), 'config-sgsn') - self.assertTrue(self.vty.verify('auth-policy accept-all', [''])) - res = self.vty.command("show running-config") - self.assert_(res.find('auth-policy accept-all') > 0) - self.assertTrue(self.vty.verify('auth-policy acl-only', [''])) - res = self.vty.command("show running-config") - self.assert_(res.find('auth-policy acl-only') > 0) - self.assertTrue(self.vty.verify('auth-policy closed', [''])) - res = self.vty.command("show running-config") - self.assert_(res.find('auth-policy closed') > 0) - self.assertTrue(self.vty.verify('gsup remote-ip 127.0.0.4', [''])) - self.assertTrue(self.vty.verify('gsup remote-port 2222', [''])) - self.assertTrue(self.vty.verify('auth-policy remote', [''])) - res = self.vty.command("show running-config") - self.assert_(res.find('auth-policy remote') > 0) - - def testVtySubscriber(self): - self.vty.enable() - res = self.vty.command('show subscriber cache') - self.assert_(res.find('1234567890') < 0) - self.assertTrue(self.vty.verify('update-subscriber imsi 1234567890 create', [''])) - res = self.vty.command('show subscriber cache') - self.assert_(res.find('1234567890') >= 0) - self.assert_(res.find('Authorized: 0') >= 0) - self.assertTrue(self.vty.verify('update-subscriber imsi 1234567890 update-location-result ok', [''])) - res = self.vty.command('show subscriber cache') - self.assert_(res.find('1234567890') >= 0) - self.assert_(res.find('Authorized: 1') >= 0) - self.assertTrue(self.vty.verify('update-subscriber imsi 1234567890 cancel update-procedure', [''])) - res = self.vty.command('show subscriber cache') - self.assert_(res.find('1234567890') >= 0) - self.assertTrue(self.vty.verify('update-subscriber imsi 1234567890 destroy', [''])) - res = self.vty.command('show subscriber cache') - self.assert_(res.find('1234567890') < 0) - - def testVtyGgsn(self): - self.vty.enable() - self.assertTrue(self.vty.verify('configure terminal', [''])) - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify('sgsn', [''])) - self.assertEquals(self.vty.node(), 'config-sgsn') - self.assertTrue(self.vty.verify('ggsn 0 remote-ip 127.99.99.99', [''])) - self.assertTrue(self.vty.verify('ggsn 0 gtp-version 1', [''])) - self.assertTrue(self.vty.verify('apn * ggsn 0', [''])) - self.assertTrue(self.vty.verify('apn apn1.test ggsn 0', [''])) - self.assertTrue(self.vty.verify('apn apn1.test ggsn 1', ['% a GGSN with id 1 has not been defined'])) - self.assertTrue(self.vty.verify('apn apn1.test imsi-prefix 123456 ggsn 0', [''])) - self.assertTrue(self.vty.verify('apn apn2.test imsi-prefix 123456 ggsn 0', [''])) - res = self.vty.command("show running-config") - self.assert_(res.find('ggsn 0 remote-ip 127.99.99.99') >= 0) - self.assert_(res.find('ggsn 0 gtp-version 1') >= 0) - self.assert_(res.find('apn * ggsn 0') >= 0) - self.assert_(res.find('apn apn1.test ggsn 0') >= 0) - self.assert_(res.find('apn apn1.test imsi-prefix 123456 ggsn 0') >= 0) - self.assert_(res.find('apn apn2.test imsi-prefix 123456 ggsn 0') >= 0) - - def testVtyEasyAPN(self): - self.vty.enable() - self.assertTrue(self.vty.verify('configure terminal', [''])) - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify('sgsn', [''])) - self.assertEquals(self.vty.node(), 'config-sgsn') - - res = self.vty.command("show running-config") - self.assertEquals(res.find("apn internet"), -1) - - self.assertTrue(self.vty.verify("access-point-name internet.apn", [''])) - res = self.vty.command("show running-config") - self.assert_(res.find("apn internet.apn ggsn 0") >= 0) - - self.assertTrue(self.vty.verify("no access-point-name internet.apn", [''])) - res = self.vty.command("show running-config") - self.assertEquals(res.find("apn internet"), -1) - - def testVtyCDR(self): - self.vty.enable() - self.assertTrue(self.vty.verify('configure terminal', [''])) - self.assertEquals(self.vty.node(), 'config') - self.assertTrue(self.vty.verify('sgsn', [''])) - self.assertEquals(self.vty.node(), 'config-sgsn') - - res = self.vty.command("show running-config") - self.assert_(res.find("no cdr filename") > 0) - - self.vty.command("cdr filename bla.cdr") - res = self.vty.command("show running-config") - self.assertEquals(res.find("no cdr filename"), -1) - self.assert_(res.find(" cdr filename bla.cdr") > 0) - - self.vty.command("no cdr filename") - res = self.vty.command("show running-config") - self.assert_(res.find("no cdr filename") > 0) - self.assertEquals(res.find(" cdr filename bla.cdr"), -1) - - res = self.vty.command("show running-config") - self.assert_(res.find(" cdr interval 600") > 0) - - self.vty.command("cdr interval 900") - res = self.vty.command("show running-config") - self.assert_(res.find(" cdr interval 900") > 0) - self.assertEquals(res.find(" cdr interval 600"), -1) def add_nat_test(suite, workdir): if not os.path.isfile(os.path.join(workdir, "src/osmo-bsc_nat/osmo-bsc_nat")): @@ -1050,20 +675,6 @@ def add_bsc_test(suite, workdir): test = unittest.TestLoader().loadTestsFromTestCase(TestVTYBSC) suite.addTest(test) -def add_gbproxy_test(suite, workdir): - if not os.path.isfile(os.path.join(workdir, "src/gprs/osmo-gbproxy")): - print("Skipping the Gb-Proxy test") - return - test = unittest.TestLoader().loadTestsFromTestCase(TestVTYGbproxy) - suite.addTest(test) - -def add_sgsn_test(suite, workdir): - if not os.path.isfile(os.path.join(workdir, "src/gprs/osmo-sgsn")): - print("Skipping the SGSN test") - return - test = unittest.TestLoader().loadTestsFromTestCase(TestVTYSGSN) - suite.addTest(test) - if __name__ == '__main__': import argparse import sys @@ -1094,11 +705,8 @@ if __name__ == '__main__': os.chdir(workdir) print "Running tests for specific VTY commands" suite = unittest.TestSuite() - suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestVTYMSC)) add_bsc_test(suite, workdir) add_nat_test(suite, workdir) - add_gbproxy_test(suite, workdir) - add_sgsn_test(suite, workdir) if args.test_name: osmoutil.pick_tests(suite, *args.test_name) diff --git a/tests/xid/Makefile.am b/tests/xid/Makefile.am deleted file mode 100644 index aaf17edf2..000000000 --- a/tests/xid/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -AM_CPPFLAGS = \ - $(all_includes) \ - -I$(top_srcdir)/include \ - $(NULL) - -AM_CFLAGS = \ - -Wall \ - -ggdb3 \ - $(LIBOSMOCORE_CFLAGS) \ - $(LIBOSMOGSM_CFLAGS) \ - $(LIBCARES_CFLAGS) \ - $(NULL) - -EXTRA_DIST = \ - xid_test.ok \ - $(NULL) - -noinst_PROGRAMS = \ - xid_test \ - $(NULL) - -xid_test_SOURCES = \ - xid_test.c \ - $(NULL) - -xid_test_LDADD = \ - $(top_builddir)/src/gprs/gprs_llc_xid.o \ - $(top_builddir)/src/libcommon/libcommon.a \ - $(LIBOSMOABIS_LIBS) \ - $(LIBOSMOCORE_LIBS) \ - $(LIBOSMOGSM_LIBS) \ - $(LIBOSMOGB_LIBS) \ - $(LIBCARES_LIBS) \ - $(LIBCRYPTO_LIBS) \ - $(LIBGTP_LIBS) \ - -lrt \ - -lm \ - $(NULL) - diff --git a/tests/xid/xid_test.c b/tests/xid/xid_test.c deleted file mode 100644 index b77a4ae85..000000000 --- a/tests/xid/xid_test.c +++ /dev/null @@ -1,164 +0,0 @@ -/* Test LLC-XID Encoding/Decoding */ - -/* (C) 2016 by sysmocom s.f.m.c. GmbH <info@sysmocom.de> - * All Rights Reserved - * - * Author: Philipp Maier - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <openbsc/gprs_llc_xid.h> -#include <openbsc/debug.h> - -#include <osmocom/core/talloc.h> -#include <osmocom/core/utils.h> - -#include <osmocom/core/application.h> - -#include <stdio.h> -#include <string.h> - -/* Test XID encoding */ -static void test_xid_encode(const void *ctx) -{ - struct gprs_llc_xid_field xid_field_1; - struct gprs_llc_xid_field xid_field_2; - struct gprs_llc_xid_field xid_field_3; - struct gprs_llc_xid_field xid_field_4; - LLIST_HEAD(xid_fields); - uint8_t xid[255]; - uint8_t xid_expected[] = - { 0x10, 0x8c, 0x14, 0x43, 0x43, 0x43, 0x43, 0x43, 0x0b, 0x42, 0x42, - 0x42, 0x05, 0x41 }; - int rc; - - printf("Testing LLC XID-Encoder\n"); - - /* Setup some simple XID data */ - xid_field_1.type = 1; - xid_field_2.type = 2; - xid_field_3.type = 3; - xid_field_4.type = 4; - - xid_field_1.data = (uint8_t *) "A"; - xid_field_2.data = (uint8_t *) "BBB"; - xid_field_3.data = (uint8_t *) "CCCCC"; - xid_field_4.data = NULL; - - xid_field_1.data_len = 1; - xid_field_2.data_len = 3; - xid_field_3.data_len = 5; - xid_field_4.data_len = 0; - - llist_add(&xid_field_4.list, &xid_fields); - llist_add(&xid_field_3.list, &xid_fields); - llist_add(&xid_field_2.list, &xid_fields); - llist_add(&xid_field_1.list, &xid_fields); - - printf("Data to encode:\n"); - gprs_llc_dump_xid_fields(&xid_fields, DSNDCP); - - /* Encode data */ - rc = gprs_llc_compile_xid(xid, sizeof(xid), &xid_fields); - OSMO_ASSERT(rc == 14); - printf("Encoded: %s (%i bytes)\n", osmo_hexdump_nospc(xid, rc), rc); - printf("Expected: %s (%i bytes)\n", - osmo_hexdump_nospc(xid_expected, sizeof(xid_expected)), - (int)sizeof(xid_expected)); - - OSMO_ASSERT(memcmp(xid_expected, xid, sizeof(xid_expected)) == 0); - - printf("\n"); -} - -/* Test XID decoding */ -static void test_xid_decode(const void *ctx) -{ - struct llist_head *xid_fields; - int rc; - - printf("Testing LLC XID-Decoder/Encoder\n"); - - /* Example of a real world LLC-XID message */ - uint8_t xid[] = - { 0x01, 0x00, 0x16, 0x05, 0xf0, 0x1a, 0x05, 0xf0, 0xac, 0xd8, 0x00, - 0x01, 0x00, 0x02, 0x31, 0x82, 0x02, 0x27, 0x89, 0xff, 0xe0, 0x00, 0x0f, - 0x00, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x02, 0x01, 0x02, - 0x00, 0x03, 0x01, 0x03, 0x00, 0x04, 0x01, 0x04, 0x00, 0x05, 0x01, 0x05, - 0x00, 0x06, 0x00, 0x07, 0x01, 0x07, 0x00, 0x08, 0x01, 0x08, 0x80, 0x00, - 0x04, 0x12, 0x00, 0x40, 0x07 }; - - uint8_t xid_r[512]; - - /* Decode and display XID fields */ - xid_fields = gprs_llc_parse_xid(ctx, xid, sizeof(xid)); - OSMO_ASSERT(xid_fields); - - printf("Decoded:\n"); - gprs_llc_dump_xid_fields(xid_fields, DSNDCP); - - - /* Encode xid-fields again */ - rc = gprs_llc_compile_xid(xid_r, sizeof(xid_r), xid_fields); - printf("Result length=%i\n",rc); - printf("Encoded: %s\n", osmo_hexdump_nospc(xid, sizeof(xid))); - printf("Rencoded: %s\n", osmo_hexdump_nospc(xid_r, rc)); - - OSMO_ASSERT(rc == 64); - OSMO_ASSERT(memcmp(xid, xid_r, sizeof(xid)) == 0); - - /* Free xid fields */ - talloc_free(xid_fields); - - printf("\n"); -} - -static struct log_info_cat gprs_categories[] = { - [DSNDCP] = { - .name = "DSNDCP", - .description = - "GPRS Sub-Network Dependent Control Protocol (SNDCP)", - .enabled = 1,.loglevel = LOGL_DEBUG, - } -}; - -static struct log_info info = { - .cat = gprs_categories, - .num_cat = ARRAY_SIZE(gprs_categories), -}; - -int main(int argc, char **argv) -{ - void *xid_ctx; - - osmo_init_logging(&info); - - xid_ctx = talloc_named_const(NULL, 0, "xid_ctx"); - - test_xid_decode(xid_ctx); - test_xid_encode(xid_ctx); - printf("Done\n"); - - talloc_report_full(xid_ctx, stderr); - OSMO_ASSERT(talloc_total_blocks(xid_ctx) == 1); - return 0; -} - -/* stubs */ -struct osmo_prim_hdr; -int bssgp_prim_cb(struct osmo_prim_hdr *oph, void *ctx) -{ - abort(); -} diff --git a/tests/xid/xid_test.ok b/tests/xid/xid_test.ok deleted file mode 100644 index 4cf825ca5..000000000 --- a/tests/xid/xid_test.ok +++ /dev/null @@ -1,12 +0,0 @@ -Testing LLC XID-Decoder/Encoder -Decoded: -Result length=64 -Encoded: 01001605f01a05f0acd8000100023182022789ffe0000f00a8000000010101000201020003010300040104000501050006000701070008010880000412004007 -Rencoded: 01001605f01a05f0acd8000100023182022789ffe0000f00a8000000010101000201020003010300040104000501050006000701070008010880000412004007 - -Testing LLC XID-Encoder -Data to encode: -Encoded: 108c1443434343430b4242420541 (14 bytes) -Expected: 108c1443434343430b4242420541 (14 bytes) - -Done |