split off osmo-mgw: remove files, apply build, rename

Add vty and logging previously used from libcommon

Rename libmgcp to libosmo-legacy-mgcp and install.

Use DLMGCP, not DMGCP.

Slim down the public mgcpgw_client API, move all elements not actually used by
current callers to private headers / static c.

Depends: libosmocore I09c587e2d59472cbde852d467d457254746d9e67
Change-Id: I71a0a16ebaaef881c34235849601fc40aa12cfd7
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 38890a8..4a1f27a 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,50 +1,7 @@
 SUBDIRS = \
-	gsm0408 \
-	channel \
-	mgcp \
-	gprs \
-	abis \
-	gbproxy \
-	trau \
-	subscr \
-	nanobts_omlattr \
-	sms_queue \
-	msc_vlr \
+	legacy_mgcp \
 	$(NULL)
 
-if BUILD_NAT
-SUBDIRS += \
-	bsc-nat \
-	bsc-nat-trie \
-	$(NULL)
-endif
-if BUILD_BSC
-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
 	:;{ \
@@ -69,7 +26,6 @@
 	$(TESTSUITE) \
 	vty_test_runner.py \
 	ctrl_test_runner.py \
-	smpp_test_runner.py \
 	$(NULL)
 
 TESTSUITE = $(srcdir)/testsuite
@@ -84,10 +40,6 @@
 	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)
 	echo "Not running python-based tests (determined at configure-time)"
diff --git a/tests/abis/Makefile.am b/tests/abis/Makefile.am
deleted file mode 100644
index 1c5dede..0000000
--- a/tests/abis/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-AM_CPPFLAGS = \
-	$(all_includes) \
-	-I$(top_srcdir)/include \
-	$(NULL)
-
-AM_CFLAGS = \
-	-Wall \
-	-ggdb3 \
-	$(LIBOSMOCORE_CFLAGS) \
-	$(LIBOSMOABIS_CFLAGS) \
-	$(LIBOSMOGSM_CFLAGS) \
-	$(COVERAGE_CFLAGS) \
-	$(NULL)
-
-EXTRA_DIST = \
-	abis_test.ok \
-	$(NULL)
-
-noinst_PROGRAMS = \
-	abis_test \
-	$(NULL)
-
-abis_test_SOURCES = \
-	abis_test.c \
-	$(NULL)
-
-abis_test_LDADD = \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
-	$(top_builddir)/src/libtrau/libtrau.a \
-	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOABIS_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(NULL)
diff --git a/tests/abis/abis_test.c b/tests/abis/abis_test.c
deleted file mode 100644
index 591f835..0000000
--- a/tests/abis/abis_test.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * (C) 2012 by Holger Hans Peter Freyther <zecke@selfish.org>
- * 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 <stdio.h>
-#include <stdlib.h>
-
-#include <osmocom/core/application.h>
-#include <osmocom/core/utils.h>
-#include <osmocom/gsm/protocol/gsm_12_21.h>
-
-#include <openbsc/gsm_data.h>
-#include <openbsc/abis_nm.h>
-#include <openbsc/debug.h>
-
-static const uint8_t load_config[] = {
-	0x42, 0x12, 0x00, 0x08, 0x31, 0x36, 0x38, 0x64,
-	0x34, 0x37, 0x32, 0x00, 0x13, 0x00, 0x0b, 0x76,
-	0x32, 0x30, 0x30, 0x62, 0x31, 0x34, 0x33, 0x64,
-	0x30, 0x00, 0x42, 0x12, 0x00, 0x08, 0x31, 0x36,
-	0x38, 0x64, 0x34, 0x37, 0x32, 0x00, 0x13, 0x00,
-	0x0b, 0x76, 0x32, 0x30, 0x30, 0x62, 0x31, 0x34,
-	0x33, 0x64, 0x31, 0x00
-};
-
-static void test_sw_selection(void)
-{
-	struct abis_nm_sw_desc descr[8], tmp;
-	uint16_t len0, len1;
-	int rc, pos;
-
-	rc = abis_nm_get_sw_conf(load_config, ARRAY_SIZE(load_config),
-				&descr[0], ARRAY_SIZE(descr));
-	if (rc != 2) {
-		printf("%s(): FAILED to parse the File Id/File version: %d\n",
-		       __func__, rc);
-		abort();
-	}
-
-	len0 = abis_nm_sw_desc_len(&descr[0], true);
-	printf("len: %u\n", len0);
-	printf("file_id:  %s\n", osmo_hexdump(descr[0].file_id, descr[0].file_id_len));
-	printf("file_ver: %s\n", osmo_hexdump(descr[0].file_version, descr[0].file_version_len));
-
-	len1 = abis_nm_sw_desc_len(&descr[1], true);
-	printf("len: %u\n", len1);
-	printf("file_id:  %s\n", osmo_hexdump(descr[1].file_id, descr[1].file_id_len));
-	printf("file_ver: %s\n", osmo_hexdump(descr[1].file_version, descr[1].file_version_len));
-
-	/* start */
-	pos = abis_nm_select_newest_sw(descr, rc);
-	if (pos != 1) {
-		printf("Selected the wrong version: %d\n", pos);
-		abort();
-	}
-	printf("SELECTED: %d\n", pos);
-
-	/* shuffle */
-	tmp = descr[0];
-	descr[0] = descr[1];
-	descr[1] = tmp;
-	pos = abis_nm_select_newest_sw(descr, rc);
-	if (pos != 0) {
-		printf("Selected the wrong version: %d\n", pos);
-		abort();
-	}
-	printf("SELECTED: %d\n", pos);
-	printf("%s(): OK\n", __func__);
-}
-
-int main(int argc, char **argv)
-{
-	osmo_init_logging(&log_info);
-
-	test_sw_selection();
-
-	return EXIT_SUCCESS;
-}
diff --git a/tests/abis/abis_test.ok b/tests/abis/abis_test.ok
deleted file mode 100644
index 8418cad..0000000
--- a/tests/abis/abis_test.ok
+++ /dev/null
@@ -1,9 +0,0 @@
-len: 26
-file_id:  31 36 38 64 34 37 32 00 
-file_ver: 76 32 30 30 62 31 34 33 64 30 00 
-len: 26
-file_id:  31 36 38 64 34 37 32 00 
-file_ver: 76 32 30 30 62 31 34 33 64 31 00 
-SELECTED: 1
-SELECTED: 0
-test_sw_selection(): OK
diff --git a/tests/bsc-nat-trie/Makefile.am b/tests/bsc-nat-trie/Makefile.am
deleted file mode 100644
index cf8ebaf..0000000
--- a/tests/bsc-nat-trie/Makefile.am
+++ /dev/null
@@ -1,17 +0,0 @@
-AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include
-AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOSCCP_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(COVERAGE_CFLAGS)
-AM_LDFLAGS = $(COVERAGE_LDFLAGS)
-
-EXTRA_DIST = bsc_nat_trie_test.ok prefixes.csv
-
-noinst_PROGRAMS = bsc_nat_trie_test
-
-bsc_nat_trie_test_SOURCES = bsc_nat_trie_test.c \
-			$(top_srcdir)/src/osmo-bsc_nat/bsc_nat_rewrite_trie.c
-bsc_nat_trie_test_LDADD = $(top_builddir)/src/libbsc/libbsc.a \
-			$(top_builddir)/src/libmgcp/libmgcp.a \
-			$(top_builddir)/src/libtrau/libtrau.a \
-			$(top_builddir)/src/libcommon/libcommon.a \
-			$(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) -lrt \
-			$(LIBOSMOSCCP_LIBS) $(LIBOSMOVTY_LIBS) \
-			$(LIBOSMOABIS_LIBS)
diff --git a/tests/bsc-nat-trie/bsc_nat_trie_test.c b/tests/bsc-nat-trie/bsc_nat_trie_test.c
deleted file mode 100644
index 4b4df2f..0000000
--- a/tests/bsc-nat-trie/bsc_nat_trie_test.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * (C) 2013 by On-Waves
- * (C) 2013 by Holger Hans Peter Freyther <zecke@selfish.org>
- * 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/nat_rewrite_trie.h>
-#include <openbsc/debug.h>
-
-#include <osmocom/core/application.h>
-#include <osmocom/core/backtrace.h>
-#include <osmocom/core/talloc.h>
-#include <osmocom/core/utils.h>
-
-#include <string.h>
-
-int main(int argc, char **argv)
-{
-	struct nat_rewrite *trie;
-
-	osmo_init_logging(&log_info);
-
-	printf("Testing the trie\n");
-
-	trie = nat_rewrite_parse(NULL, "prefixes.csv");
-	OSMO_ASSERT(trie);
-
-	/* verify that it has been parsed */
-	OSMO_ASSERT(trie->prefixes == 17);
-	printf("Dumping the internal trie\n");
-	nat_rewrite_dump(trie);
-
-	/* now do the matching... */
-	OSMO_ASSERT(!nat_rewrite_lookup(trie, ""));
-	OSMO_ASSERT(!nat_rewrite_lookup(trie, "2"));
-
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "1")->rewrite, "1") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "12")->rewrite, "2") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "123")->rewrite, "3") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "1234")->rewrite, "4") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "12345")->rewrite, "5") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "123456")->rewrite, "6") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "1234567")->rewrite, "7") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "12345678")->rewrite, "8") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "123456789")->rewrite, "9") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "1234567890")->rewrite, "10") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "13")->rewrite, "11") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "14")->rewrite, "12") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "15")->rewrite, "13") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "16")->rewrite, "14") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "823455")->rewrite, "15") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "82")->rewrite, "16") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "+49123445")->rewrite, "17") == 0);
-
-	/* match a prefix */
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "121")->rewrite, "2") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "1292323")->rewrite, "2") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "12345678901")->rewrite, "10") == 0);
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "160")->rewrite, "14") == 0);
-
-	OSMO_ASSERT(strcmp(nat_rewrite_lookup(trie, "12345678901123452123123")->rewrite, "10") == 0);
-
-	/* invalid input */
-	OSMO_ASSERT(!nat_rewrite_lookup(trie, "12abc"));
-
-	talloc_free(trie);
-
-	trie = nat_rewrite_parse(NULL, "does_not_exist.csv");
-	OSMO_ASSERT(!trie);
-
-	printf("Done with the tests.\n");
-	return 0;
-}
diff --git a/tests/bsc-nat-trie/bsc_nat_trie_test.ok b/tests/bsc-nat-trie/bsc_nat_trie_test.ok
deleted file mode 100644
index 4d4cc99..0000000
--- a/tests/bsc-nat-trie/bsc_nat_trie_test.ok
+++ /dev/null
@@ -1,20 +0,0 @@
-Testing the trie
-Dumping the internal trie
-1,1
-12,2
-123,3
-1234,4
-12345,5
-123456,6
-1234567,7
-12345678,8
-123456789,9
-1234567890,10
-13,11
-14,12
-15,13
-16,14
-82,16
-823455,15
-+49123,17
-Done with the tests.
diff --git a/tests/bsc-nat-trie/prefixes.csv b/tests/bsc-nat-trie/prefixes.csv
deleted file mode 100644
index 35485b1..0000000
--- a/tests/bsc-nat-trie/prefixes.csv
+++ /dev/null
@@ -1,25 +0,0 @@
-1,1
-12,2
-123,3
-1234,4
-12345,5
-123456,6
-1234567,7
-12345678,8
-123456789,9
-1234567890,10
-13,11
-14,12
-15,13
-16,14
-823455,15
-82,16
-+49123,17
-1ABC,18
-12345678901234567890,19
-,20
-14A,21
-124,324324324234
-1234567890,10
-no line
-99,
diff --git a/tests/bsc-nat/Makefile.am b/tests/bsc-nat/Makefile.am
deleted file mode 100644
index 40be3a3..0000000
--- a/tests/bsc-nat/Makefile.am
+++ /dev/null
@@ -1,59 +0,0 @@
-AM_CPPFLAGS = \
-	$(all_includes) \
-	-I$(top_srcdir)/include \
-	$(NULL)
-
-AM_CFLAGS = \
-	-Wall \
-	-ggdb3 \
-	$(LIBOSMOCORE_CFLAGS) \
-	$(LIBOSMOGSM_CFLAGS) \
-	$(LIBOSMOCTRL_LIBS) \
-	$(LIBOSMOSCCP_CFLAGS) \
-	$(LIBOSMOABIS_CFLAGS) \
-	$(LIBOSMONETIF_CFLAGS) \
-	$(COVERAGE_CFLAGS) \
-	$(NULL)
-
-AM_LDFLAGS = \
-	$(COVERAGE_LDFLAGS) \
-	$(NULL)
-
-EXTRA_DIST = \
-	bsc_nat_test.ok \
-	bsc_data.c \
-	barr.cfg \
-	barr_dup.cfg \
-	prefixes.csv \
-	$(NULL)
-
-noinst_PROGRAMS = \
-	bsc_nat_test \
-	$(NULL)
-
-bsc_nat_test_SOURCES = \
-	bsc_nat_test.c \
-	$(top_srcdir)/src/osmo-bsc_nat/bsc_filter.c \
-	$(top_srcdir)/src/osmo-bsc_nat/bsc_sccp.c \
-	$(top_srcdir)/src/osmo-bsc_nat/bsc_nat_utils.c \
-	$(top_srcdir)/src/osmo-bsc_nat/bsc_nat_rewrite.c \
-	$(top_srcdir)/src/osmo-bsc_nat/bsc_nat_rewrite_trie.c \
-	$(top_srcdir)/src/osmo-bsc_nat/bsc_mgcp_utils.c \
-	$(top_srcdir)/src/osmo-bsc_nat/bsc_nat_filter.c
-
-bsc_nat_test_LDADD = \
-	$(top_builddir)/src/libfilter/libfilter.a \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
-	$(top_builddir)/src/libmgcp/libmgcp.a \
-	$(top_builddir)/src/libtrau/libtrau.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
-	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBOSMOSCCP_LIBS) \
-	$(LIBOSMOVTY_LIBS) \
-	$(LIBOSMOABIS_LIBS) \
-	$(LIBOSMONETIF_LIBS) \
-	$(LIBOSMOCTRL_LIBS) \
-	-lrt \
-	$(NULL)
diff --git a/tests/bsc-nat/barr.cfg b/tests/bsc-nat/barr.cfg
deleted file mode 100644
index a9a4a2b..0000000
--- a/tests/bsc-nat/barr.cfg
+++ /dev/null
@@ -1,12 +0,0 @@
-12123124:3:2:
-12123123:3:1:
-12123128:3:6:
-12123125:3:3:
-12123127:3:5:
-12123126:3:4:
-12123120:3:4:
-12123119:3:4:
-12123118:3:4:
-12123117:3:4:
-12123116:3:4:
-12123115:3:4:
diff --git a/tests/bsc-nat/barr_dup.cfg b/tests/bsc-nat/barr_dup.cfg
deleted file mode 100644
index ea94631..0000000
--- a/tests/bsc-nat/barr_dup.cfg
+++ /dev/null
@@ -1,2 +0,0 @@
-12123124:3:2:
-12123124:3:2:
diff --git a/tests/bsc-nat/bsc_data.c b/tests/bsc-nat/bsc_data.c
deleted file mode 100644
index 3a9f1da..0000000
--- a/tests/bsc-nat/bsc_data.c
+++ /dev/null
@@ -1,275 +0,0 @@
-/* test data */
-
-/* BSC -> MSC, CR */
-static const uint8_t bsc_cr[] = {
-0x00, 0x2e, 0xfd,
-0x01, 0x00, 0x00, 0x15, 0x02, 0x02, 0x04, 0x02,
-0x42, 0xfe, 0x0f, 0x21, 0x00, 0x1f, 0x57, 0x05,
-0x08, 0x00, 0x72, 0xf4, 0x80, 0x20, 0x1c, 0xc3,
-0x51, 0x17, 0x12, 0x05, 0x08, 0x20, 0x72, 0xf4,
-0x90, 0x20, 0x1d, 0x50, 0x08, 0x29, 0x47, 0x80,
-0x00, 0x00, 0x00, 0x00, 0x80, 0x00 };
-
-static const uint8_t bsc_cr_patched[] = {
-0x00, 0x2e, 0xfd,
-0x01, 0x00, 0x00, 0x05, 0x02, 0x02, 0x04, 0x02,
-0x42, 0xfe, 0x0f, 0x21, 0x00, 0x1f, 0x57, 0x05,
-0x08, 0x00, 0x72, 0xf4, 0x80, 0x20, 0x1c, 0xc3,
-0x51, 0x17, 0x12, 0x05, 0x08, 0x20, 0x72, 0xf4,
-0x90, 0x20, 0x1d, 0x50, 0x08, 0x29, 0x47, 0x80,
-0x00, 0x00, 0x00, 0x00, 0x80, 0x00 };
-
-/* CC, MSC -> BSC */
-static const uint8_t msc_cc[] = {
-0x00, 0x0a, 0xfd,
-0x02, 0x00, 0x00, 0x05, 0x01, 0x1f, 0xe4, 0x02,
-0x01, 0x00 };
-static const uint8_t msc_cc_patched[] = {
-0x00, 0x0a, 0xfd,
-0x02, 0x00, 0x00, 0x15, 0x01, 0x1f, 0xe4, 0x02,
-0x01, 0x00 };
-
-/* Classmark, BSC -> MSC */
-static const uint8_t bsc_dtap[] = {
-0x00, 0x17, 0xfd,
-0x06, 0x01, 0x1f, 0xe4, 0x00, 0x01, 0x10, 0x00,
-0x0e, 0x54, 0x12, 0x03, 0x50, 0x18, 0x93, 0x13,
-0x06, 0x60, 0x14, 0x45, 0x00, 0x81, 0x00 };
-
-static const uint8_t bsc_dtap_patched[] = {
-0x00, 0x17, 0xfd,
-0x06, 0x01, 0x1f, 0xe4, 0x00, 0x01, 0x10, 0x00,
-0x0e, 0x54, 0x12, 0x03, 0x50, 0x18, 0x93, 0x13,
-0x06, 0x60, 0x14, 0x45, 0x00, 0x81, 0x00 };
-
-/* Clear command, MSC -> BSC */
-static const uint8_t msc_dtap[] = {
-0x00, 0x0d, 0xfd,
-0x06, 0x00, 0x00, 0x05, 0x00, 0x01, 0x06, 0x00,
-0x04, 0x20, 0x04, 0x01, 0x09 };
-static const uint8_t msc_dtap_patched[] = {
-0x00, 0x0d, 0xfd,
-0x06, 0x00, 0x00, 0x15, 0x00, 0x01, 0x06, 0x00,
-0x04, 0x20, 0x04, 0x01, 0x09 };
-
-/*RLSD, MSC -> BSC */
-static const uint8_t msc_rlsd[] = {
-0x00, 0x0a, 0xfd,
-0x04, 0x00, 0x00, 0x05, 0x01, 0x1f, 0xe4, 0x00,
-0x01, 0x00 };
-static const uint8_t msc_rlsd_patched[] = {
-0x00, 0x0a, 0xfd,
-0x04, 0x00, 0x00, 0x15, 0x01, 0x1f, 0xe4, 0x00,
-0x01, 0x00 };
-
-/* RLC, BSC -> MSC */
-static const uint8_t bsc_rlc[] = {
-0x00, 0x07, 0xfd,
-0x05, 0x01, 0x1f, 0xe4, 0x00, 0x00, 0x15 };
-
-static const uint8_t bsc_rlc_patched[] = {
-0x00, 0x07, 0xfd,
-0x05, 0x01, 0x1f, 0xe4, 0x00, 0x00, 0x05 };
-
-
-/* a paging command */
-static const uint8_t paging_by_lac_cmd[] = {
-0x00, 0x22, 0xfd, 0x09,
-0x00, 0x03, 0x07, 0x0b, 0x04, 0x43, 0x02, 0x00,
-0xfe, 0x04, 0x43, 0x5c, 0x00, 0xfe, 0x12, 0x00,
-0x10, 0x52, 0x08, 0x08, 0x29, 0x47, 0x10, 0x02,
-0x01, 0x50, 0x02, 0x30, 0x1a, 0x03, 0x05, 0x20,
-0x15 };
-
-/* an assignment command */
-static const uint8_t ass_cmd[] = {
-0x00, 0x12, 0xfd, 0x06,
-0x00, 0x00, 0x49, 0x00, 0x01, 0x0b, 0x00, 0x09,
-0x01, 0x0b, 0x03, 0x01, 0x0a, 0x11, 0x01, 0x00,
-0x01 };
-
-/* identity response */
-static const uint8_t id_resp[] = {
-0x00, 0x15, 0xfd, 0x06, 0x01, 0x1c, 0xdc,
-0x00, 0x01, 0x0e, 0x01, 0x00, 0x0b, 0x05, 0x59,
-0x08, 0x29, 0x40, 0x21, 0x03, 0x07, 0x48, 0x66,
-0x31
-};
-
-/* sms code msg */
-static const uint8_t smsc_rewrite[] = {
-0x00, 0x30, 0xfd, 0x06, 0x01, 0x13, 0x1e, 0x00,
-0x01, 0x29, 0x01, 0x03, 0x26, 0x09, 0x01, 0x23,
-0x00, 0x0c, 0x00, 0x07, 0x91, 0x36, 0x19, 0x08,
-0x00, 0x10, 0x50, 0x17, 0x21, 0x0c, 0x0f, 0x81,
-0x00, 0x94, 0x51, 0x87, 0x86, 0x78, 0x46, 0xf5,
-0x00, 0x00, 0x09, 0xcc, 0xb7, 0xbd, 0x0c, 0xca,
-0xbf, 0xeb, 0x20
-};
-
-static const uint8_t smsc_rewrite_patched[] = {
-0x00, 0x31, 0xfd, 0x06, 0x01, 0x13, 0x1e, 0x00,
-0x01, 0x2a, 0x01, 0x03, 0x27, 0x09, 0x01, 0x24,
-0x00, 0x0c, 0x00, 0x08, 0x91, 0x66, 0x66, 0x66,
-0x66, 0x66, 0x66, 0xf7, 0x17, 0x01, 0x0c, 0x0f,
-0x81, 0x00, 0x94, 0x51, 0x87, 0x86, 0x78, 0x46,
-0xf5, 0x00, 0x00, 0x09, 0xcc, 0xb7, 0xbd, 0x0c,
-0xca, 0xbf, 0xeb, 0x20
-};
-
-static const uint8_t smsc_rewrite_patched_hdr[] = {
-0x00, 0x30, 0xfd, 0x06, 0x01, 0x13, 0x1e, 0x00,
-0x01, 0x29, 0x01, 0x03, 0x26, 0x09, 0x01, 0x23,
-0x00, 0x0c, 0x00, 0x07, 0x91, 0x36, 0x19, 0x08,
-0x00, 0x10, 0x50, 0x17, 0x01, 0x0c, 0x0f, 0x81,
-0x00, 0x94, 0x51, 0x87, 0x86, 0x78, 0x46, 0xf5,
-0x00, 0x00, 0x09, 0xcc, 0xb7, 0xbd, 0x0c, 0xca,
-0xbf, 0xeb, 0x20
-};
-
-static const uint8_t smsc_rewrite_num_patched[] = {
-0x00, 0x2f, 0xfd, 0x06, 0x01, 0x13, 0x1e, 0x00,
-0x01, 0x28, 0x01, 0x03, 0x25, 0x09, 0x01, 0x22,
-0x00, 0x0c, 0x00, 0x07, 0x91, 0x36, 0x19, 0x08,
-0x00, 0x10, 0x50, 0x16, 0x21, 0x0c, 0x0d, 0x91,
-      0x23, 0x51, 0x87, 0x86, 0x78, 0x46, 0xf5,
-0x00, 0x00, 0x09, 0xcc, 0xb7, 0xbd, 0x0c, 0xca,
-0xbf, 0xeb, 0x20
-};
-
-static const uint8_t smsc_rewrite_num_patched_tp_srr[] = {
-0x00, 0x2f, 0xfd, 0x06, 0x01, 0x13, 0x1e, 0x00,
-0x01, 0x28, 0x01, 0x03, 0x25, 0x09, 0x01, 0x22,
-0x00, 0x0c, 0x00, 0x07, 0x91, 0x36, 0x19, 0x08,
-0x00, 0x10, 0x50, 0x16, 0x01, 0x0c, 0x0d, 0x91,
-      0x23, 0x51, 0x87, 0x86, 0x78, 0x46, 0xf5,
-0x00, 0x00, 0x09, 0xcc, 0xb7, 0xbd, 0x0c, 0xca,
-0xbf, 0xeb, 0x20
-};
-
-/*
- * MGCP messages
- */
-
-/* nothing to patch */
-static const char crcx[] = "CRCX 23265295 8@mgw MGCP 1.0\r\nC: 394b0439fb\r\nL: p:20, a:AMR, nt:IN\r\nM: recvonly\r\n";
-static const char crcx_patched[] = "CRCX 23265295 1e@mgw MGCP 1.0\r\nC: 394b0439fb\r\nL: p:20, a:AMR, nt:IN\r\nM: recvonly\r\n";
-
-
-/* patch the ip and port */
-static const char crcx_resp[] = "200 23265295\r\nI: 1\r\n\r\nv=0\r\nc=IN IP4 172.16.18.2\r\nm=audio 4002 RTP/AVP 98 3\r\na=rtpmap:98 AMR/8000\r\n";
-static const char crcx_resp_patched[] = "200 23265295\r\nI: 1\r\n\r\nv=0\r\nc=IN IP4 10.0.0.1\r\nm=audio 999 RTP/AVP 98 3\r\na=rtpmap:98 AMR/8000\r\na=fmtp:98 mode-set=2\r\n";
-
-/* patch the ip and port */
-static const char mdcx[] = "MDCX 23330829 8@mgw MGCP 1.0\r\nC: 394b0439fb\r\nI: 1\r\nL: p:20, a:AMR, nt:IN\r\nM: recvonly\r\n\r\nv=0\r\no=- 1049380491 0 IN IP4 172.16.18.2\r\ns=-\r\nc=IN IP4 172.16.18.2\r\nt=0 0\r\nm=audio 4410 RTP/AVP 126\r\na=rtpmap:126 AMR/8000/1\r\na=fmtp:126 mode-set=2;start-mode=0\r\na=ptime:20\r\na=recvonly\r\nm=image 4412 udptl t38\r\na=T38FaxVersion:0\r\na=T38MaxBitRate:14400\r\n";
-static const char mdcx_patched[] = "MDCX 23330829 1e@mgw MGCP 1.0\r\nC: 394b0439fb\r\nI: 1\r\nL: p:20, a:AMR, nt:IN\r\nM: recvonly\r\n\r\nv=0\r\no=- 1049380491 0 IN IP4 172.16.18.2\r\ns=-\r\nc=IN IP4 10.0.0.23\r\nt=0 0\r\nm=audio 6666 RTP/AVP 126\r\na=rtpmap:126 AMR/8000/1\r\na=fmtp:126 mode-set=2;start-mode=0\r\na=ptime:20\r\na=recvonly\r\nm=image 4412 udptl t38\r\na=T38FaxVersion:0\r\na=T38MaxBitRate:14400\r\n";
-
-
-static const char mdcx_resp[] = "200 23330829\r\n\r\nv=0\r\nc=IN IP4 172.16.18.2\r\nm=audio 4002 RTP/AVP 98\r\na=rtpmap:98 AMR/8000\r\n";
-static const char mdcx_resp_patched[] = "200 23330829\r\n\r\nv=0\r\nc=IN IP4 10.0.0.23\r\nm=audio 5555 RTP/AVP 98\r\na=rtpmap:98 AMR/8000\r\na=fmtp:98 mode-set=2\r\n";
-
-/* different line ending */
-static const char mdcx_resp2[] = "200 33330829\n\nv=0\nc=IN IP4 172.16.18.2\nm=audio 4002 RTP/AVP 98\na=rtpmap:98 AMR/8000\n";
-static const char mdcx_resp_patched2[] = "200 33330829\n\nv=0\nc=IN IP4 10.0.0.23\nm=audio 5555 RTP/AVP 98\na=rtpmap:98 AMR/8000\na=fmtp:98 mode-set=2\n";
-static const char mdcx_resp_patched2_noamr[] = "200 33330829\n\nv=0\nc=IN IP4 10.0.0.23\nm=audio 5555 RTP/AVP 98\na=rtpmap:98 AMR/8000\n";
-
-struct mgcp_patch_test {
-	const char *orig;
-	const char *patch;
-	const char *ip;
-	const int port;
-	const int payload_type;
-	const int ensure_mode_set;
-};
-
-static const struct mgcp_patch_test mgcp_messages[] = {
-	{
-		.orig = crcx,
-		.patch = crcx_patched,
-		.ip = "0.0.0.0",
-		.port = 2323,
-		.ensure_mode_set = 1,
-	},
-	{
-		.orig = crcx_resp,
-		.patch = crcx_resp_patched,
-		.ip = "10.0.0.1",
-		.port = 999,
-		.payload_type = 98,
-		.ensure_mode_set = 1,
-	},
-	{
-		.orig = mdcx,
-		.patch = mdcx_patched,
-		.ip = "10.0.0.23",
-		.port = 6666,
-		.payload_type = 126,
-		.ensure_mode_set = 1,
-	},
-	{
-		.orig = mdcx_resp,
-		.patch = mdcx_resp_patched,
-		.ip = "10.0.0.23",
-		.port = 5555,
-		.payload_type = 98,
-		.ensure_mode_set = 1,
-	},
-	{
-		.orig = mdcx_resp2,
-		.patch = mdcx_resp_patched2,
-		.ip = "10.0.0.23",
-		.port = 5555,
-		.payload_type = 98,
-		.ensure_mode_set = 1,
-	},
-	{
-		.orig = mdcx_resp2,
-		.patch = mdcx_resp_patched2_noamr,
-		.ip = "10.0.0.23",
-		.port = 5555,
-		.payload_type = 98,
-		.ensure_mode_set = 0,
-	},
-};
-
-/* CC Setup messages */
-static const uint8_t cc_setup_national[] = {
-	0x00, 0x20, 0xfd, 0x06, 0x01, 0x12,
-	0x6d, 0x00, 0x01, 0x19, 0x01, 0x00, 0x16, 0x03,
-	0x05, 0x04, 0x06, 0x60, 0x04, 0x02, 0x00, 0x05,
-	0x81, 0x5e, 0x06, 0x81, 0x10, 0x27, 0x33, 0x63,
-	0x66, 0x15, 0x02, 0x11, 0x01
-};
-
-static const uint8_t cc_setup_national_patched[] = {
-	0x00, 0x21, 0xfd, 0x06, 0x01, 0x12,
-	0x6d, 0x00, 0x01, 0x1a, 0x01, 0x00, 0x17, 0x03,
-	0x05, 0x04, 0x06, 0x60, 0x04, 0x02, 0x00, 0x05,
-	0x81, 0x5e, 0x07, 0x91, 0x94, 0x71, 0x32, 0x33,
-	0x66, 0xf6, 0x15, 0x02, 0x11, 0x01
-};
-
-/* patch the phone number of cc_setup_national_patched */
-static const uint8_t cc_setup_national_patched_patched[] = {
-	0x00, 0x21, 0xfd, 0x06, 0x01, 0x12,
-	0x6d, 0x00, 0x01, 0x1a, 0x01, 0x00, 0x17, 0x03,
-	0x05, 0x04, 0x06, 0x60, 0x04, 0x02, 0x00, 0x05,
-	0x81, 0x5e, 0x07, 0x91, 0x63, 0x71, 0x32, 0x33,
-	0x66, 0xf6, 0x15, 0x02, 0x11, 0x01
-};
-
-static const uint8_t cc_setup_international[] = {
-	0x00, 0x22, 0xfd, 0x06, 0x01, 0x13,
-	0xe7, 0x00, 0x01, 0x1b, 0x01, 0x00, 0x18, 0x03,
-	0x45, 0x04, 0x06, 0x60, 0x04, 0x02, 0x00, 0x05,
-	0x81, 0x5e, 0x08, 0x81, 0x00, 0x94, 0x71, 0x33,
-	0x63, 0x66, 0x03, 0x15, 0x02, 0x11, 0x01
-};
-
-static const uint8_t cc_setup_national_again[] = {
-	0x00, 0x22, 0xfd, 0x06, 0x01, 0x12, 0x6d, 0x00,
-	0x01, 0x1b, 0x01, 0x00, 0x18, 0x03, 0x05, 0x04,
-	0x06, 0x60, 0x04, 0x02, 0x00, 0x05, 0x81, 0x5e,
-	0x08, 0x81, 0x63, 0x94, 0x71, 0x32, 0x33, 0x66,
-	0xf6, 0x15, 0x02, 0x11, 0x01
-};
diff --git a/tests/bsc-nat/bsc_nat_test.c b/tests/bsc-nat/bsc_nat_test.c
deleted file mode 100644
index 2914a01..0000000
--- a/tests/bsc-nat/bsc_nat_test.c
+++ /dev/null
@@ -1,1584 +0,0 @@
-/*
- * BSC NAT Message filtering
- *
- * (C) 2010-2013 by Holger Hans Peter Freyther <zecke@selfish.org>
- * (C) 2010-2013 by On-Waves
- *
- * 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/gsm_data.h>
-#include <openbsc/bsc_nat.h>
-#include <openbsc/bsc_nat_sccp.h>
-#include <openbsc/bsc_msg_filter.h>
-#include <openbsc/nat_rewrite_trie.h>
-
-#include <osmocom/core/application.h>
-#include <osmocom/core/backtrace.h>
-#include <osmocom/core/talloc.h>
-
-#include <osmocom/sccp/sccp.h>
-#include <osmocom/gsm/protocol/gsm_08_08.h>
-
-#include <stdio.h>
-
-/* test messages for ipa */
-static uint8_t ipa_id[] = {
-	0x00, 0x01, 0xfe, 0x06,
-};
-
-/* SCCP messages are below */
-static uint8_t gsm_reset[] = {
-	0x00, 0x12, 0xfd,
-	0x09, 0x00, 0x03, 0x05, 0x07, 0x02, 0x42, 0xfe,
-	0x02, 0x42, 0xfe, 0x06, 0x00, 0x04, 0x30, 0x04,
-	0x01, 0x20,
-};
-
-static const uint8_t gsm_reset_ack[] = {
-	0x00, 0x13, 0xfd,
-	0x09, 0x00, 0x03, 0x07, 0x0b, 0x04, 0x43, 0x01,
-	0x00, 0xfe, 0x04, 0x43, 0x5c, 0x00, 0xfe, 0x03,
-	0x00, 0x01, 0x31,
-};
-
-static const uint8_t gsm_paging[] = {
-	0x00, 0x20, 0xfd,
-	0x09, 0x00, 0x03, 0x07, 0x0b, 0x04, 0x43, 0x01,
-	0x00, 0xfe, 0x04, 0x43, 0x5c, 0x00, 0xfe, 0x10,
-	0x00, 0x0e, 0x52, 0x08, 0x08, 0x29, 0x47, 0x10,
-	0x02, 0x01, 0x31, 0x97, 0x61, 0x1a, 0x01, 0x06,
-};
-
-/* BSC -> MSC connection open */
-static const uint8_t bssmap_cr[] = {
-	0x00, 0x2c, 0xfd,
-	0x01, 0x01, 0x02, 0x03, 0x02, 0x02, 0x04, 0x02,
-	0x42, 0xfe, 0x0f, 0x1f, 0x00, 0x1d, 0x57, 0x05,
-	0x08, 0x00, 0x72, 0xf4, 0x80, 0x20, 0x12, 0xc3,
-	0x50, 0x17, 0x10, 0x05, 0x24, 0x11, 0x03, 0x33,
-	0x19, 0xa2, 0x08, 0x29, 0x47, 0x10, 0x02, 0x01,
-	0x31, 0x97, 0x61, 0x00
-};
-
-/* MSC -> BSC connection confirm */
-static const uint8_t bssmap_cc[] = {
-	0x00, 0x0a, 0xfd,
-	0x02, 0x01, 0x02, 0x03, 0x00, 0x00, 0x03, 0x02, 0x01, 0x00,
-};
-
-/* MSC -> BSC released */
-static const uint8_t bssmap_released[] = {
-	0x00, 0x0e, 0xfd,
-	0x04, 0x00, 0x00, 0x03, 0x01, 0x02, 0x03, 0x00, 0x01, 0x0f,
-	0x02, 0x23, 0x42, 0x00,
-};
-
-/* BSC -> MSC released */
-static const uint8_t bssmap_release_complete[] = {
-	0x00, 0x07, 0xfd,
-	0x05, 0x01, 0x02, 0x03, 0x00, 0x00, 0x03
-};
-
-/* both directions IT timer */
-static const uint8_t connnection_it[] = {
-	0x00, 0x0b, 0xfd,
-	0x10, 0x01, 0x02, 0x03, 0x01, 0x02, 0x03,
-	0x00, 0x00, 0x00, 0x00,
-};
-
-/* error in both directions */
-static const uint8_t proto_error[] = {
-	0x00, 0x05, 0xfd,
-	0x0f, 0x22, 0x33, 0x44, 0x00,
-};
-
-/* MGCP wrap... */
-static const uint8_t mgcp_msg[] = {
-	0x00, 0x03, 0xfc,
-	0x20, 0x20, 0x20,
-};
-
-/* location updating request */
-static const uint8_t bss_lu[] = {
-	0x00, 0x2e, 0xfd,
-	0x01, 0x91, 0x45, 0x14, 0x02, 0x02, 0x04, 0x02,
-	0x42, 0xfe, 0x0f, 0x21, 0x00, 0x1f, 0x57, 0x05,
-	0x08, 0x00, 0x72, 0xf4, 0x80, 0x20, 0x14, 0xc3,
-	0x50, 0x17, 0x12, 0x05, 0x08, 0x70, 0x72, 0xf4,
-	0x80, 0xff, 0xfe, 0x30, 0x08, 0x29, 0x44, 0x50,
-	0x12, 0x03, 0x24, 0x01, 0x95, 0x00
-};
-
-/* paging response */
-static const uint8_t pag_resp[] = {
-	0x00, 0x2c, 0xfd, 0x01, 0xe5, 0x68,
-	0x14, 0x02, 0x02, 0x04, 0x02, 0x42, 0xfe, 0x0f,
-	0x1f, 0x00, 0x1d, 0x57, 0x05, 0x08, 0x00, 0x72,
-	0xf4, 0x80, 0x20, 0x16, 0xc3, 0x50, 0x17, 0x10,
-	0x06, 0x27, 0x01, 0x03, 0x30, 0x18, 0x96, 0x08,
-	0x29, 0x26, 0x30, 0x32, 0x11, 0x42, 0x01, 0x19,
-	0x00
-};
-
-struct filter_result {
-	const uint8_t *data;
-	const uint16_t length;
-	const int dir;
-	const int result;
-};
-
-static const struct filter_result results[] = {
-	{
-		.data = ipa_id,
-		.length = ARRAY_SIZE(ipa_id),
-		.dir = DIR_MSC,
-		.result = 1,
-	},
-	{
-		.data = gsm_reset,
-		.length = ARRAY_SIZE(gsm_reset),
-		.dir = DIR_MSC,
-		.result = 1,
-	},
-	{
-		.data = gsm_reset_ack,
-		.length = ARRAY_SIZE(gsm_reset_ack),
-		.dir = DIR_BSC,
-		.result = 1,
-	},
-	{
-		.data = gsm_paging,
-		.length = ARRAY_SIZE(gsm_paging),
-		.dir = DIR_BSC,
-		.result = 0,
-	},
-	{
-		.data = bssmap_cr,
-		.length = ARRAY_SIZE(bssmap_cr),
-		.dir = DIR_MSC,
-		.result = 0,
-	},
-	{
-		.data = bssmap_cc,
-		.length = ARRAY_SIZE(bssmap_cc),
-		.dir = DIR_BSC,
-		.result = 0,
-	},
-	{
-		.data = bssmap_released,
-		.length = ARRAY_SIZE(bssmap_released),
-		.dir = DIR_MSC,
-		.result = 0,
-	},
-	{
-		.data = bssmap_release_complete,
-		.length = ARRAY_SIZE(bssmap_release_complete),
-		.dir = DIR_BSC,
-		.result = 0,
-	},
-	{
-		.data = mgcp_msg,
-		.length = ARRAY_SIZE(mgcp_msg),
-		.dir = DIR_MSC,
-		.result = 0,
-	},
-	{
-		.data = connnection_it,
-		.length = ARRAY_SIZE(connnection_it),
-		.dir = DIR_BSC,
-		.result = 0,
-	},
-	{
-		.data = connnection_it,
-		.length = ARRAY_SIZE(connnection_it),
-		.dir = DIR_MSC,
-		.result = 0,
-	},
-	{
-		.data = proto_error,
-		.length = ARRAY_SIZE(proto_error),
-		.dir = DIR_BSC,
-		.result = 0,
-	},
-	{
-		.data = proto_error,
-		.length = ARRAY_SIZE(proto_error),
-		.dir = DIR_MSC,
-		.result = 0,
-	},
-
-};
-
-static void test_filter(void)
-{
-	int i;
-
-
-	/* start testinh with proper messages */
-	printf("Testing BSS Filtering.\n");
-	for (i = 0; i < ARRAY_SIZE(results); ++i) {
-		int result;
-		struct bsc_nat_parsed *parsed;
-		struct msgb *msg = msgb_alloc(4096, "test-message");
-
-		printf("Going to test item: %d\n", i);
-		memcpy(msg->data, results[i].data, results[i].length);
-		msg->l2h = msgb_put(msg, results[i].length);
-
-		parsed = bsc_nat_parse(msg);
-		if (!parsed) {
-			printf("FAIL: Failed to parse the message\n");
-			continue;
-		}
-
-		result = bsc_nat_filter_ipa(results[i].dir, msg, parsed);
-		if (result != results[i].result) {
-			printf("FAIL: Not the expected result got: %d wanted: %d\n",
-				result, results[i].result);
-		}
-
-		msgb_free(msg);
-	}
-}
-
-#include "bsc_data.c"
-
-static void copy_to_msg(struct msgb *msg, const uint8_t *data, unsigned int length)
-{
-	msgb_reset(msg);
-	msg->l2h = msgb_put(msg, length);
-	memcpy(msg->l2h, data, msgb_l2len(msg));
-}
-
-static void verify_msg(struct msgb *out, const uint8_t *ref, int ref_len)
-{
-	if (out->len != ref_len) {
-		printf("FAIL: The size should match: %d vs. %d\n",
-			out->len, ref_len);
-		printf("%s\n", osmo_hexdump(out->data, out->len));
-		printf("Wanted\n");
-		printf("%s\n", osmo_hexdump(ref, ref_len));
-		abort();
-	}
-
-	if (memcmp(out->data, ref, out->len) != 0) {
-		printf("FAIL: the data should be changed.\n");
-		printf("%s\n", osmo_hexdump(out->data, out->len));
-		printf("Wanted\n");
-		printf("%s\n", osmo_hexdump(ref, ref_len));
-		abort();
-	}
-}
-
-
-#define VERIFY(con_found, con, msg, ver, str) \
-	if (!con_found) {						\
-		printf("Failed to find connection.\n");			\
-		abort();						\
-	}								\
-	if (con_found->bsc != con) {					\
-		printf("Got connection of the wrong BSC: %d\n",		\
-			con_found->bsc->cfg->nr);			\
-		abort();						\
-	}								\
-	if (memcmp(msg->data, ver, sizeof(ver)) != 0) { \
-		printf("Failed to patch the %s msg.\n", str); 		\
-		abort(); \
-	}
-
-/* test conn tracking once */
-static void test_contrack()
-{
-	struct bsc_nat *nat;
-	struct bsc_connection *con;
-	struct nat_sccp_connection *con_found;
-	struct nat_sccp_connection *rc_con;
-	struct bsc_nat_parsed *parsed;
-	struct msgb *msg;
-
-	printf("Testing connection tracking.\n");
-	nat = bsc_nat_alloc();
-	con = bsc_connection_alloc(nat);
-	con->cfg = bsc_config_alloc(nat, "foo", 0);
-	bsc_config_add_lac(con->cfg, 23);
-	bsc_config_add_lac(con->cfg, 49);
-	bsc_config_add_lac(con->cfg, 42);
-	bsc_config_del_lac(con->cfg, 49);
-	bsc_config_add_lac(con->cfg, 1111);
-	msg = msgb_alloc(4096, "test");
-
-	/* 1.) create a connection */
-	copy_to_msg(msg, bsc_cr, sizeof(bsc_cr));
-	parsed = bsc_nat_parse(msg);
-	con_found = patch_sccp_src_ref_to_msc(msg, parsed, con);
-	if (con_found != NULL) {
-		printf("Con should not exist realref(%u)\n",
-		       sccp_src_ref_to_int(&con_found->real_ref));
-		abort();
-	}
-	rc_con = create_sccp_src_ref(con, parsed);
-	if (!rc_con) {
-		printf("Failed to create a ref\n");
-		abort();
-	}
-	con_found = patch_sccp_src_ref_to_msc(msg, parsed, con);
-	if (!con_found) {
-		printf("Failed to find connection.\n");
-		abort();
-	}
-	if (con_found->bsc != con) {
-		printf("Got connection of the wrong BSC: %d\n",
-			con_found->bsc->cfg->nr);
-		abort();
-	}
-	if (con_found != rc_con) {
-		printf("Failed to find the right connection.\n");
-		abort();
-	}
-	if (memcmp(msg->data, bsc_cr_patched, sizeof(bsc_cr_patched)) != 0) {
-		printf("Failed to patch the BSC CR msg.\n");
-		abort();
-	}
-	talloc_free(parsed);
-
-	/* 2.) get the cc */
-	copy_to_msg(msg, msc_cc, sizeof(msc_cc));
-	parsed = bsc_nat_parse(msg);
-	con_found = patch_sccp_src_ref_to_bsc(msg, parsed, nat);
-	VERIFY(con_found, con, msg, msc_cc_patched, "MSC CC");
-	if (update_sccp_src_ref(con_found, parsed) != 0) {
-		printf("Failed to update the SCCP con.\n");
-		abort();
-	}
-
-	/* 3.) send some data */
-	copy_to_msg(msg, bsc_dtap, sizeof(bsc_dtap));
-	parsed = bsc_nat_parse(msg);
-	con_found = patch_sccp_src_ref_to_msc(msg, parsed, con);
-	VERIFY(con_found, con, msg, bsc_dtap_patched, "BSC DTAP");
-
-	/* 4.) receive some data */
-	copy_to_msg(msg, msc_dtap, sizeof(msc_dtap));
-	parsed = bsc_nat_parse(msg);
-	con_found = patch_sccp_src_ref_to_bsc(msg, parsed, nat);
-	VERIFY(con_found, con, msg, msc_dtap_patched, "MSC DTAP");
-
-	/* 5.) close the connection */
-	copy_to_msg(msg, msc_rlsd, sizeof(msc_rlsd));
-	parsed = bsc_nat_parse(msg);
-	con_found = patch_sccp_src_ref_to_bsc(msg, parsed, nat);
-	VERIFY(con_found, con, msg, msc_rlsd_patched, "MSC RLSD");
-
-	/* 6.) confirm the connection close */
-	copy_to_msg(msg, bsc_rlc, sizeof(bsc_rlc));
-	parsed = bsc_nat_parse(msg);
-	con_found = patch_sccp_src_ref_to_msc(msg, parsed, con);
-	if (!con_found) {
-		printf("Failed to find connection.\n");
-		abort();
-	}
-	if (con_found->bsc != con) {
-		printf("Got connection of the wrong BSC: %d\n",
-			con_found->bsc->cfg->nr);
-		abort();
-	}
-	if (memcmp(msg->data, bsc_rlc_patched, sizeof(bsc_rlc_patched)) != 0) {
-		printf("Failed to patch the BSC CR msg.\n");
-		abort();
-	}
-	remove_sccp_src_ref(con, msg, parsed);
-	talloc_free(parsed);
-
-	copy_to_msg(msg, bsc_rlc, sizeof(bsc_rlc));
-	parsed = bsc_nat_parse(msg);
-	con_found = patch_sccp_src_ref_to_msc(msg, parsed, con);
-
-	/* verify that it is gone */
-	if (con_found != NULL) {
-		printf("Con should not exist real_ref(%u)\n",
-		       sccp_src_ref_to_int(&con_found->real_ref));
-		abort();
-	}
-	talloc_free(parsed);
-
-
-	bsc_config_free(con->cfg);
-	bsc_nat_free(nat);
-	msgb_free(msg);
-}
-
-static void test_paging(void)
-{
-	struct bsc_nat *nat;
-	struct bsc_connection *con;
-	struct bsc_config *cfg;
-
-	printf("Testing paging by lac.\n");
-
-	nat = bsc_nat_alloc();
-	con = bsc_connection_alloc(nat);
-	cfg = bsc_config_alloc(nat, "unknown", 0);
-	con->cfg = cfg;
-	bsc_config_add_lac(cfg, 23);
-	con->authenticated = 1;
-	llist_add(&con->list_entry, &nat->bsc_connections);
-
-	/* Test it by not finding it */
-	if (bsc_config_handles_lac(cfg, 8213) != 0) {
-		printf("Should not be handled.\n");
-		abort();
-	}
-
-	/* Test by finding it */
-	bsc_config_del_lac(cfg, 23);
-	bsc_config_add_lac(cfg, 8213);
-	if (bsc_config_handles_lac(cfg, 8213) == 0) {
-		printf("Should have found it.\n");
-		abort();
-	}
-
-	bsc_nat_free(nat);
-}
-
-static void test_mgcp_allocations(void)
-{
-#if 0
-	struct bsc_connection *bsc;
-	struct bsc_nat *nat;
-	struct nat_sccp_connection con;
-	int i, j, multiplex;
-
-	printf("Testing MGCP.\n");
-	memset(&con, 0, sizeof(con));
-
-	nat = bsc_nat_alloc();
-	nat->bsc_endpoints = talloc_zero_array(nat,
-					       struct bsc_endpoint,
-					       65);
-	nat->mgcp_cfg = mgcp_config_alloc();
-	nat->mgcp_cfg->trunk.number_endpoints = 64;
-
-	bsc = bsc_connection_alloc(nat);
-	bsc->cfg = bsc_config_alloc(nat, "foo", 0);
-	bsc->cfg->max_endpoints = 60;
-	bsc_config_add_lac(bsc->cfg, 2323);
-	bsc->last_endpoint = 0x22;
-	con.bsc = bsc;
-
-	bsc_init_endps_if_needed(bsc);
-
-	i  = 1;
-	do {
-		if (bsc_assign_endpoint(bsc, &con) != 0) {
-			printf("failed to allocate... on iteration %d\n", i);
-			break;
-		}
-		++i;
-	} while(1);
-
-	multiplex = bsc_mgcp_nr_multiplexes(bsc->cfg->max_endpoints);
-	for (i = 0; i < multiplex; ++i) {
-		for (j = 0; j < 32; ++j)
-			printf("%d", bsc->_endpoint_status[i*32 + j]);
-		printf(": %d of %d\n", i*32 + 32, 32 * 8);
-	}
-#endif
-}
-
-static void test_mgcp_ass_tracking(void)
-{
-	struct bsc_connection *bsc;
-	struct bsc_nat *nat;
-	struct nat_sccp_connection con;
-	struct bsc_nat_parsed *parsed;
-	struct msgb *msg;
-
-	printf("Testing MGCP.\n");
-	memset(&con, 0, sizeof(con));
-
-	nat = bsc_nat_alloc();
-	nat->bsc_endpoints = talloc_zero_array(nat,
-					       struct bsc_endpoint,
-					       33);
-	nat->mgcp_cfg = mgcp_config_alloc();
-	nat->mgcp_cfg->trunk.number_endpoints = 64;
-	mgcp_endpoints_allocate(&nat->mgcp_cfg->trunk);
-
-	bsc = bsc_connection_alloc(nat);
-	bsc->cfg = bsc_config_alloc(nat, "foo", 0);
-	bsc_config_add_lac(bsc->cfg, 2323);
-	bsc->last_endpoint = 0x1e;
-	con.bsc = bsc;
-
-	msg = msgb_alloc(4096, "foo");
-	copy_to_msg(msg, ass_cmd, sizeof(ass_cmd));
-	parsed = bsc_nat_parse(msg);
-
-	if (msg->l2h[16] != 0 ||
-	    msg->l2h[17] != 0x1) {
-		printf("Input is not as expected.. %s 0x%x\n",
-			osmo_hexdump(msg->l2h, msgb_l2len(msg)),
-			msg->l2h[17]);
-		abort();
-	}
-
-	if (bsc_mgcp_assign_patch(&con, msg) != 0) {
-		printf("Failed to handle assignment.\n");
-		abort();
-	}
-
-	if (con.msc_endp != 1) {
-		printf("Timeslot should be 1.\n");
-		abort();
-	}
-
-	if (con.bsc_endp != 0x1) {
-		printf("Assigned timeslot should have been 1.\n");
-		abort();
-	}
-	if (con.bsc->_endpoint_status[0x1] != 1) {
-		printf("The status on the BSC is wrong.\n");
-		abort();
-	}
-
-	int multiplex, timeslot;
-	mgcp_endpoint_to_timeslot(0x1, &multiplex, &timeslot);
-
-	uint16_t cic = htons(timeslot & 0x1f);
-	if (memcmp(&cic, &msg->l2h[16], sizeof(cic)) != 0) {
-		printf("Message was not patched properly\n");
-		printf("data cic: 0x%x %s\n", cic, osmo_hexdump(msg->l2h, msgb_l2len(msg)));
-		abort();
-	}
-
-	talloc_free(parsed);
-
-	bsc_mgcp_dlcx(&con);
-	if (con.bsc_endp != -1 || con.msc_endp != -1 ||
-	    con.bsc->_endpoint_status[1] != 0 || con.bsc->last_endpoint != 0x1) {
-		printf("Clearing should remove the mapping.\n");
-		abort();
-	}
-
-	bsc_config_free(bsc->cfg);
-	bsc_nat_free(nat);
-}
-
-/* test the code to find a given connection */
-static void test_mgcp_find(void)
-{
-	struct bsc_nat *nat;
-	struct bsc_connection *con;
-	struct nat_sccp_connection *sccp_con;
-
-	printf("Testing finding of a BSC Connection\n");
-
-	nat = bsc_nat_alloc();
-	con = bsc_connection_alloc(nat);
-	llist_add(&con->list_entry, &nat->bsc_connections);
-
-	sccp_con = talloc_zero(con, struct nat_sccp_connection);
-	sccp_con->msc_endp = 12;
-	sccp_con->bsc_endp = 12;
-	sccp_con->bsc = con;
-	llist_add(&sccp_con->list_entry, &nat->sccp_connections);
-
-	if (bsc_mgcp_find_con(nat, 11) != NULL) {
-		printf("Found the wrong connection.\n");
-		abort();
-	}
-
-	if (bsc_mgcp_find_con(nat, 12) != sccp_con) {
-		printf("Didn't find the connection\n");
-		abort();
-	}
-
-	/* free everything */
-	bsc_nat_free(nat);
-}
-
-static void test_mgcp_rewrite(void)
-{
-	int i;
-	struct msgb *output;
-	printf("Testing rewriting MGCP messages.\n");
-
-	for (i = 0; i < ARRAY_SIZE(mgcp_messages); ++i) {
-		const char *orig = mgcp_messages[i].orig;
-		const char *patc = mgcp_messages[i].patch;
-		const char *ip = mgcp_messages[i].ip;
-		const int port = mgcp_messages[i].port;
-		const int expected_payload_type = mgcp_messages[i].payload_type;
-		const int ensure_mode_set = mgcp_messages[i].ensure_mode_set;
-		int payload_type = -1;
-
-		char *input = strdup(orig);
-
-		output = bsc_mgcp_rewrite(input, strlen(input), 0x1e,
-					  ip, port, -1, &payload_type, ensure_mode_set);
-
-		if (payload_type != -1) {
-			fprintf(stderr, "Found media payload type %d in SDP data\n",
-				payload_type);
-			if (payload_type != expected_payload_type) {
-				printf("Wrong payload type %d (expected %d)\n",
-				       payload_type, expected_payload_type);
-				abort();
-			}
-		}
-
-		if (msgb_l2len(output) != strlen(patc)) {
-			printf("Wrong sizes for test: %d  %u != %zu != %zu\n", i, msgb_l2len(output), strlen(patc), strlen(orig));
-			printf("String '%s' vs '%s'\n", (const char *) output->l2h, patc);
-			abort();
-		}
-
-		if (memcmp(output->l2h, patc, msgb_l2len(output)) != 0) {
-			printf("Broken on %d msg: '%s'\n", i, (const char *) output->l2h);
-			abort();
-		}
-
-		msgb_free(output);
-		free(input);
-	}
-}
-
-static void test_mgcp_parse(void)
-{
-	int code, ci;
-	char transaction[60];
-
-	printf("Testing MGCP response parsing.\n");
-
-	if (bsc_mgcp_parse_response(crcx_resp, &code, transaction) != 0) {
-		printf("Failed to parse CRCX resp.\n");
-		abort();
-	}
-
-	if (code != 200) {
-		printf("Failed to parse the CODE properly. Got: %d\n", code);
-		abort();
-	}
-
-	if (strcmp(transaction, "23265295") != 0) {
-		printf("Failed to parse transaction id: '%s'\n", transaction);
-		abort();
-	}
-
-	ci = bsc_mgcp_extract_ci(crcx_resp);
-	if (ci != 1) {
-		printf("Failed to parse the CI. Got: %d\n", ci);
-		abort();
-	}
-}
-
-struct cr_filter {
-	const uint8_t *data;
-	int length;
-	int result;
-	int contype;
-
-	const char *bsc_imsi_allow;
-	const char *bsc_imsi_deny;
-	const char *nat_imsi_deny;
-	int nat_cm_reject_cause;
-	int nat_lu_reject_cause;
-	int bsc_cm_reject_cause;
-	int bsc_lu_reject_cause;
-	int want_cm_reject_cause;
-	int want_lu_reject_cause;
-};
-
-static struct cr_filter cr_filter[] = {
-	{
-		.data = bssmap_cr,
-		.length = sizeof(bssmap_cr),
-		.result = 1,
-		.contype = FLT_CON_TYPE_CM_SERV_REQ,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = 1,
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		.data = pag_resp,
-		.length = sizeof(pag_resp),
-		.result = 1,
-		.contype = FLT_CON_TYPE_PAG_RESP,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		/* nat deny is before blank/null BSC */
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = -3,
-		.nat_imsi_deny = "[0-9]*",
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		/* BSC allow is before NAT deny */
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = 1,
-		.nat_imsi_deny = "[0-9]*",
-		.bsc_imsi_allow = "2440[0-9]*",
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		/* BSC allow is before NAT deny */
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = 1,
-		.bsc_imsi_allow = "[0-9]*",
-		.nat_imsi_deny = "[0-9]*",
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		/* filter as deny is first */
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = 1,
-		.bsc_imsi_deny = "[0-9]*",
-		.bsc_imsi_allow = "[0-9]*",
-		.nat_imsi_deny = "[0-9]*",
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		/* deny by nat rule */
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = -3,
-		.bsc_imsi_deny = "000[0-9]*",
-		.nat_imsi_deny = "[0-9]*",
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		/* deny by nat rule */
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = -3,
-		.bsc_imsi_deny = "000[0-9]*",
-		.nat_imsi_deny = "[0-9]*",
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = 0x23,
-		.nat_lu_reject_cause = 0x42,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = 0x42,
-		.want_cm_reject_cause = 0x23,
-	},
-	{
-		/* deny by bsc rule */
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = -2,
-		.bsc_imsi_deny = "[0-9]*",
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.want_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-	},
-	{
-		/* deny by bsc rule */
-		.data = bss_lu,
-		.length = sizeof(bss_lu),
-		.result = -2,
-		.bsc_imsi_deny = "[0-9]*",
-		.contype = FLT_CON_TYPE_LU,
-		.nat_cm_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.nat_lu_reject_cause = GSM48_REJECT_PLMN_NOT_ALLOWED,
-		.bsc_cm_reject_cause = 0x42,
-		.bsc_lu_reject_cause = 0x23,
-		.want_lu_reject_cause = 0x23,
-		.want_cm_reject_cause = 0x42,
-	},
-};
-
-static void test_cr_filter()
-{
-	int i, res, contype;
-	struct msgb *msg = msgb_alloc(4096, "test_cr_filter");
-	struct bsc_nat_parsed *parsed;
-	struct bsc_msg_acc_lst *nat_lst, *bsc_lst;
-	struct bsc_msg_acc_lst_entry *nat_entry, *bsc_entry;
-	struct bsc_filter_reject_cause cause;
-
-	struct bsc_nat *nat = bsc_nat_alloc();
-	struct bsc_connection *bsc = bsc_connection_alloc(nat);
-	bsc->cfg = bsc_config_alloc(nat, "foo", 0);
-	bsc_config_add_lac(bsc->cfg, 1234);
-	bsc->cfg->acc_lst_name = "bsc";
-	nat->acc_lst_name = "nat";
-
-	nat_lst = bsc_msg_acc_lst_get(nat, &nat->access_lists, "nat");
-	bsc_lst = bsc_msg_acc_lst_get(nat, &nat->access_lists, "bsc");
-
-	bsc_entry = bsc_msg_acc_lst_entry_create(bsc_lst);
-	nat_entry = bsc_msg_acc_lst_entry_create(nat_lst);
-
-	/* test the default value as we are going to overwrite it */
-	OSMO_ASSERT(bsc_entry->cm_reject_cause == GSM48_REJECT_PLMN_NOT_ALLOWED);
-	OSMO_ASSERT(bsc_entry->lu_reject_cause == GSM48_REJECT_PLMN_NOT_ALLOWED);
-
-	for (i = 0; i < ARRAY_SIZE(cr_filter); ++i) {
-		char *imsi;
-		msgb_reset(msg);
-		copy_to_msg(msg, cr_filter[i].data, cr_filter[i].length);
-
-		bsc_entry->cm_reject_cause = cr_filter[i].bsc_cm_reject_cause;
-		bsc_entry->lu_reject_cause = cr_filter[i].bsc_lu_reject_cause;
-		nat_entry->cm_reject_cause = cr_filter[i].nat_cm_reject_cause;
-		nat_entry->lu_reject_cause = cr_filter[i].nat_lu_reject_cause;
-
-		if (gsm_parse_reg(nat_entry, &nat_entry->imsi_deny_re, &nat_entry->imsi_deny,
-			      cr_filter[i].nat_imsi_deny ? 1 : 0,
-			      &cr_filter[i].nat_imsi_deny) != 0)
-			abort();
-		if (gsm_parse_reg(bsc_entry, &bsc_entry->imsi_allow_re, &bsc_entry->imsi_allow,
-			      cr_filter[i].bsc_imsi_allow ? 1 : 0,
-			      &cr_filter[i].bsc_imsi_allow) != 0)
-			abort();
-		if (gsm_parse_reg(bsc_entry, &bsc_entry->imsi_deny_re, &bsc_entry->imsi_deny,
-			      cr_filter[i].bsc_imsi_deny ? 1 : 0,
-			      &cr_filter[i].bsc_imsi_deny) != 0)
-			abort();
-
-		parsed = bsc_nat_parse(msg);
-		if (!parsed) {
-			printf("FAIL: Failed to parse the message\n");
-			abort();
-		}
-
-		memset(&cause, 0, sizeof(cause));
-		res = bsc_nat_filter_sccp_cr(bsc, msg, parsed, &contype, &imsi, &cause);
-		if (res != cr_filter[i].result) {
-			printf("FAIL: Wrong result %d for test %d.\n", res, i);
-			abort();
-		}
-
-
-		OSMO_ASSERT(cause.cm_reject_cause == cr_filter[i].want_cm_reject_cause);
-		OSMO_ASSERT(cause.lu_reject_cause == cr_filter[i].want_lu_reject_cause);
-
-		if (contype != cr_filter[i].contype) {
-			printf("FAIL: Wrong contype %d for test %d.\n", res, contype);
-			abort();
-		}
-
-		talloc_steal(parsed, imsi);
-		talloc_free(parsed);
-	}
-
-	msgb_free(msg);
-	bsc_nat_free(nat);
-}
-
-static void test_dt_filter()
-{
-	int i;
-	struct msgb *msg = msgb_alloc(4096, "test_dt_filter");
-	struct bsc_nat_parsed *parsed;
-	struct bsc_filter_reject_cause cause;
-
-	struct bsc_nat *nat = bsc_nat_alloc();
-	struct bsc_connection *bsc = bsc_connection_alloc(nat);
-	struct nat_sccp_connection *con = talloc_zero(0, struct nat_sccp_connection);
-
-	bsc->cfg = bsc_config_alloc(nat, "foo", 0);
-	bsc_config_add_lac(bsc->cfg, 23);
-	con->bsc = bsc;
-
-	msgb_reset(msg);
-	copy_to_msg(msg, id_resp, ARRAY_SIZE(id_resp));
-
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp\n");
-		abort();
-	}
-
-	if (parsed->bssap != BSSAP_MSG_DTAP) {
-		printf("FAIL: It should be dtap\n");
-		abort();
-	}
-
-	/* gsm_type is actually the size of the dtap */
-	if (parsed->gsm_type < msgb_l3len(msg) - 3) {
-		printf("FAIL: Not enough space for the content\n");
-		abort();
-	}
-
-	memset(&cause, 0, sizeof(cause));
-	OSMO_ASSERT(!con->filter_state.imsi);
-	if (bsc_nat_filter_dt(bsc, msg, con, parsed, &cause) != 1) {
-		printf("FAIL: Should have passed..\n");
-		abort();
-	}
-	OSMO_ASSERT(con->filter_state.imsi);
-	OSMO_ASSERT(talloc_parent(con->filter_state.imsi) == con);
-
-	/* just some basic length checking... */
-	for (i = ARRAY_SIZE(id_resp); i >= 0; --i) {
-		msgb_reset(msg);
-		copy_to_msg(msg, id_resp, ARRAY_SIZE(id_resp));
-
-		parsed = bsc_nat_parse(msg);
-		if (!parsed)
-			continue;
-
-		con->filter_state.imsi_checked = 0;
-		memset(&cause, 0, sizeof(cause));
-		bsc_nat_filter_dt(bsc, msg, con, parsed, &cause);
-	}
-
-	msgb_free(msg);
-	bsc_nat_free(nat);
-}
-
-static void test_setup_rewrite()
-{
-	struct msgb *msg = msgb_alloc(4096, "test_dt_filter");
-	struct msgb *out;
-	struct bsc_nat_parsed *parsed;
-	const char *imsi = "27408000001234";
-
-	struct bsc_nat *nat = bsc_nat_alloc();
-
-	/* a fake list */
-	struct osmo_config_list entries;
-	struct osmo_config_entry entry;
-
-	INIT_LLIST_HEAD(&entries.entry);
-	entry.mcc = "274";
-	entry.mnc = "08";
-	entry.option = "^0([1-9])";
-	entry.text = "0049";
-	llist_add_tail(&entry.list, &entries.entry);
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, &entries);
-
-	/* verify that nothing changed */
-	msgb_reset(msg);
-	copy_to_msg(msg, cc_setup_international, ARRAY_SIZE(cc_setup_international));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (msg != out) {
-		printf("FAIL: The message should not have been changed\n");
-		abort();
-	}
-
-	verify_msg(out, cc_setup_international, ARRAY_SIZE(cc_setup_international));
-	talloc_free(parsed);
-
-	/* verify that something in the message changes */
-	msgb_reset(msg);
-	copy_to_msg(msg, cc_setup_national, ARRAY_SIZE(cc_setup_national));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (!out) {
-		printf("FAIL: A new message should be created.\n");
-		abort();
-	}
-
-	if (msg == out) {
-		printf("FAIL: The message should have changed\n");
-		abort();
-	}
-
-	verify_msg(out, cc_setup_national_patched, ARRAY_SIZE(cc_setup_national_patched));
-	msgb_free(out);
-
-	/* Make sure that a wildcard is matching */
-	entry.mnc = "*";
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, &entries);
-	msg = msgb_alloc(4096, "test_dt_filter");
-	copy_to_msg(msg, cc_setup_national, ARRAY_SIZE(cc_setup_national));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (!out) {
-		printf("FAIL: A new message should be created.\n");
-		abort();
-	}
-
-	if (msg == out) {
-		printf("FAIL: The message should have changed\n");
-		abort();
-	}
-
-	verify_msg(out, cc_setup_national_patched, ARRAY_SIZE(cc_setup_national_patched));
-	msgb_free(out);
-
-	/* Make sure that a wildcard is matching */
-	entry.mnc = "09";
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, &entries);
-	msg = msgb_alloc(4096, "test_dt_filter");
-	copy_to_msg(msg, cc_setup_national, ARRAY_SIZE(cc_setup_national));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (out != msg) {
-		printf("FAIL: The message should be unchanged.\n");
-		abort();
-	}
-
-	verify_msg(out, cc_setup_national, ARRAY_SIZE(cc_setup_national));
-	msgb_free(out);
-
-	/* Now see what happens to an international number */
-	entry.mnc = "*";
-	entry.option = "^\\+[0-9][0-9]([1-9])";
-	entry.text = "0036";
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, &entries);
-	msg = msgb_alloc(4096, "test_dt_filter");
-	copy_to_msg(msg, cc_setup_national_patched, ARRAY_SIZE(cc_setup_national_patched));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp %d\n", __LINE__);
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (!out) {
-		printf("FAIL: A new message should be created %d.\n", __LINE__);
-		abort();
-	}
-
-	if (msg == out) {
-		printf("FAIL: The message should have changed %d\n", __LINE__);
-		abort();
-	}
-
-	verify_msg(out, cc_setup_national_patched_patched,
-			ARRAY_SIZE(cc_setup_national_patched_patched));
-	msgb_free(out);
-
-	/* go from international back to national */
-	entry.mnc = "*";
-	entry.option = "^\\+([0-9])";
-	entry.text = "36";
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, &entries);
-	msg = msgb_alloc(4096, "test_dt_filter");
-	copy_to_msg(msg, cc_setup_national_patched, ARRAY_SIZE(cc_setup_national_patched));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp %d\n", __LINE__);
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (!out) {
-		printf("FAIL: A new message should be created %d.\n", __LINE__);
-		abort();
-	}
-
-	if (msg == out) {
-		printf("FAIL: The message should have changed %d\n", __LINE__);
-		abort();
-	}
-
-	verify_msg(out, cc_setup_national_again,
-			ARRAY_SIZE(cc_setup_national_again));
-	msgb_free(out);
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, NULL);
-	bsc_nat_free(nat);
-}
-
-static void test_setup_rewrite_prefix(void)
-{
-	struct msgb *msg = msgb_alloc(4096, "test_dt_filter");
-	struct msgb *out;
-	struct bsc_nat_parsed *parsed;
-	const char *imsi = "27408000001234";
-
-	struct bsc_nat *nat = bsc_nat_alloc();
-
-	/* a fake list */
-	struct osmo_config_list entries;
-	struct osmo_config_entry entry;
-
-	INIT_LLIST_HEAD(&entries.entry);
-	entry.mcc = "274";
-	entry.mnc = "08";
-	entry.option = "^0([1-9])";
-	entry.text = "prefix_lookup";
-	llist_add_tail(&entry.list, &entries.entry);
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, &entries);
-
-        nat->num_rewr_trie = nat_rewrite_parse(nat, "prefixes.csv");
-
-	msgb_reset(msg);
-	copy_to_msg(msg, cc_setup_national, ARRAY_SIZE(cc_setup_national));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (!out) {
-		printf("FAIL: A new message should be created.\n");
-		abort();
-	}
-
-	if (msg == out) {
-		printf("FAIL: The message should have changed\n");
-		abort();
-	}
-
-	verify_msg(out, cc_setup_national_patched, ARRAY_SIZE(cc_setup_national_patched));
-	msgb_free(out);
-
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, NULL);
-	bsc_nat_free(nat);
-}
-
-static void test_setup_rewrite_post(void)
-{
-	struct msgb *msg = msgb_alloc(4096, "test_dt_filter");
-	struct msgb *out;
-	struct bsc_nat_parsed *parsed;
-	const char *imsi = "27408000001234";
-
-	struct bsc_nat *nat = bsc_nat_alloc();
-
-	/* a fake list */
-	struct osmo_config_list entries;
-	struct osmo_config_entry entry;
-	struct osmo_config_list entries_post;
-	struct osmo_config_entry entry_post;
-
-	INIT_LLIST_HEAD(&entries.entry);
-	entry.mcc = "274";
-	entry.mnc = "08";
-	entry.option = "^0([1-9])";
-	entry.text = "0049";
-	llist_add_tail(&entry.list, &entries.entry);
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr, &entries);
-
-	/* attempt to undo the previous one */
-	INIT_LLIST_HEAD(&entries_post.entry);
-	entry_post.mcc = "274";
-	entry_post.mnc = "08";
-	entry_post.option = "^\\+49([1-9])";
-	entry_post.text = "prefix_lookup";
-	llist_add_tail(&entry_post.list, &entries_post.entry);
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->num_rewr_post, &entries_post);
-
-        nat->num_rewr_trie = nat_rewrite_parse(nat, "prefixes.csv");
-
-	msgb_reset(msg);
-	copy_to_msg(msg, cc_setup_national, ARRAY_SIZE(cc_setup_national));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse ID resp\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (!out) {
-		printf("FAIL: A new message should be created.\n");
-		abort();
-	}
-
-	if (msg == out) {
-		printf("FAIL: The message should have changed\n");
-		abort();
-	}
-
-	verify_msg(out, cc_setup_national, ARRAY_SIZE(cc_setup_national));
-	msgb_free(out);
-
-	bsc_nat_free(nat);
-}
-
-static void test_sms_smsc_rewrite()
-{
-	struct msgb *msg = msgb_alloc(4096, "SMSC rewrite"), *out;
-	struct bsc_nat_parsed *parsed;
-	const char *imsi = "515039900406700";
-
-	struct bsc_nat *nat = bsc_nat_alloc();
-
-	/* a fake list */
-	struct osmo_config_list smsc_entries, dest_entries, clear_entries;
-	struct osmo_config_entry smsc_entry, dest_entry, clear_entry;
-
-	INIT_LLIST_HEAD(&smsc_entries.entry);
-	INIT_LLIST_HEAD(&dest_entries.entry);
-	INIT_LLIST_HEAD(&clear_entries.entry);
-	smsc_entry.mcc = "^515039";
-	smsc_entry.option = "639180000105()";
-	smsc_entry.text   = "6666666666667";
-	llist_add_tail(&smsc_entry.list, &smsc_entries.entry);
-	dest_entry.mcc = "515";
-	dest_entry.mnc = "03";
-	dest_entry.option = "^0049";
-	dest_entry.text   = "";
-	llist_add_tail(&dest_entry.list, &dest_entries.entry);
-	clear_entry.mcc = "^515039";
-	clear_entry.option = "^0049";
-	clear_entry.text   = "";
-	llist_add_tail(&clear_entry.list, &clear_entries.entry);
-
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->smsc_rewr, &smsc_entries);
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->tpdest_match, &dest_entries);
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->sms_clear_tp_srr, &clear_entries);
-
-	printf("Testing SMSC rewriting.\n");
-
-	/*
-	 * Check if the SMSC address is changed
-	 */
-	copy_to_msg(msg, smsc_rewrite, ARRAY_SIZE(smsc_rewrite));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse SMS\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (out == msg) {
-		printf("FAIL: This should have changed.\n");
-		abort();
-	}
-
-	verify_msg(out, smsc_rewrite_patched, ARRAY_SIZE(smsc_rewrite_patched));
-	msgb_free(out);
-
-	/* clear out the filter for SMSC */
-	printf("Attempting to only rewrite the HDR\n");
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->smsc_rewr, NULL);
-	msg = msgb_alloc(4096, "SMSC rewrite");
-	copy_to_msg(msg, smsc_rewrite, ARRAY_SIZE(smsc_rewrite));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse SMS\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (out == msg) {
-		printf("FAIL: This should have changed.\n");
-		abort();
-	}
-
-	verify_msg(out, smsc_rewrite_patched_hdr, ARRAY_SIZE(smsc_rewrite_patched_hdr));
-	msgb_free(out);
-
-	/* clear out the next filter */
-	printf("Attempting to change nothing.\n");
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->sms_clear_tp_srr, NULL);
-	msg = msgb_alloc(4096, "SMSC rewrite");
-	copy_to_msg(msg, smsc_rewrite, ARRAY_SIZE(smsc_rewrite));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse SMS\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (out != msg) {
-		printf("FAIL: This should not have changed.\n");
-		abort();
-	}
-
-	verify_msg(out, smsc_rewrite, ARRAY_SIZE(smsc_rewrite));
-	msgb_free(out);
-	bsc_nat_free(nat);
-}
-
-static void test_sms_number_rewrite(void)
-{
-	struct msgb *msg, *out;
-	struct bsc_nat_parsed *parsed;
-	const char *imsi = "515039900406700";
-
-	struct bsc_nat *nat = bsc_nat_alloc();
-
-	/* a fake list */
-	struct osmo_config_list num_entries, clear_entries;
-	struct osmo_config_entry num_entry, clear_entry;
-
-	INIT_LLIST_HEAD(&num_entries.entry);
-	num_entry.mcc = "^515039";
-	num_entry.option = "^0049()";
-	num_entry.text   = "0032";
-	llist_add_tail(&num_entry.list, &num_entries.entry);
-
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->sms_num_rewr, &num_entries);
-
-	printf("Testing SMS TP-DA rewriting.\n");
-
-	/*
-	 * Check if the SMSC address is changed
-	 */
- 	msg = msgb_alloc(4096, "SMSC rewrite");
-	copy_to_msg(msg, smsc_rewrite, ARRAY_SIZE(smsc_rewrite));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse SMS\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (out == msg) {
-		printf("FAIL: This should have changed.\n");
-		abort();
-	}
-
-	verify_msg(out, smsc_rewrite_num_patched,
-		   ARRAY_SIZE(smsc_rewrite_num_patched));
-	msgb_free(out);
-
-	/*
-	 * Now with TP-SRR rewriting enabled
-	 */
-	INIT_LLIST_HEAD(&clear_entries.entry);
-	clear_entry.mcc = "^515039";
-	clear_entry.option = "";
-	clear_entry.text   = "";
-	llist_add_tail(&clear_entry.list, &clear_entries.entry);
-	bsc_nat_num_rewr_entry_adapt(nat, &nat->sms_clear_tp_srr, &clear_entries);
-
- 	msg = msgb_alloc(4096, "SMSC rewrite");
-	copy_to_msg(msg, smsc_rewrite, ARRAY_SIZE(smsc_rewrite));
-	parsed = bsc_nat_parse(msg);
-	if (!parsed) {
-		printf("FAIL: Could not parse SMS\n");
-		abort();
-	}
-
-	out = bsc_nat_rewrite_msg(nat, msg, parsed, imsi);
-	if (out == msg) {
-		printf("FAIL: This should have changed.\n");
-		abort();
-	}
-
-	verify_msg(out, smsc_rewrite_num_patched_tp_srr,
-		   ARRAY_SIZE(smsc_rewrite_num_patched_tp_srr));
-	msgb_free(out);
-	bsc_nat_free(nat);
-}
-
-static void test_barr_list_parsing(void)
-{
-	int rc;
-	int cm, lu;
-	struct rb_node *node;
-	struct rb_root root = RB_ROOT;
-	struct osmo_config_list *lst = osmo_config_list_parse(NULL, "barr.cfg");
-	if (lst == NULL)
-		abort();
-
-	rc = bsc_filter_barr_adapt(NULL, &root, lst);
-	if (rc != 0)
-		abort();
-	talloc_free(lst);
-
-
-	for (node = rb_first(&root); node; node = rb_next(node)) {
-		struct bsc_filter_barr_entry *entry;
-		entry = rb_entry(node, struct bsc_filter_barr_entry, node);
-		printf("IMSI: %s CM: %d LU: %d\n", entry->imsi,
-			entry->cm_reject_cause, entry->lu_reject_cause);
-	}
-
-	/* do the look up now.. */
-	rc = bsc_filter_barr_find(&root, "12123119", &cm, &lu);
-	if (!rc) {
-		printf("Failed to find the IMSI.\n");
-		abort();
-	}
-
-	if (cm != 3 || lu != 4) {
-		printf("Found CM(%d) and LU(%d)\n", cm, lu);
-		abort();
-	}
-
-	/* empty and check that it is empty */
-	bsc_filter_barr_adapt(NULL, &root, NULL);
-	if (!RB_EMPTY_ROOT(&root)) {
-		printf("Failed to empty the list.\n");
-		abort();
-	}
-
-	/* check that dup results in an error */
-	lst = osmo_config_list_parse(NULL, "barr_dup.cfg");
-	if (lst == NULL) {
-		printf("Failed to parse list with dups\n");
-		abort();
-	}
-
-	rc = bsc_filter_barr_adapt(NULL, &root, lst);
-	if (rc != -1) {
-		printf("It should have failed due dup\n");
-		abort();
-	}
-	talloc_free(lst);
-
-	/* dump for reference */
-	for (node = rb_first(&root); node; node = rb_next(node)) {
-		struct bsc_filter_barr_entry *entry;
-		entry = rb_entry(node, struct bsc_filter_barr_entry, node);
-		printf("IMSI: %s CM: %d LU: %d\n", entry->imsi,
-			entry->cm_reject_cause, entry->lu_reject_cause);
-
-	}
-	rc = bsc_filter_barr_adapt(NULL, &root, NULL);
-}
-
-static void test_nat_extract_lac()
-{
-	int res;
-	struct bsc_connection *bsc;
-	struct bsc_nat *nat;
-	struct nat_sccp_connection con;
-	struct bsc_nat_parsed *parsed;
-	struct msgb *msg = msgb_alloc(4096, "test-message");
-
-	printf("Testing LAC extraction from SCCP CR\n");
-
-	/* initialize the testcase */
-	nat = bsc_nat_alloc();
-	bsc = bsc_connection_alloc(nat);
-	bsc->cfg = bsc_config_alloc(nat, "foo", 0);
-
-	memset(&con, 0, sizeof(con));
-	con.bsc = bsc;
-
-	/* create the SCCP CR */
-	msg->l2h = msgb_put(msg, ARRAY_SIZE(bssmap_cr));
-	memcpy(msg->l2h, bssmap_cr, ARRAY_SIZE(bssmap_cr));
-
-	/* parse it and pass it on */
-	parsed = bsc_nat_parse(msg);
-	res = bsc_nat_extract_lac(bsc, &con, parsed, msg);
-	OSMO_ASSERT(res == 0);
-
-	/* verify the LAC */
-	OSMO_ASSERT(con.lac == 8210);
-	OSMO_ASSERT(con.ci == 50000);
-
-	bsc_nat_free(nat);
-}
-
-int main(int argc, char **argv)
-{
-	msgb_talloc_ctx_init(NULL, 0);
-	sccp_set_log_area(DSCCP);
-	osmo_init_logging(&log_info);
-
-	test_filter();
-	test_contrack();
-	test_paging();
-	test_mgcp_ass_tracking();
-	test_mgcp_find();
-	test_mgcp_rewrite();
-	test_mgcp_parse();
-	test_cr_filter();
-	test_dt_filter();
-	test_setup_rewrite();
-	test_setup_rewrite_prefix();
-	test_setup_rewrite_post();
-	test_sms_smsc_rewrite();
-	test_sms_number_rewrite();
-	test_mgcp_allocations();
-	test_barr_list_parsing();
-	test_nat_extract_lac();
-
-	printf("Testing execution completed.\n");
-	return 0;
-}
-
-/* stub */
-void bsc_nat_send_mgcp_to_msc(struct bsc_nat *nat, struct msgb *msg)
-{
-	abort();
-}
diff --git a/tests/bsc-nat/bsc_nat_test.ok b/tests/bsc-nat/bsc_nat_test.ok
deleted file mode 100644
index ab04f42..0000000
--- a/tests/bsc-nat/bsc_nat_test.ok
+++ /dev/null
@@ -1,39 +0,0 @@
-Testing BSS Filtering.
-Going to test item: 0
-Going to test item: 1
-Going to test item: 2
-Going to test item: 3
-Going to test item: 4
-Going to test item: 5
-Going to test item: 6
-Going to test item: 7
-Going to test item: 8
-Going to test item: 9
-Going to test item: 10
-Going to test item: 11
-Going to test item: 12
-Testing connection tracking.
-Testing paging by lac.
-Testing MGCP.
-Testing finding of a BSC Connection
-Testing rewriting MGCP messages.
-Testing MGCP response parsing.
-Testing SMSC rewriting.
-Attempting to only rewrite the HDR
-Attempting to change nothing.
-Testing SMS TP-DA rewriting.
-IMSI: 12123115 CM: 3 LU: 4
-IMSI: 12123116 CM: 3 LU: 4
-IMSI: 12123117 CM: 3 LU: 4
-IMSI: 12123118 CM: 3 LU: 4
-IMSI: 12123119 CM: 3 LU: 4
-IMSI: 12123120 CM: 3 LU: 4
-IMSI: 12123123 CM: 3 LU: 1
-IMSI: 12123124 CM: 3 LU: 2
-IMSI: 12123125 CM: 3 LU: 3
-IMSI: 12123126 CM: 3 LU: 4
-IMSI: 12123127 CM: 3 LU: 5
-IMSI: 12123128 CM: 3 LU: 6
-IMSI: 12123124 CM: 3 LU: 2
-Testing LAC extraction from SCCP CR
-Testing execution completed.
diff --git a/tests/bsc-nat/prefixes.csv b/tests/bsc-nat/prefixes.csv
deleted file mode 100644
index 0c7660f..0000000
--- a/tests/bsc-nat/prefixes.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-0172,0049
-+49,0
diff --git a/tests/bsc/Makefile.am b/tests/bsc/Makefile.am
deleted file mode 100644
index 904bdfc..0000000
--- a/tests/bsc/Makefile.am
+++ /dev/null
@@ -1,45 +0,0 @@
-AM_CPPFLAGS = \
-	$(all_includes) \
-	-I$(top_srcdir)/include \
-	$(NULL)
-
-AM_CFLAGS = \
-	-Wall \
-	-ggdb3 \
-	$(LIBOSMOCORE_CFLAGS) \
-	$(LIBOSMOGSM_CFLAGS) \
-	$(LIBOSMOSCCP_CFLAGS) \
-	$(LIBOSMOABIS_CFLAGS) \
-	$(COVERAGE_CFLAGS) \
-	$(NULL)
-
-AM_LDFLAGS = \
-	$(COVERAGE_LDFLAGS) \
-	$(NULL)
-
-EXTRA_DIST = \
-	bsc_test.ok \
-	$(NULL)
-
-noinst_PROGRAMS = \
-	bsc_test \
-	$(NULL)
-
-bsc_test_SOURCES = \
-	bsc_test.c \
-	$(top_srcdir)/src/osmo-bsc/osmo_bsc_filter.c \
-	$(NULL)
-
-bsc_test_LDADD = \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
-	$(top_builddir)/src/libmgcp/libmgcp.a \
-	$(top_builddir)/src/libtrau/libtrau.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
-	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBOSMOSCCP_LIBS) \
-	$(LIBOSMOVTY_LIBS) \
-	$(LIBOSMOABIS_LIBS) \
-	-lrt \
-	$(NULL)
diff --git a/tests/bsc/bsc_test.c b/tests/bsc/bsc_test.c
deleted file mode 100644
index 20ed5b4..0000000
--- a/tests/bsc/bsc_test.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * BSC Message filtering
- *
- * (C) 2013 by sysmocom s.f.m.c. GmbH
- * Written by Jacob Erlbeck <jerlbeck@sysmocom.de>
- * (C) 2010-2013 by Holger Hans Peter Freyther <zecke@selfish.org>
- * (C) 2010-2013 by On-Waves
- *
- * 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/gsm_data.h>
-
-#include <openbsc/osmo_bsc.h>
-#include <openbsc/bsc_msc_data.h>
-#include <openbsc/gsm_04_80.h>
-#include <openbsc/gsm_subscriber.h>
-
-#include <osmocom/core/application.h>
-#include <osmocom/core/backtrace.h>
-#include <osmocom/core/talloc.h>
-
-#include <stdio.h>
-#include <search.h>
-
-enum test {
-	TEST_SCAN_TO_BTS,
-	TEST_SCAN_TO_MSC,
-};
-
-/* GSM 04.08 MM INFORMATION test message */
-static uint8_t gsm48_mm_info_nn_tzt[] = {
-	0x05, 0x32, 0x45, 0x08, 0x80, 0x4f, 0x77, 0xeb,
-	0x1a, 0xb6, 0x97, 0xe7, 0x47, 0x31, 0x90, 0x61,
-	0x11, 0x02, 0x73, 0x00,
-};
-
-static uint8_t gsm48_mm_info_nn_tzt_out[] = {
-	0x05, 0x32, 0x45, 0x08, 0x80, 0x4f, 0x77, 0xeb,
-	0x1a, 0xb6, 0x97, 0xe7, 0x47, 0x31, 0x90, 0x61,
-	0x11, 0x02, 0x73, 0x1a,
-};
-
-static uint8_t gsm48_mm_info_nn_tzt_dst[] = {
-	0x05, 0x32, 0x45, 0x08, 0x80, 0x4f, 0x77, 0xeb,
-	0x1a, 0xb6, 0x97, 0xe7, 0x47, 0x31, 0x90, 0x61,
-	0x11, 0x02, 0x73, 0x00, 0x49, 0x01, 0x00,
-};
-
-static uint8_t gsm48_mm_info_nn_tzt_dst_out[] = {
-	0x05, 0x32, 0x45, 0x08, 0x80, 0x4f, 0x77, 0xeb,
-	0x1a, 0xb6, 0x97, 0xe7, 0x47, 0x31, 0x90, 0x61,
-	0x11, 0x02, 0x73, 0x1a, 0x49, 0x01, 0x02,
-};
-
-struct test_definition {
-	const uint8_t *data;
-	const uint16_t length;
-	const int dir;
-	const int result;
-	const uint8_t *out_data;
-	const uint16_t out_length;
-	const char* params;
-	const int n_params;
-};
-
-static int get_int(const char *params, size_t nmemb, const char *key, int def, int *is_set)
-{
-	const char *kv = NULL;
-
-	kv = strstr(params, key);
-	if (kv) {
-		kv += strlen(key) + 1;
-		fprintf(stderr, "get_int(%s) -> %d\n", key, atoi(kv));
-		if (is_set)
-			*is_set = 1;
-	}
-
-	return kv ? atoi(kv) : def;
-}
-
-static const struct test_definition test_scan_defs[] = {
-	{
-		.data = gsm48_mm_info_nn_tzt_dst,
-		.length = ARRAY_SIZE(gsm48_mm_info_nn_tzt),
-		.dir = TEST_SCAN_TO_BTS,
-		.result = 0,
-		.out_data = gsm48_mm_info_nn_tzt_dst_out,
-		.out_length = ARRAY_SIZE(gsm48_mm_info_nn_tzt_out),
-		.params = "tz_hr=-5 tz_mn=15 tz_dst=2",
-		.n_params = 3,
-	},
-	{
-		.data = gsm48_mm_info_nn_tzt_dst,
-		.length = ARRAY_SIZE(gsm48_mm_info_nn_tzt_dst),
-		.dir = TEST_SCAN_TO_BTS,
-		.result = 0,
-		.out_data = gsm48_mm_info_nn_tzt_dst_out,
-		.out_length = ARRAY_SIZE(gsm48_mm_info_nn_tzt_dst_out),
-		.params = "tz_hr=-5 tz_mn=15 tz_dst=2",
-		.n_params = 3,
-	},
-};
-
-static void test_scan(void)
-{
-	int i;
-
-	struct gsm_network *net;
-	struct gsm_bts *bts;
-	struct osmo_bsc_sccp_con *sccp_con;
-	struct bsc_msc_data *msc;
-	struct gsm_subscriber_connection *conn;
-
-	net = talloc_zero(NULL, struct gsm_network);
-	bts = talloc_zero(net, struct gsm_bts);
-	sccp_con = talloc_zero(net, struct osmo_bsc_sccp_con);
-	msc = talloc_zero(net, struct bsc_msc_data);
-	conn = talloc_zero(net, struct gsm_subscriber_connection);
-
-	bts->network = net;
-	sccp_con->msc = msc;
-	conn->bts = bts;
-	conn->sccp_con = sccp_con;
-
-	/* start testing with proper messages */
-	printf("Testing BTS<->MSC message scan.\n");
-	for (i = 0; i < ARRAY_SIZE(test_scan_defs); ++i) {
-		const struct test_definition *test_def = &test_scan_defs[i];
-		int result;
-		struct msgb *msg = msgb_alloc(4096, "test-message");
-		int is_set = 0;
-
-		net->tz.hr = get_int(test_def->params, test_def->n_params, "tz_hr", 0, &is_set);
-		net->tz.mn = get_int(test_def->params, test_def->n_params, "tz_mn", 0, &is_set);
-		net->tz.dst = get_int(test_def->params, test_def->n_params, "tz_dst", 0, &is_set);
-		net->tz.override = 1;
-
-		printf("Going to test item: %d\n", i);
-		msg->l3h = msgb_put(msg, test_def->length);
-		memcpy(msg->l3h, test_def->data, test_def->length);
-
-		switch (test_def->dir) {
-		case TEST_SCAN_TO_BTS:
-			/* override timezone of msg coming from the MSC */
-			result = bsc_scan_msc_msg(conn, msg);
-			break;
-		case TEST_SCAN_TO_MSC:
-			/* override timezone of msg coming from the BSC */
-			/* FIXME: no test for this case is defined in
-			 * test_scan_defs[], so this is never used. */
-			result = bsc_scan_bts_msg(conn, msg);
-			break;
-		default:
-			abort();
-			break;
-		}
-
-		if (result != test_def->result) {
-			printf("FAIL: Not the expected result, got: %d wanted: %d\n",
-				result, test_def->result);
-			goto out;
-		}
-
-		if (msgb_l3len(msg) != test_def->out_length) {
-			printf("FAIL: Not the expected message size, got: %d wanted: %d\n",
-				msgb_l3len(msg), test_def->out_length);
-			goto out;
-		}
-
-		if (memcmp(msgb_l3(msg), test_def->out_data, test_def->out_length) != 0) {
-			printf("FAIL: Not the expected message\n");
-			goto out;
-		}
-
-out:
-		msgb_free(msg);
-	}
-
-	talloc_free(net);
-}
-
-
-int main(int argc, char **argv)
-{
-	msgb_talloc_ctx_init(NULL, 0);
-	osmo_init_logging(&log_info);
-
-	test_scan();
-
-	printf("Testing execution completed.\n");
-	return 0;
-}
diff --git a/tests/bsc/bsc_test.ok b/tests/bsc/bsc_test.ok
deleted file mode 100644
index 0564bf0..0000000
--- a/tests/bsc/bsc_test.ok
+++ /dev/null
@@ -1,4 +0,0 @@
-Testing BTS<->MSC message scan.
-Going to test item: 0
-Going to test item: 1
-Testing execution completed.
diff --git a/tests/channel/Makefile.am b/tests/channel/Makefile.am
deleted file mode 100644
index dd78bdc..0000000
--- a/tests/channel/Makefile.am
+++ /dev/null
@@ -1,35 +0,0 @@
-AM_CPPFLAGS = \
-	$(all_includes) \
-	-I$(top_srcdir)/include \
-	$(NULL)
-
-AM_CFLAGS = \
-	-Wall \
-	-ggdb3 \
-	$(LIBOSMOCORE_CFLAGS) \
-	$(LIBOSMOGSM_CFLAGS) \
-	$(LIBOSMOABIS_CFLAGS) \
-	$(NULL)
-
-EXTRA_DIST = \
-	channel_test.ok \
-	$(NULL)
-
-noinst_PROGRAMS = \
-	channel_test \
-	$(NULL)
-
-channel_test_SOURCES = \
-	channel_test.c \
-	$(NULL)
-
-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) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBCRYPTO_LIBS) \
-	-ldbi \
-	$(NULL)
diff --git a/tests/channel/channel_test.c b/tests/channel/channel_test.c
deleted file mode 100644
index beae658..0000000
--- a/tests/channel/channel_test.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
- * 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 <stdio.h>
-#include <stdlib.h>
-
-#include <assert.h>
-
-#include <osmocom/core/application.h>
-#include <osmocom/core/select.h>
-
-#include <openbsc/common_bsc.h>
-#include <openbsc/abis_rsl.h>
-#include <openbsc/debug.h>
-#include <openbsc/gsm_subscriber.h>
-#include <openbsc/vlr.h>
-
-void test_bts_debug_print(void)
-{
-	struct gsm_network *network;
-	struct gsm_bts *bts;
-	struct gsm_bts_trx *trx;
-
-	printf("Testing the lchan printing:");
-
-	/* Create a dummy network */
-	network = bsc_network_init(tall_bsc_ctx, 1, 1, NULL);
-	if (!network)
-		exit(1);
-	/* Add a BTS with some reasonanbly non-zero id */
-	bts = gsm_bts_alloc(network, 45);
-	/* Add a second TRX to test on multiple TRXs */
-	gsm_bts_trx_alloc(bts);
-
-	llist_for_each_entry(trx, &bts->trx_list, list) {
-		char *name = gsm_lchan_name(&trx->ts[3].lchan[4]);
-
-		if (name)
-			printf(" %s", name);
-		else
-			printf("NULL name");
-	}
-	printf("\n");
-}
-
-
-void test_dyn_ts_subslots(void)
-{
-	struct gsm_bts_trx_ts ts;
-
-	printf("Testing subslot numbers for pchan types\n");
-
-	ts.pchan = GSM_PCHAN_TCH_F;
-	OSMO_ASSERT(ts_subslots(&ts) == 1);
-
-	ts.pchan = GSM_PCHAN_TCH_H;
-	OSMO_ASSERT(ts_subslots(&ts) == 2);
-
-	ts.pchan = GSM_PCHAN_PDCH;
-	OSMO_ASSERT(ts_subslots(&ts) == 0);
-
-	ts.pchan = GSM_PCHAN_TCH_F_PDCH;
-	ts.flags = 0; /* TCH_F mode */
-	OSMO_ASSERT(ts_subslots(&ts) == 1);
-	ts.flags = TS_F_PDCH_ACTIVE;
-	OSMO_ASSERT(ts_subslots(&ts) == 0);
-
-	ts.pchan = GSM_PCHAN_TCH_F_TCH_H_PDCH;
-	ts.dyn.pchan_is = GSM_PCHAN_TCH_F;
-	OSMO_ASSERT(ts_subslots(&ts) == 1);
-	ts.dyn.pchan_is = GSM_PCHAN_TCH_H;
-	OSMO_ASSERT(ts_subslots(&ts) == 2);
-	ts.dyn.pchan_is = GSM_PCHAN_PDCH;
-	OSMO_ASSERT(ts_subslots(&ts) == 0);
-}
-
-int main(int argc, char **argv)
-{
-	osmo_init_logging(&log_info);
-
-	test_dyn_ts_subslots();
-	test_bts_debug_print();
-
-	return EXIT_SUCCESS;
-}
-
-void _abis_nm_sendmsg() {}
-void sms_alloc() {}
-void sms_free() {}
-void gsm_net_update_ctype(struct gsm_network *network) {}
-void gsm48_secure_channel() {}
-void paging_request_stop() {}
-void vty_out() {}
-
-void ipa_client_conn_clear_queue() {}
-void ipa_client_conn_close() {}
-void ipa_client_conn_create() {}
-void ipa_client_conn_destroy() {}
-void ipa_client_conn_open() {}
-void ipa_client_conn_send() {}
-void ipa_msg_push_header() {}
-void ipaccess_bts_handle_ccm() {}
-
-struct tlv_definition nm_att_tlvdef;
diff --git a/tests/channel/channel_test.ok b/tests/channel/channel_test.ok
deleted file mode 100644
index 81d6569..0000000
--- a/tests/channel/channel_test.ok
+++ /dev/null
@@ -1,2 +0,0 @@
-Testing subslot numbers for pchan types
-Testing the lchan printing: (bts=45,trx=0,ts=3,ss=4) (bts=45,trx=1,ts=3,ss=4)
diff --git a/tests/db/Makefile.am b/tests/db/Makefile.am
deleted file mode 100644
index bcb66ec..0000000
--- 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 a0c1e79..0000000
--- 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 27e5703..0000000
--- a/tests/db/db_test.err
+++ /dev/null
@@ -1,3 +0,0 @@
-Going to migrate from revision 3
-Going to migrate from revision 4
-
\ 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 2632a8c..0000000
--- 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
deleted file mode 100644
index e59dcdc..0000000
--- a/tests/db/hlr.sqlite3
+++ /dev/null
Binary files differ
diff --git a/tests/gbproxy/Makefile.am b/tests/gbproxy/Makefile.am
deleted file mode 100644
index 2dd66df..0000000
--- 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 577daa9..0000000
--- 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 737aec0..0000000
--- 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 902313f..0000000
--- 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 aac9bb8..0000000
--- 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 da7888c..0000000
--- 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/Makefile.am b/tests/gsm0408/Makefile.am
deleted file mode 100644
index ae81c2c..0000000
--- a/tests/gsm0408/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-AM_CPPFLAGS = \
-	$(all_includes) \
-	-I$(top_srcdir)/include \
-	$(NULL)
-
-AM_CFLAGS = \
-	-Wall \
-	$(LIBOSMOCORE_CFLAGS) \
-	$(LIBOSMOGSM_CFLAGS) \
-	$(LIBOSMOABIS_CFLAGS) \
-	$(NULL)
-
-noinst_PROGRAMS = \
-	gsm0408_test \
-	$(NULL)
-
-EXTRA_DIST = \
-	gsm0408_test.ok \
-	$(NULL)
-
-gsm0408_test_SOURCES = \
-	gsm0408_test.c \
-	$(NULL)
-
-gsm0408_test_LDADD = \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
-	$(top_builddir)/src/libtrau/libtrau.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
-	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBOSMOABIS_LIBS) \
-	-ldbi \
-	$(NULL)
diff --git a/tests/gsm0408/gsm0408_test.c b/tests/gsm0408/gsm0408_test.c
deleted file mode 100644
index fcdc8f8..0000000
--- a/tests/gsm0408/gsm0408_test.c
+++ /dev/null
@@ -1,697 +0,0 @@
-/* simple test for the gsm0408 formatting functions */
-/*
- * (C) 2008 by Holger Hans Peter Freyther <zecke@selfish.org>
- * 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 <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#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>
-#include <openbsc/arfcn_range_encode.h>
-#include <openbsc/system_information.h>
-#include <openbsc/abis_rsl.h>
-
-#include <osmocom/core/application.h>
-#include <osmocom/gsm/sysinfo.h>
-
-#define COMPARE(result, op, value) \
-    if (!((result) op (value))) {\
-	fprintf(stderr, "Compare failed. Was %x should be %x in %s:%d\n",result, value, __FILE__, __LINE__); \
-	exit(-1); \
-    }
-
-#define COMPARE_STR(result, value) \
-	if (strcmp(result, value) != 0) { \
-		fprintf(stderr, "Compare failed. Was %s should be %s in %s:%d\n",result, value, __FILE__, __LINE__); \
-		exit(-1); \
-	}
-
-#define DBG(...)
-
-#define VERIFY(res, cmp, wanted)					\
-	if (!(res cmp wanted)) {					\
-		printf("ASSERT failed: %s:%d Wanted: %d %s %d\n",	\
-			__FILE__, __LINE__, (int) res, # cmp, (int) wanted);	\
-	}
-
-
-
-/*
- * Test Location Area Identifier formatting. Table 10.5.3 of 04.08
- */
-static void test_location_area_identifier(void)
-{
-    struct gsm48_loc_area_id lai48;
-
-    printf("Testing test location area identifier\n");
-
-    /*
-     * Test the default/test setup. Coming from
-     * bsc_hack.c dumps
-     */
-    gsm48_generate_lai(&lai48, 1, 1, 1);
-    COMPARE(lai48.digits[0], ==, 0x00);
-    COMPARE(lai48.digits[1], ==, 0xF1);
-    COMPARE(lai48.digits[2], ==, 0x10);
-    COMPARE(lai48.lac, ==, htons(0x0001));
-
-    gsm48_generate_lai(&lai48, 602, 1, 15);
-    COMPARE(lai48.digits[0], ==, 0x06);
-    COMPARE(lai48.digits[1], ==, 0xF2);
-    COMPARE(lai48.digits[2], ==, 0x10);
-    COMPARE(lai48.lac, ==, htons(0x000f));
-}
-
-static inline void gen(struct gsm_bts *bts, const char *s)
-{
-	int r;
-
-	bts->si_valid = 0;
-	bts->si_valid |= (1 << SYSINFO_TYPE_2quater);
-
-	printf("generating SI2quater for %zu EARFCNs and %zu UARFCNs...\n",
-	       si2q_earfcn_count(&bts->si_common.si2quater_neigh_list), bts->si_common.uarfcn_length);
-
-	r = gsm_generate_si(bts, SYSINFO_TYPE_2quater);
-	if (r > 0)
-		for (bts->si2q_index = 0; bts->si2q_index < bts->si2q_count + 1; bts->si2q_index++)
-			printf("generated %s SI2quater [%02u/%02u]: [%d] %s\n",
-			       GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_2quater) ? "valid" : "invalid",
-			       bts->si2q_index, bts->si2q_count, r,
-			       osmo_hexdump((void *)GSM_BTS_SI2Q(bts, bts->si2q_index), GSM_MACBLOCK_LEN));
-	else
-		printf("%s() failed to generate SI2quater: %s\n", s, strerror(-r));
-}
-
-static inline void del_earfcn_b(struct gsm_bts *bts, uint16_t earfcn)
-{
-	struct osmo_earfcn_si2q *e = &bts->si_common.si2quater_neigh_list;
-	int r = osmo_earfcn_del(e, earfcn);
-	if (r)
-		printf("failed to remove EARFCN %u: %s\n", earfcn, strerror(-r));
-	else
-		printf("removed EARFCN %u - ", earfcn);
-
-	gen(bts, __func__);
-}
-
-static inline void add_earfcn_b(struct gsm_bts *bts, uint16_t earfcn, uint8_t bw)
-{
-	struct osmo_earfcn_si2q *e = &bts->si_common.si2quater_neigh_list;
-	int r = osmo_earfcn_add(e, earfcn, bw);
-	if (r)
-		printf("failed to add EARFCN %u: %s\n", earfcn, strerror(-r));
-	else
-		printf("added EARFCN %u - ", earfcn);
-
-	gen(bts, __func__);
-}
-
-static inline void _bts_uarfcn_add(struct gsm_bts *bts, uint16_t arfcn, uint16_t scramble, bool diversity)
-{
-	int r;
-
-	bts->u_offset = 0;
-
-	r = bts_uarfcn_add(bts, arfcn, scramble, diversity);
-	if (r < 0)
-		printf("failed to add UARFCN to SI2quater: %s\n", strerror(-r));
-	else {
-		bts->si2q_count = si2q_num(bts) - 1;
-		gen(bts, __func__);
-	}
-}
-
-static inline void test_si2q_segfault(void)
-{
-	struct gsm_bts *bts;
-	struct gsm_network *network = bsc_network_init(tall_bsc_ctx, 1, 1, NULL);
-	printf("Test SI2quater UARFCN (same scrambling code and diversity):\n");
-
-	if (!network)
-		exit(1);
-	bts = gsm_bts_alloc(network, 0);
-
-	_bts_uarfcn_add(bts, 10564, 319, 0);
-	_bts_uarfcn_add(bts, 10612, 319, 0);
-	gen(bts, __func__);
-}
-
-static inline void test_si2q_mu(void)
-{
-	struct gsm_bts *bts;
-	struct gsm_network *network = bsc_network_init(tall_bsc_ctx, 1, 1, NULL);
-	printf("Test SI2quater multiple UARFCNs:\n");
-
-	if (!network)
-		exit(1);
-	bts = gsm_bts_alloc(network, 0);
-
-	_bts_uarfcn_add(bts, 10564, 318, 0);
-	_bts_uarfcn_add(bts, 10612, 319, 0);
-	_bts_uarfcn_add(bts, 10612, 31, 0);
-	_bts_uarfcn_add(bts, 10612, 19, 0);
-	_bts_uarfcn_add(bts, 10613, 64, 0);
-	_bts_uarfcn_add(bts, 10613, 164, 0);
-	_bts_uarfcn_add(bts, 10613, 14, 0);
-}
-
-static inline void test_si2q_u(void)
-{
-	struct gsm_bts *bts;
-	struct gsm_network *network = bsc_network_init(NULL, 1, 1, NULL);
-	printf("Testing SYSINFO_TYPE_2quater UARFCN generation:\n");
-
-	if (!network)
-		exit(1);
-
-	bts = gsm_bts_alloc(network, 0);
-
-	/* first generate invalid SI as no UARFCN added */
-	gen(bts, __func__);
-
-	/* subsequent calls should produce valid SI if there's enough memory */
-	_bts_uarfcn_add(bts, 1982, 13, 1);
-	_bts_uarfcn_add(bts, 1982, 44, 0);
-	_bts_uarfcn_add(bts, 1982, 61, 1);
-	_bts_uarfcn_add(bts, 1982, 89, 1);
-	_bts_uarfcn_add(bts, 1982, 113, 0);
-	_bts_uarfcn_add(bts, 1982, 123, 0);
-	_bts_uarfcn_add(bts, 1982, 56, 1);
-	_bts_uarfcn_add(bts, 1982, 72, 1);
-	_bts_uarfcn_add(bts, 1982, 223, 1);
-	_bts_uarfcn_add(bts, 1982, 14, 0);
-	_bts_uarfcn_add(bts, 1982, 88, 0);
-}
-
-static inline void test_si2q_e(void)
-{
-	struct gsm_bts *bts;
-	struct gsm_network *network = bsc_network_init(NULL, 1, 1, NULL);
-	printf("Testing SYSINFO_TYPE_2quater EARFCN generation:\n");
-
-	if (!network)
-		exit(1);
-
-	bts = gsm_bts_alloc(network, 0);
-
-	bts->si_common.si2quater_neigh_list.arfcn = bts->si_common.data.earfcn_list;
-	bts->si_common.si2quater_neigh_list.meas_bw = bts->si_common.data.meas_bw_list;
-	bts->si_common.si2quater_neigh_list.length = MAX_EARFCN_LIST;
-	bts->si_common.si2quater_neigh_list.thresh_hi = 5;
-
-	osmo_earfcn_init(&bts->si_common.si2quater_neigh_list);
-
-	/* first generate invalid SI as no EARFCN added */
-	gen(bts, __func__);
-
-	/* subsequent calls should produce valid SI if there's enough memory and EARFCNs */
-	add_earfcn_b(bts, 1917, 5);
-	del_earfcn_b(bts, 1917);
-	add_earfcn_b(bts, 1917, 1);
-	add_earfcn_b(bts, 1932, OSMO_EARFCN_MEAS_INVALID);
-	add_earfcn_b(bts, 1937, 2);
-	add_earfcn_b(bts, 1945, OSMO_EARFCN_MEAS_INVALID);
-	add_earfcn_b(bts, 1965, OSMO_EARFCN_MEAS_INVALID);
-	add_earfcn_b(bts, 1967, 4);
-	add_earfcn_b(bts, 1982, 3);
-}
-
-static inline void test_si2q_long(void)
-{
-	struct gsm_bts *bts;
-	struct gsm_network *network = bsc_network_init(tall_bsc_ctx, 1, 1, NULL);
-	printf("Testing SYSINFO_TYPE_2quater combined EARFCN & UARFCN generation:\n");
-
-	if (!network)
-		exit(1);
-
-	bts = gsm_bts_alloc(network, 0);
-
-	bts->si_common.si2quater_neigh_list.arfcn = bts->si_common.data.earfcn_list;
-	bts->si_common.si2quater_neigh_list.meas_bw = bts->si_common.data.meas_bw_list;
-	bts->si_common.si2quater_neigh_list.length = MAX_EARFCN_LIST;
-	bts->si_common.si2quater_neigh_list.thresh_hi = 5;
-
-	osmo_earfcn_init(&bts->si_common.si2quater_neigh_list);
-
-	bts_earfcn_add(bts, 1922, 11, 22, 8,32, 8);
-	bts_earfcn_add(bts, 1922, 11, 22, 8, 32, 8);
-	bts_earfcn_add(bts, 1924, 11, 12, 6, 11, 5);
-	bts_earfcn_add(bts, 1923, 11, 12, 6, 11, 5);
-	bts_earfcn_add(bts, 1925, 11, 12, 6, 11, 5);
-	bts_earfcn_add(bts, 2111, 11, 12, 6, 11, 5);
-	bts_earfcn_add(bts, 2112, 11, 12, 6, 11, 4);
-	bts_earfcn_add(bts, 2113, 11, 12, 6, 11, 3);
-	bts_earfcn_add(bts, 2114, 11, 12, 6, 11, 2);
-	bts_earfcn_add(bts, 2131, 11, 12, 6, 11, 5);
-	bts_earfcn_add(bts, 2132, 11, 12, 6, 11, 4);
-	bts_earfcn_add(bts, 2133, 11, 12, 6, 11, 3);
-	bts_earfcn_add(bts, 2134, 11, 12, 6, 11, 2);
-	bts_earfcn_add(bts, 2121, 11, 12, 6, 11, 5);
-	bts_earfcn_add(bts, 2122, 11, 12, 6, 11, 4);
-	bts_earfcn_add(bts, 2123, 11, 12, 6, 11, 3);
-	bts_earfcn_add(bts, 2124, 11, 12, 6, 11, 2);
-	_bts_uarfcn_add(bts, 1976, 13, 1);
-	_bts_uarfcn_add(bts, 1976, 38, 1);
-	_bts_uarfcn_add(bts, 1976, 44, 1);
-	_bts_uarfcn_add(bts, 1976, 120, 1);
-	_bts_uarfcn_add(bts, 1976, 140, 1);
-	_bts_uarfcn_add(bts, 1976, 163, 1);
-	_bts_uarfcn_add(bts, 1976, 166, 1);
-	_bts_uarfcn_add(bts, 1976, 217, 1);
-	_bts_uarfcn_add(bts, 1976, 224, 1);
-	_bts_uarfcn_add(bts, 1976, 225, 1);
-	_bts_uarfcn_add(bts, 1976, 226, 1);
-}
-
-static void test_mi_functionality(void)
-{
-	const char *imsi_odd  = "987654321098763";
-	const char *imsi_even = "9876543210987654";
-	const uint32_t tmsi = 0xfabeacd0;
-	uint8_t mi[128];
-	unsigned int mi_len;
-	char mi_parsed[GSM48_MI_SIZE];
-
-	printf("Testing parsing and generating TMSI/IMSI\n");
-
-	/* tmsi code */
-	mi_len = gsm48_generate_mid_from_tmsi(mi, tmsi);
-	gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len - 2);
-	COMPARE((uint32_t)strtoul(mi_parsed, NULL, 10), ==, tmsi);
-
-	/* imsi code */
-	mi_len = gsm48_generate_mid_from_imsi(mi, imsi_odd);
-	gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len -2);
-	printf("hex: %s\n", osmo_hexdump(mi, mi_len));
-	COMPARE_STR(mi_parsed, imsi_odd);
-
-	mi_len = gsm48_generate_mid_from_imsi(mi, imsi_even);
-	gsm48_mi_to_string(mi_parsed, sizeof(mi_parsed), mi + 2, mi_len -2);
-	printf("hex: %s\n", osmo_hexdump(mi, mi_len));
-	COMPARE_STR(mi_parsed, imsi_even);
-}
-
-struct {
-	int range;
-	int arfcns_num;
-	int arfcns[RANGE_ENC_MAX_ARFCNS];
-} arfcn_test_ranges[] = {
-	{ARFCN_RANGE_512, 12,
-		{ 1, 12, 31, 51, 57, 91, 97, 98, 113, 117, 120, 125 }},
-	{ARFCN_RANGE_512, 17,
-		{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }},
-	{ARFCN_RANGE_512, 18,
-		{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 }},
-	{ARFCN_RANGE_512, 18,
-		{ 1, 17, 31, 45, 58, 79, 81, 97,
-		  113, 127, 213, 277, 287, 311, 331, 391,
-		  417, 511 }},
-	{ARFCN_RANGE_512, 6,
-		{ 1, 17, 31, 45, 58, 79 }},
-	{ARFCN_RANGE_512, 6,
-		{ 10, 17, 31, 45, 58, 79 }},
-	{ARFCN_RANGE_1024, 17,
-		{ 0, 17, 31, 45, 58, 79, 81, 97,
-		  113, 127, 213, 277, 287, 311, 331, 391,
-		  1023 }},
-	{ARFCN_RANGE_1024, 16,
-		{ 17, 31, 45, 58, 79, 81, 97, 113,
-		  127, 213, 277, 287, 311, 331, 391, 1023 }},
-	{-1}
-};
-
-static int test_single_range_encoding(int range, const int *orig_arfcns,
-				       int arfcns_num, int silent)
-{
-	int arfcns[RANGE_ENC_MAX_ARFCNS];
-	int w[RANGE_ENC_MAX_ARFCNS];
-	int f0_included = 0;
-	int rc, f0;
-	uint8_t chan_list[16] = {0};
-	struct gsm_sysinfo_freq dec_freq[1024] = {{0}};
-	int dec_arfcns[RANGE_ENC_MAX_ARFCNS] = {0};
-	int dec_arfcns_count = 0;
-	int arfcns_used = 0;
-	int i;
-
-	arfcns_used = arfcns_num;
-	memmove(arfcns, orig_arfcns, sizeof(arfcns));
-
-	f0 = range == ARFCN_RANGE_1024 ? 0 : arfcns[0];
-	/*
-	 * Manipulate the ARFCN list according to the rules in J4 depending
-	 * on the selected range.
-	 */
-	arfcns_used = range_enc_filter_arfcns(arfcns, arfcns_used,
-					      f0, &f0_included);
-
-	memset(w, 0, sizeof(w));
-	range_enc_arfcns(range, arfcns, arfcns_used, w, 0);
-
-	if (!silent)
-		fprintf(stderr, "range=%d, arfcns_used=%d, f0=%d, f0_included=%d\n",
-			range, arfcns_used, f0, f0_included);
-
-	/* Select the range and the amount of bits needed */
-	switch (range) {
-	case ARFCN_RANGE_128:
-		range_enc_range128(chan_list, f0, w);
-		break;
-	case ARFCN_RANGE_256:
-		range_enc_range256(chan_list, f0, w);
-		break;
-	case ARFCN_RANGE_512:
-		range_enc_range512(chan_list, f0, w);
-		break;
-	case ARFCN_RANGE_1024:
-		range_enc_range1024(chan_list, f0, f0_included, w);
-		break;
-	default:
-		return 1;
-	};
-
-	if (!silent)
-		printf("chan_list = %s\n",
-		       osmo_hexdump(chan_list, sizeof(chan_list)));
-
-	rc = gsm48_decode_freq_list(dec_freq, chan_list, sizeof(chan_list),
-				    0xfe, 1);
-	if (rc != 0) {
-		printf("Cannot decode freq list, rc = %d\n", rc);
-		return 1;
-	}
-
-	for (i = 0; i < ARRAY_SIZE(dec_freq); i++) {
-		if (dec_freq[i].mask &&
-		    dec_arfcns_count < ARRAY_SIZE(dec_arfcns))
-			dec_arfcns[dec_arfcns_count++] = i;
-	}
-
-	if (!silent) {
-		printf("Decoded freqs %d (expected %d)\n",
-		       dec_arfcns_count, arfcns_num);
-		printf("Decoded: ");
-		for (i = 0; i < dec_arfcns_count; i++) {
-			printf("%d ", dec_arfcns[i]);
-			if (dec_arfcns[i] != orig_arfcns[i])
-				printf("(!= %d) ", orig_arfcns[i]);
-		}
-		printf("\n");
-	}
-
-	if (dec_arfcns_count != arfcns_num) {
-		printf("Wrong number of arfcns\n");
-		return 1;
-	}
-
-	if (memcmp(dec_arfcns, orig_arfcns, sizeof(dec_arfcns)) != 0) {
-		printf("Decoding error, got wrong freqs\n");
-		fprintf(stderr, " w = ");
-		for (i = 0; i < ARRAY_SIZE(w); i++)
-			fprintf(stderr, "%d ", w[i]);
-		fprintf(stderr, "\n");
-		return 1;
-	}
-
-	return 0;
-}
-
-static void test_random_range_encoding(int range, int max_arfcn_num)
-{
-	int arfcns_num = 0;
-	int test_idx;
-	int rc, max_count;
-	int num_tests = 1024;
-
-	printf("Random range test: range %d, max num ARFCNs %d\n",
-	       range, max_arfcn_num);
-
-	srandom(1);
-
-	for (max_count = 1; max_count < max_arfcn_num; max_count++) {
-		for (test_idx = 0; test_idx < num_tests; test_idx++) {
-			int count;
-			int i;
-			int min_freq = 0;
-
-			int rnd_arfcns[RANGE_ENC_MAX_ARFCNS] = {0};
-			char rnd_arfcns_set[1024] = {0};
-
-			if (range < ARFCN_RANGE_1024)
-				min_freq = random() % (1023 - range);
-
-			for (count = max_count; count; ) {
-				int arfcn = min_freq + random() % (range + 1);
-				OSMO_ASSERT(arfcn < ARRAY_SIZE(rnd_arfcns_set));
-
-				if (!rnd_arfcns_set[arfcn]) {
-					rnd_arfcns_set[arfcn] = 1;
-					count -= 1;
-				}
-			}
-
-			arfcns_num = 0;
-			for (i = 0; i < ARRAY_SIZE(rnd_arfcns_set); i++)
-				if (rnd_arfcns_set[i])
-					rnd_arfcns[arfcns_num++] = i;
-
-			rc = test_single_range_encoding(range, rnd_arfcns,
-							arfcns_num, 1);
-			if (rc != 0) {
-				printf("Failed on test %d, range %d, num ARFCNs %d\n",
-				       test_idx, range, max_count);
-				test_single_range_encoding(range, rnd_arfcns,
-							   arfcns_num, 0);
-				return;
-			}
-		}
-	}
-}
-
-static void test_range_encoding()
-{
-	int *arfcns;
-	int arfcns_num = 0;
-	int test_idx;
-	int range;
-
-	for (test_idx = 0; arfcn_test_ranges[test_idx].arfcns_num > 0; test_idx++)
-	{
-		arfcns_num = arfcn_test_ranges[test_idx].arfcns_num;
-		arfcns = &arfcn_test_ranges[test_idx].arfcns[0];
-		range = arfcn_test_ranges[test_idx].range;
-
-		printf("Range test %d: range %d, num ARFCNs %d\n",
-		       test_idx, range, arfcns_num);
-
-		test_single_range_encoding(range, arfcns, arfcns_num, 0);
-	}
-
-	test_random_range_encoding(ARFCN_RANGE_128, 29);
-	test_random_range_encoding(ARFCN_RANGE_256, 22);
-	test_random_range_encoding(ARFCN_RANGE_512, 18);
-	test_random_range_encoding(ARFCN_RANGE_1024, 16);
-}
-
-static int freqs1[] = {
-	12, 70, 121, 190, 250, 320, 401, 475, 520, 574, 634, 700, 764, 830, 905, 980
-};
-
-static int freqs2[] = {
-	402, 460, 1, 67, 131, 197, 272, 347,
-};
-
-static int freqs3[] = {
-	68, 128, 198, 279, 353, 398, 452,
-
-};
-
-static int w_out[] = {
-	122, 2, 69, 204, 75, 66, 60, 70, 83, 3, 24, 67, 54, 64, 70, 9,
-};
-
-static int range128[] = {
-	1, 1 + 127,
-};
-
-static int range256[] = {
-	1, 1 + 128,
-};
-
-static int range512[] = {
-	1, 1+ 511,
-};
-
-
-static void test_arfcn_filter()
-{
-	int arfcns[50], i, res, f0_included;
-	for (i = 0; i < ARRAY_SIZE(arfcns); ++i)
-		arfcns[i] = (i + 1) * 2;
-
-	/* check that the arfcn is taken out. f0_included is only set for Range1024 */
-	f0_included = 24;
-	res = range_enc_filter_arfcns(arfcns, ARRAY_SIZE(arfcns),
-			arfcns[0], &f0_included);
-	VERIFY(res, ==, ARRAY_SIZE(arfcns) - 1);
-	VERIFY(f0_included, ==, 1);
-	for (i = 0; i < res; ++i)
-		VERIFY(arfcns[i], ==, ((i+2) * 2) - (2+1));
-
-	/* check with range1024, ARFCN 0 is included */
-	for (i = 0; i < ARRAY_SIZE(arfcns); ++i)
-		arfcns[i] = i * 2;
-	res = range_enc_filter_arfcns(arfcns, ARRAY_SIZE(arfcns),
-			0, &f0_included);
-	VERIFY(res, ==, ARRAY_SIZE(arfcns) - 1);
-	VERIFY(f0_included, ==, 1);
-	for (i = 0; i < res; ++i)
-		VERIFY(arfcns[i], ==, (i + 1) * 2 - 1);
-
-	/* check with range1024, ARFCN 0 not included */
-	for (i = 0; i < ARRAY_SIZE(arfcns); ++i)
-		arfcns[i] = (i + 1) * 2;
-	res = range_enc_filter_arfcns(arfcns, ARRAY_SIZE(arfcns),
-			0, &f0_included);
-	VERIFY(res, ==, ARRAY_SIZE(arfcns));
-	VERIFY(f0_included, ==, 0);
-	for (i = 0; i < res; ++i)
-		VERIFY(arfcns[i], ==, ((i + 1) * 2) - 1);
-}
-
-static void test_print_encoding()
-{
-	int rc;
-	int w[17];
-	uint8_t chan_list[16];
-	memset(chan_list, 0x23, sizeof(chan_list));
-
-	for (rc = 0; rc < ARRAY_SIZE(w); ++rc)
-		switch (rc % 3) {
-		case 0:
-			w[rc] = 0xAAAA;
-			break;
-		case 1:
-			w[rc] = 0x5555;
-			break;
-		case 2:
-			w[rc] = 0x9696;
-			break;
-		}
-
-	range_enc_range512(chan_list, (1 << 9) | 0x96, w);
-
-	printf("Range512: %s\n", osmo_hexdump(chan_list, ARRAY_SIZE(chan_list)));
-}
-
-static void test_si_range_helpers()
-{
-	int ws[(sizeof(freqs1)/sizeof(freqs1[0]))];
-	int i, f0 = 0xFFFFFF;
-
-	memset(&ws[0], 0x23, sizeof(ws));
-
-	i = range_enc_find_index(1023, freqs1, ARRAY_SIZE(freqs1));
-	printf("Element is: %d => freqs[i] = %d\n", i, i >= 0 ? freqs1[i] : -1);
-	VERIFY(i, ==, 2);
-
-	i = range_enc_find_index(511, freqs2, ARRAY_SIZE(freqs2));
-	printf("Element is: %d => freqs[i] = %d\n", i,  i >= 0 ? freqs2[i] : -1);
-	VERIFY(i, ==, 2);
-
-	i = range_enc_find_index(511, freqs3, ARRAY_SIZE(freqs3));
-	printf("Element is: %d => freqs[i] = %d\n", i,  i >= 0 ? freqs3[i] : -1);
-	VERIFY(i, ==, 0);
-
-	range_enc_arfcns(1023, freqs1, ARRAY_SIZE(freqs1), ws, 0);
-
-	for (i = 0; i < sizeof(freqs1)/sizeof(freqs1[0]); ++i) {
-		printf("w[%d]=%d\n", i, ws[i]);
-		VERIFY(ws[i], ==, w_out[i]);
-	}
-
-	i = range_enc_determine_range(range128, ARRAY_SIZE(range128), &f0);
-	VERIFY(i, ==, ARFCN_RANGE_128);
-	VERIFY(f0, ==, 1);
-
-	i = range_enc_determine_range(range256, ARRAY_SIZE(range256), &f0);
-	VERIFY(i, ==, ARFCN_RANGE_256);
-	VERIFY(f0, ==, 1);
-
-	i = range_enc_determine_range(range512, ARRAY_SIZE(range512), &f0);
-	VERIFY(i, ==, ARFCN_RANGE_512);
-	VERIFY(f0, ==, 1);
-}
-
-static void test_gsm411_rp_ref_wrap(void)
-{
-	struct gsm_subscriber_connection conn;
-	int res;
-
-	printf("testing RP-Reference wrap\n");
-
-	memset(&conn, 0, sizeof(conn));
-	conn.next_rp_ref = 255;
-
-	res = sms_next_rp_msg_ref(&conn.next_rp_ref);
-	printf("Allocated reference: %d\n", res);
-	OSMO_ASSERT(res == 255);
-
-	res = sms_next_rp_msg_ref(&conn.next_rp_ref);
-	printf("Allocated reference: %d\n", res);
-	OSMO_ASSERT(res == 0);
-
-	res = sms_next_rp_msg_ref(&conn.next_rp_ref);
-	printf("Allocated reference: %d\n", res);
-	OSMO_ASSERT(res == 1);
-}
-
-int main(int argc, char **argv)
-{
-	osmo_init_logging(&log_info);
-	log_set_log_level(osmo_stderr_target, LOGL_INFO);
-
-	test_location_area_identifier();
-	test_mi_functionality();
-
-	test_si_range_helpers();
-	test_arfcn_filter();
-	test_print_encoding();
-	test_range_encoding();
-	test_gsm411_rp_ref_wrap();
-
-	test_si2q_segfault();
-	test_si2q_e();
-	test_si2q_u();
-	test_si2q_mu();
-	test_si2q_long();
-
-	printf("Done.\n");
-
-	return EXIT_SUCCESS;
-}
diff --git a/tests/gsm0408/gsm0408_test.ok b/tests/gsm0408/gsm0408_test.ok
deleted file mode 100644
index d30f421..0000000
--- a/tests/gsm0408/gsm0408_test.ok
+++ /dev/null
@@ -1,204 +0,0 @@
-Testing test location area identifier
-Testing parsing and generating TMSI/IMSI
-hex: 17 08 99 78 56 34 12 90 78 36 
-hex: 17 09 91 78 56 34 12 90 78 56 f4 
-Element is: 2 => freqs[i] = 121
-Element is: 2 => freqs[i] = 1
-Element is: 0 => freqs[i] = 68
-w[0]=122
-w[1]=2
-w[2]=69
-w[3]=204
-w[4]=75
-w[5]=66
-w[6]=60
-w[7]=70
-w[8]=83
-w[9]=3
-w[10]=24
-w[11]=67
-w[12]=54
-w[13]=64
-w[14]=70
-w[15]=9
-Range512: 89 4b 2a 95 65 95 55 2c a9 55 aa 55 6a 95 59 55 
-Range test 0: range 511, num ARFCNs 12
-chan_list = 88 00 98 34 85 36 7c 50 22 dc 5e ec 00 00 00 00 
-Decoded freqs 12 (expected 12)
-Decoded: 1 12 31 51 57 91 97 98 113 117 120 125 
-Range test 1: range 511, num ARFCNs 17
-chan_list = 88 00 82 7f 01 3f 7e 04 0b ff ff fc 10 41 07 e0 
-Decoded freqs 17 (expected 17)
-Decoded: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 
-Range test 2: range 511, num ARFCNs 18
-chan_list = 88 00 82 7f 01 7f 7e 04 0b ff ff fc 10 41 07 ff 
-Decoded freqs 18 (expected 18)
-Decoded: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 
-Range test 3: range 511, num ARFCNs 18
-chan_list = 88 00 94 3a 44 32 d7 2a 43 2a 13 94 e5 38 39 f6 
-Decoded freqs 18 (expected 18)
-Decoded: 1 17 31 45 58 79 81 97 113 127 213 277 287 311 331 391 417 511 
-Range test 4: range 511, num ARFCNs 6
-chan_list = 88 00 8b 3c 88 b9 6b 00 00 00 00 00 00 00 00 00 
-Decoded freqs 6 (expected 6)
-Decoded: 1 17 31 45 58 79 
-Range test 5: range 511, num ARFCNs 6
-chan_list = 88 05 08 fc 88 b9 6b 00 00 00 00 00 00 00 00 00 
-Decoded freqs 6 (expected 6)
-Decoded: 10 17 31 45 58 79 
-Range test 6: range 1023, num ARFCNs 17
-chan_list = 84 71 e4 ab b9 58 05 cb 39 17 fd b0 75 62 0f 2f 
-Decoded freqs 17 (expected 17)
-Decoded: 0 17 31 45 58 79 81 97 113 127 213 277 287 311 331 391 1023 
-Range test 7: range 1023, num ARFCNs 16
-chan_list = 80 71 e4 ab b9 58 05 cb 39 17 fd b0 75 62 0f 2f 
-Decoded freqs 16 (expected 16)
-Decoded: 17 31 45 58 79 81 97 113 127 213 277 287 311 331 391 1023 
-Random range test: range 127, max num ARFCNs 29
-Random range test: range 255, max num ARFCNs 22
-Random range test: range 511, max num ARFCNs 18
-Random range test: range 1023, max num ARFCNs 16
-testing RP-Reference wrap
-Allocated reference: 255
-Allocated reference: 0
-Allocated reference: 1
-Test SI2quater UARFCN (same scrambling code and diversity):
-generating SI2quater for 0 EARFCNs and 1 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 52 88 0a 7e 0b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 2 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 52 e8 0a 7f 52 88 0a 7e 0b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 2 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 52 e8 0a 7f 52 88 0a 7e 0b 2b 2b 2b 2b 2b 2b 2b 2b 
-Testing SYSINFO_TYPE_2quater EARFCN generation:
-generating SI2quater for 0 EARFCNs and 0 UARFCNs...
-generated invalid SI2quater [00/00]: [23] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-added EARFCN 1917 - generating SI2quater for 1 EARFCNs and 0 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 04 86 59 83 be e8 50 0b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-removed EARFCN 1917 - generating SI2quater for 0 EARFCNs and 0 UARFCNs...
-generated invalid SI2quater [00/00]: [23] 59 06 07 c0 00 04 86 59 83 be e8 50 0b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-added EARFCN 1917 - generating SI2quater for 1 EARFCNs and 0 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 04 86 59 83 be c8 50 0b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-added EARFCN 1932 - generating SI2quater for 2 EARFCNs and 0 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 04 86 59 83 be cc 1e 30 14 03 2b 2b 2b 2b 2b 2b 2b 2b 
-added EARFCN 1937 - generating SI2quater for 3 EARFCNs and 0 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 04 86 59 83 be cc 1e 31 07 91 a0 a0 2b 2b 2b 2b 2b 2b 
-added EARFCN 1945 - generating SI2quater for 4 EARFCNs and 0 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 04 86 59 83 be cc 1e 31 07 91 a8 3c c8 28 0b 2b 2b 2b 
-added EARFCN 1965 - generating SI2quater for 5 EARFCNs and 0 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 04 86 59 83 be cc 1e 31 07 91 a8 3c ca 0f 5a 0a 03 2b 
-added EARFCN 1967 - generating SI2quater for 6 EARFCNs and 0 UARFCNs...
-generated valid SI2quater [00/01]: [23] 59 06 07 c0 20 04 86 59 83 be cc 1e 31 07 91 a8 3c ca 0f 5a 0a 03 2b 
-generated valid SI2quater [01/01]: [23] 59 06 07 c2 20 04 86 59 83 d7 e0 50 0b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-added EARFCN 1982 - generating SI2quater for 7 EARFCNs and 0 UARFCNs...
-generated valid SI2quater [00/01]: [23] 59 06 07 c0 20 04 86 59 83 be cc 1e 31 07 91 a8 3c ca 0f 5a 0a 03 2b 
-generated valid SI2quater [01/01]: [23] 59 06 07 c2 20 04 86 59 83 d7 e4 1e fa c2 80 2b 2b 2b 2b 2b 2b 2b 2b 
-Testing SYSINFO_TYPE_2quater UARFCN generation:
-generating SI2quater for 0 EARFCNs and 0 UARFCNs...
-generated invalid SI2quater [00/00]: [23] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
-generating SI2quater for 0 EARFCNs and 1 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 0c 1a 0b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 2 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 14 1a 1f 0b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 3 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 18 58 12 f0 83 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 4 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 20 58 2e f0 f2 03 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 5 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 28 58 2e 22 f2 4e 83 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 6 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 34 1a 64 26 5d f2 05 03 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 7 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 38 58 12 22 fd ce 8e 05 03 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 8 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 40 58 1d 22 fa ce 88 85 7b 0b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 9 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 4c 7a 34 0e 64 77 85 43 55 c8 0b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 10 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 50 1c 3b 31 fa dd 88 85 7b c4 1c 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 11 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 0f 7c 58 1c 3b 25 7a ea 08 91 fb c4 1f b0 2b 2b 2b 
-Test SI2quater multiple UARFCNs:
-generating SI2quater for 0 EARFCNs and 1 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 52 88 0a 7c 0b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 2 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 52 e8 0a 7f 52 88 0a 7c 0b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 3 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 52 e8 12 7e e0 a9 44 05 3e 0b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 4 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 52 e8 18 3f f4 90 54 a2 02 9f 03 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 5 UARFCNs...
-generated valid SI2quater [00/00]: [23] 59 06 07 c0 00 25 52 ea 08 81 52 e8 18 3f f4 90 54 a2 02 9f 03 2b 2b 
-generating SI2quater for 0 EARFCNs and 6 UARFCNs...
-generated valid SI2quater [00/01]: [23] 59 06 07 c0 20 25 52 ea 08 81 52 e8 10 3f f4 a9 75 04 a4 0b 2b 2b 2b 
-generated valid SI2quater [01/01]: [23] 59 06 07 c2 20 25 52 e8 28 81 df 7f fa 32 d4 a2 02 9f 03 2b 2b 2b 2b 
-generating SI2quater for 0 EARFCNs and 7 UARFCNs...
-generated valid SI2quater [00/01]: [23] 59 06 07 c0 20 25 52 ea 10 81 ce a9 74 08 1f fa 54 ba 82 52 03 2b 2b 
-generated valid SI2quater [01/01]: [23] 59 06 07 c2 20 25 52 e8 30 81 d3 7f fd b2 86 54 a2 02 9f 03 2b 2b 2b 
-Testing SYSINFO_TYPE_2quater combined EARFCN & UARFCN generation:
-generating SI2quater for 17 EARFCNs and 1 UARFCNs...
-generated valid SI2quater [00/04]: [23] 59 06 07 c0 80 25 0f 70 0c 1a 10 99 66 0f 04 83 c1 1c bb 2b 03 2b 2b 
-generated valid SI2quater [01/04]: [23] 59 06 07 c2 80 04 86 59 83 c2 6c 1e 0f 60 f0 bb 08 3f d7 2e ca c1 2b 
-generated valid SI2quater [02/04]: [23] 59 06 07 c4 80 04 86 59 84 20 64 21 06 e1 08 55 08 53 d7 2e ca c1 2b 
-generated valid SI2quater [03/04]: [23] 59 06 07 c6 80 04 86 59 84 2a 64 21 56 e1 0a d5 08 49 d7 2e ca c1 2b 
-generated valid SI2quater [04/04]: [23] 59 06 07 c8 80 04 86 59 84 25 64 21 2e e1 09 94 e5 d9 58 2b 2b 2b 2b 
-generating SI2quater for 17 EARFCNs and 2 UARFCNs...
-generated valid SI2quater [00/04]: [23] 59 06 07 c0 80 25 0f 70 14 4d e7 00 44 b3 07 82 41 e0 8e 5d 95 83 2b 
-generated valid SI2quater [01/04]: [23] 59 06 07 c2 80 04 86 59 83 c2 6c 1e 0f 60 f0 bb 08 3f d7 2e ca c1 2b 
-generated valid SI2quater [02/04]: [23] 59 06 07 c4 80 04 86 59 84 20 64 21 06 e1 08 55 08 53 d7 2e ca c1 2b 
-generated valid SI2quater [03/04]: [23] 59 06 07 c6 80 04 86 59 84 2a 64 21 56 e1 0a d5 08 49 d7 2e ca c1 2b 
-generated valid SI2quater [04/04]: [23] 59 06 07 c8 80 04 86 59 84 25 64 21 2e e1 09 94 e5 d9 58 2b 2b 2b 2b 
-generating SI2quater for 17 EARFCNs and 3 UARFCNs...
-generated valid SI2quater [00/04]: [23] 59 06 07 c0 80 25 0f 70 1c 4d e7 03 04 86 59 83 c1 20 f0 47 2e ca c1 
-generated valid SI2quater [01/04]: [23] 59 06 07 c2 80 04 86 59 83 c2 6c 1e 0f 60 f0 bb 08 3f d7 2e ca c1 2b 
-generated valid SI2quater [02/04]: [23] 59 06 07 c4 80 04 86 59 84 20 64 21 06 e1 08 55 08 53 d7 2e ca c1 2b 
-generated valid SI2quater [03/04]: [23] 59 06 07 c6 80 04 86 59 84 2a 64 21 56 e1 0a d5 08 49 d7 2e ca c1 2b 
-generated valid SI2quater [04/04]: [23] 59 06 07 c8 80 04 86 59 84 25 64 21 2e e1 09 94 e5 d9 58 2b 2b 2b 2b 
-generating SI2quater for 17 EARFCNs and 4 UARFCNs...
-generated valid SI2quater [00/04]: [23] 59 06 07 c0 80 25 0f 70 24 59 fa 26 73 84 86 59 83 c1 1c bb 2b 03 2b 
-generated valid SI2quater [01/04]: [23] 59 06 07 c2 80 04 86 59 83 c1 20 f0 9b 07 83 d8 3c 2e b9 76 56 0b 2b 
-generated valid SI2quater [02/04]: [23] 59 06 07 c4 80 04 86 59 84 1f ec 21 03 21 08 37 08 42 a7 2e ca c1 2b 
-generated valid SI2quater [03/04]: [23] 59 06 07 c6 80 04 86 59 84 29 ec 21 53 21 0a b7 08 56 a7 2e ca c1 2b 
-generated valid SI2quater [04/04]: [23] 59 06 07 c8 80 04 86 59 84 24 ec 21 2b 21 09 77 08 4c a7 2e ca c1 2b 
-generating SI2quater for 17 EARFCNs and 5 UARFCNs...
-generated valid SI2quater [00/04]: [23] 59 06 07 c0 80 25 0f 70 2c 59 fa 30 73 f6 04 86 59 83 c1 1c bb 2b 03 
-generated valid SI2quater [01/04]: [23] 59 06 07 c2 80 04 86 59 83 c1 20 f0 9b 07 83 d8 3c 2e b9 76 56 0b 2b 
-generated valid SI2quater [02/04]: [23] 59 06 07 c4 80 04 86 59 84 1f ec 21 03 21 08 37 08 42 a7 2e ca c1 2b 
-generated valid SI2quater [03/04]: [23] 59 06 07 c6 80 04 86 59 84 29 ec 21 53 21 0a b7 08 56 a7 2e ca c1 2b 
-generated valid SI2quater [04/04]: [23] 59 06 07 c8 80 04 86 59 84 24 ec 21 2b 21 09 77 08 4c a7 2e ca c1 2b 
-generating SI2quater for 17 EARFCNs and 6 UARFCNs...
-generated valid SI2quater [00/05]: [23] 59 06 07 c0 a0 25 0f 70 34 f1 ae 15 f3 f4 83 04 86 59 72 ec ac 0b 2b 
-generated valid SI2quater [01/05]: [23] 59 06 07 c2 a0 04 86 59 83 c1 20 f0 48 3c 26 c1 e0 f5 cb b2 b0 2b 2b 
-generated valid SI2quater [02/05]: [23] 59 06 07 c4 a0 04 86 59 83 c2 ec 20 ff 61 08 19 08 41 b7 2e ca c1 2b 
-generated valid SI2quater [03/05]: [23] 59 06 07 c6 a0 04 86 59 84 21 54 21 4f 61 0a 99 08 55 b7 2e ca c1 2b 
-generated valid SI2quater [04/05]: [23] 59 06 07 c8 a0 04 86 59 84 2b 54 21 27 61 09 59 08 4b b7 2e ca c1 2b 
-generated valid SI2quater [05/05]: [23] 59 06 07 ca a0 04 86 59 84 26 53 97 65 60 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 17 EARFCNs and 7 UARFCNs...
-generated valid SI2quater [00/05]: [23] 59 06 07 c0 a0 25 0f 70 3c f1 ae 15 f3 f4 83 01 84 86 59 72 ec ac 0b 
-generated valid SI2quater [01/05]: [23] 59 06 07 c2 a0 04 86 59 83 c1 20 f0 48 3c 26 c1 e0 f5 cb b2 b0 2b 2b 
-generated valid SI2quater [02/05]: [23] 59 06 07 c4 a0 04 86 59 83 c2 ec 20 ff 61 08 19 08 41 b7 2e ca c1 2b 
-generated valid SI2quater [03/05]: [23] 59 06 07 c6 a0 04 86 59 84 21 54 21 4f 61 0a 99 08 55 b7 2e ca c1 2b 
-generated valid SI2quater [04/05]: [23] 59 06 07 c8 a0 04 86 59 84 2b 54 21 27 61 09 59 08 4b b7 2e ca c1 2b 
-generated valid SI2quater [05/05]: [23] 59 06 07 ca a0 04 86 59 84 26 53 97 65 60 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 17 EARFCNs and 8 UARFCNs...
-generated valid SI2quater [00/02]: [23] 59 06 07 c0 40 25 0f 70 45 19 a0 0d 7d 7e a6 19 e7 00 44 b3 07 82 41 
-generated valid SI2quater [01/02]: [23] 59 06 07 c2 40 04 86 59 84 2b 54 21 27 61 09 59 08 4b b7 2e ca c1 2b 
-generated valid SI2quater [02/02]: [23] 59 06 07 c4 40 04 86 59 84 26 53 97 65 60 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 17 EARFCNs and 9 UARFCNs...
-generated valid SI2quater [00/02]: [23] 59 06 07 c0 40 25 0f 70 4d 19 a0 26 fd 66 a6 03 e7 fa 10 99 66 0f 04 
-generated valid SI2quater [01/02]: [23] 59 06 07 c2 40 04 86 59 84 2b 54 21 27 61 09 59 08 4b b7 2e ca c1 2b 
-generated valid SI2quater [02/02]: [23] 59 06 07 c4 40 04 86 59 84 26 53 97 65 60 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 17 EARFCNs and 10 UARFCNs...
-generated valid SI2quater [00/05]: [23] 59 06 07 c0 a0 25 0f 70 55 47 89 1e fd 7c b0 00 e7 9b b0 04 12 c8 2b 
-generated valid SI2quater [01/05]: [23] 59 06 07 c2 a0 04 86 59 83 c1 20 f0 48 3c 26 c1 e0 f5 cb b2 b0 2b 2b 
-generated valid SI2quater [02/05]: [23] 59 06 07 c4 a0 04 86 59 83 c2 ec 20 ff 61 08 19 08 41 b7 2e ca c1 2b 
-generated valid SI2quater [03/05]: [23] 59 06 07 c6 a0 04 86 59 84 21 54 21 4f 61 0a 99 08 55 b7 2e ca c1 2b 
-generated valid SI2quater [04/05]: [23] 59 06 07 c8 a0 04 86 59 84 2b 54 21 27 61 09 59 08 4b b7 2e ca c1 2b 
-generated valid SI2quater [05/05]: [23] 59 06 07 ca a0 04 86 59 84 26 53 97 65 60 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-generating SI2quater for 17 EARFCNs and 11 UARFCNs...
-generated valid SI2quater [00/05]: [23] 59 06 07 c0 a0 25 0f 70 5d 47 89 1e fd 7c b0 01 67 9b b3 f8 2b 2b 2b 
-generated valid SI2quater [01/05]: [23] 59 06 07 c2 a0 04 86 59 83 c1 20 f0 48 3c 26 c1 e0 f5 cb b2 b0 2b 2b 
-generated valid SI2quater [02/05]: [23] 59 06 07 c4 a0 04 86 59 83 c2 ec 20 ff 61 08 19 08 41 b7 2e ca c1 2b 
-generated valid SI2quater [03/05]: [23] 59 06 07 c6 a0 04 86 59 84 21 54 21 4f 61 0a 99 08 55 b7 2e ca c1 2b 
-generated valid SI2quater [04/05]: [23] 59 06 07 c8 a0 04 86 59 84 2b 54 21 27 61 09 59 08 4b b7 2e ca c1 2b 
-generated valid SI2quater [05/05]: [23] 59 06 07 ca a0 04 86 59 84 26 53 97 65 60 2b 2b 2b 2b 2b 2b 2b 2b 2b 
-Done.
diff --git a/tests/gtphub/Makefile.am b/tests/gtphub/Makefile.am
deleted file mode 100644
index f2a6b88..0000000
--- 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 e7c27d2..0000000
--- 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 e60d5f2..0000000
--- 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/mgcp/Makefile.am b/tests/legacy_mgcp/Makefile.am
similarity index 66%
rename from tests/mgcp/Makefile.am
rename to tests/legacy_mgcp/Makefile.am
index af9216f..e5f6888 100644
--- a/tests/mgcp/Makefile.am
+++ b/tests/legacy_mgcp/Makefile.am
@@ -8,11 +8,9 @@
 	-Wall \
 	-ggdb3 \
 	$(LIBOSMOCORE_CFLAGS) \
-	$(LIBOSMOGSM_FLAGS) \
 	$(LIBOSMONETIF_CFLAGS) \
-	$(LIBOSMOSCCP_CFLAGS) \
-	$(COVERAGE_CFLAGS) \
 	$(LIBBCG729_CFLAGS) \
+	$(COVERAGE_CFLAGS) \
 	$(NULL)
 
 AM_LDFLAGS = \
@@ -41,16 +39,12 @@
 	$(NULL)
 
 mgcp_test_LDADD = \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libmgcp/libmgcp.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
+	$(top_builddir)/src/libosmo-legacy-mgcp/libosmo-legacy-mgcp.la \
 	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBOSMOSCCP_LIBS) \
 	$(LIBOSMOVTY_LIBS) \
 	$(LIBRARY_DL) \
 	$(LIBOSMONETIF_LIBS) \
-	-lrt \
+	$(LIBRARY_GSM) \
 	-lm  \
 	$(NULL)
 
@@ -59,18 +53,13 @@
 	$(NULL)
 
 mgcp_transcoding_test_LDADD = \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libmgcp/libmgcp.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
+	$(top_builddir)/src/libosmo-legacy-mgcp/libosmo-legacy-mgcp.la \
 	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBBCG729_LIBS) \
-	$(LIBOSMOSCCP_LIBS) \
 	$(LIBOSMOVTY_LIBS) \
+	$(LIBBCG729_LIBS) \
 	$(LIBRARY_DL) \
 	$(LIBOSMONETIF_LIBS) \
 	$(LIBRARY_GSM) \
-	-lrt \
 	-lm \
 	$(NULL)
 
@@ -79,15 +68,10 @@
 	$(NULL)
 
 mgcpgw_client_test_LDADD = \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libmgcp/libmgcp.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
+	$(top_builddir)/src/libosmo-legacy-mgcp/libosmo-legacy-mgcp.la \
 	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBOSMOSCCP_LIBS) \
 	$(LIBOSMOVTY_LIBS) \
 	$(LIBRARY_DL) \
 	$(LIBOSMONETIF_LIBS) \
-	-lrt \
-	-lm  \
+	$(LIBRARY_GSM) \
 	$(NULL)
diff --git a/tests/mgcp/mgcp_test.c b/tests/legacy_mgcp/mgcp_test.c
similarity index 98%
rename from tests/mgcp/mgcp_test.c
rename to tests/legacy_mgcp/mgcp_test.c
index 43a453a..bbb0db2 100644
--- a/tests/mgcp/mgcp_test.c
+++ b/tests/legacy_mgcp/mgcp_test.c
@@ -19,9 +19,9 @@
 #undef _GNU_SOURCE
 #define _GNU_SOURCE
 
-#include <openbsc/mgcp.h>
-#include <openbsc/vty.h>
-#include <openbsc/mgcp_internal.h>
+#include <osmocom/legacy_mgcp/mgcp.h>
+#include <osmocom/legacy_mgcp/vty.h>
+#include <osmocom/legacy_mgcp/mgcp_internal.h>
 
 #include <osmocom/core/application.h>
 #include <osmocom/core/talloc.h>
@@ -1201,6 +1201,14 @@
 	OSMO_ASSERT(osmux_used_cid() == 0);
 }
 
+static const struct log_info_cat log_categories[] = {
+};
+
+const struct log_info log_info = {
+        .cat = log_categories,
+        .num_cat = ARRAY_SIZE(log_categories),
+};
+
 int main(int argc, char **argv)
 {
 	msgb_talloc_ctx_init(NULL, 0);
diff --git a/tests/mgcp/mgcp_test.ok b/tests/legacy_mgcp/mgcp_test.ok
similarity index 100%
rename from tests/mgcp/mgcp_test.ok
rename to tests/legacy_mgcp/mgcp_test.ok
diff --git a/tests/mgcp/mgcp_transcoding_test.c b/tests/legacy_mgcp/mgcp_transcoding_test.c
similarity index 98%
rename from tests/mgcp/mgcp_transcoding_test.c
rename to tests/legacy_mgcp/mgcp_transcoding_test.c
index c5c0a0b..61de25f 100644
--- a/tests/mgcp/mgcp_transcoding_test.c
+++ b/tests/legacy_mgcp/mgcp_transcoding_test.c
@@ -4,23 +4,22 @@
 #include <string.h>
 #include <err.h>
 #include <stdint.h>
+#include <errno.h>
 
 #include <osmocom/core/talloc.h>
 #include <osmocom/core/application.h>
 
 #include <osmocom/netif/rtp.h>
 
-#include <openbsc/debug.h>
-#include <openbsc/gsm_data.h>
-#include <openbsc/mgcp.h>
-#include <openbsc/mgcp_internal.h>
+#include <osmocom/legacy_mgcp/mgcp.h>
+#include <osmocom/legacy_mgcp/mgcp_internal.h>
 
 #include "bscconfig.h"
 #ifndef BUILD_MGCP_TRANSCODING
 #error "Requires MGCP transcoding enabled (see --enable-mgcp-transcoding)"
 #endif
 
-#include "openbsc/mgcp_transcode.h"
+#include <osmocom/legacy_mgcp/mgcp_transcode.h>
 
 uint8_t *audio_frame_l16[] = {
 };
@@ -578,6 +577,14 @@
 	return 0;
 }
 
+static const struct log_info_cat log_categories[] = {
+};
+
+const struct log_info log_info = {
+        .cat = log_categories,
+        .num_cat = ARRAY_SIZE(log_categories),
+};
+
 int main(int argc, char **argv)
 {
 	int rc;
diff --git a/tests/mgcp/mgcp_transcoding_test.ok b/tests/legacy_mgcp/mgcp_transcoding_test.ok
similarity index 100%
rename from tests/mgcp/mgcp_transcoding_test.ok
rename to tests/legacy_mgcp/mgcp_transcoding_test.ok
diff --git a/tests/mgcp/mgcpgw_client_test.c b/tests/legacy_mgcp/mgcpgw_client_test.c
similarity index 92%
rename from tests/mgcp/mgcpgw_client_test.c
rename to tests/legacy_mgcp/mgcpgw_client_test.c
index 20e9b78..51d5272 100644
--- a/tests/mgcp/mgcpgw_client_test.c
+++ b/tests/legacy_mgcp/mgcpgw_client_test.c
@@ -22,8 +22,9 @@
 
 #include <osmocom/core/msgb.h>
 #include <osmocom/core/application.h>
-#include <openbsc/mgcp.h>
-#include <openbsc/mgcpgw_client.h>
+#include <osmocom/legacy_mgcp/mgcp.h>
+#include <osmocom/legacy_mgcp/mgcpgw_client.h>
+#include <osmocom/legacy_mgcp/mgcpgw_client_internal.h>
 
 void *ctx;
 
@@ -149,6 +150,15 @@
 		"a=ptime:20\r\n");
 }
 
+static const struct log_info_cat log_categories[] = {
+};
+
+const struct log_info log_info = {
+        .cat = log_categories,
+        .num_cat = ARRAY_SIZE(log_categories),
+};
+
+
 int main(int argc, char **argv)
 {
 	ctx = talloc_named_const(NULL, 1, "mgcpgw_client_test");
diff --git a/tests/mgcp/mgcpgw_client_test.err b/tests/legacy_mgcp/mgcpgw_client_test.err
similarity index 100%
rename from tests/mgcp/mgcpgw_client_test.err
rename to tests/legacy_mgcp/mgcpgw_client_test.err
diff --git a/tests/mgcp/mgcpgw_client_test.ok b/tests/legacy_mgcp/mgcpgw_client_test.ok
similarity index 100%
rename from tests/mgcp/mgcpgw_client_test.ok
rename to tests/legacy_mgcp/mgcpgw_client_test.ok
diff --git a/tests/msc_vlr/Makefile.am b/tests/msc_vlr/Makefile.am
deleted file mode 100644
index 3ae0c84..0000000
--- a/tests/msc_vlr/Makefile.am
+++ /dev/null
@@ -1,166 +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) \
-	$(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/libmgcp/libmgcp.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) \
-	-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 44e4052..0000000
--- 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("0559084a32244332244332");
-	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, "423423423423423"), == 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("0559084a32244332244332");
-
-	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, "423423423423423"), == 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 bca64a4..0000000
--- 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)=423423423423423
-DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423423
-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, "423423423423423") == 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)=423423423423423
-DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423423
-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, "423423423423423") == 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 a965a70..0000000
--- 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 42e7c73..0000000
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
+++ /dev/null
@@ -1,848 +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("0559084a32244332244332");
-	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, "423423423423423"), == 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("063217094b32244332244332f5");
-	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, "4234234234234235"), == 0, "%d");
-	vlr_subscr_put(vsub);
-
-	EXPECT_ACCEPTED(false);
-	thwart_rx_non_initial_requests();
-
-	btw("MS replies with an Identity Response");
-	ms_sends_msg("0559084a32244332244332");
-
-	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("0559084a32244332244332");
-
-	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, "423423423423423"), == 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 c219b49..0000000
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
+++ /dev/null
@@ -1,1689 +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)=423423423423423
-DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423423
-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, "423423423423423") == 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: 4234234234234235F
-DVLR set IMEISV on subscriber; IMSI=901700000004620 IMEISV=4234234234234235
-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, "4234234234234235") == 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
-- MS replies with an Identity Response
-  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)=423423423423423
-DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423423
-DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Received Event VLR_ULA_E_ID_IMEI
-DVLR vlr_lu_fsm(901700000004620){VLR_ULA_S_WAIT_HLR_UPD}: Event VLR_ULA_E_ID_IMEI not permitted
-DMM IMSI:901700000004620: bump: conn still being established (SUBSCR_CONN_S_NEW)
-DREF IMSI:901700000004620: MSC conn use - 1 == 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 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)=423423423423423
-DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423423
-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, "423423423423423") == 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 a965a70..0000000
--- 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 095da81..0000000
--- 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 c946c1e..0000000
--- 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 a965a70..0000000
--- 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 c2f17c8..0000000
--- 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 e34490d..0000000
--- 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 a965a70..0000000
--- 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 d8a3a31..0000000
--- 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 e267c5b..0000000
--- 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 a965a70..0000000
--- 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 34e392e..0000000
--- a/tests/msc_vlr/msc_vlr_test_no_authen.c
+++ /dev/null
@@ -1,534 +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();
-	ms_sends_msg("0559084a32244332244332");
-	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, "423423423423423"), == 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("0559084a32244332244332");
-
-	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, "423423423423423"), == 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,
-	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 4f40736..0000000
--- a/tests/msc_vlr/msc_vlr_test_no_authen.err
+++ /dev/null
@@ -1,1204 +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)=423423423423423
-DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423423
-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, "423423423423423") == 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)=423423423423423
-DVLR set IMEI on subscriber; IMSI=901700000004620 IMEI=423423423423423
-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, "423423423423423") == 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
-
-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 a965a70..0000000
--- 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 2377c19..0000000
--- 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 00945cb..0000000
--- 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 a965a70..0000000
--- 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 c5f7fcf..0000000
--- 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 1b5f340..0000000
--- 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 a965a70..0000000
--- 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 1175bf8..0000000
--- 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 57f5e8e..0000000
--- 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 a965a70..0000000
--- 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 71f9713..0000000
--- 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 c2c5a58..0000000
--- 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
deleted file mode 100644
index b03d50c..0000000
--- a/tests/nanobts_omlattr/Makefile.am
+++ /dev/null
@@ -1,34 +0,0 @@
-AM_CPPFLAGS = \
-	$(all_includes) \
-	-I$(top_srcdir)/include \
-	$(NULL)
-
-AM_CFLAGS = \
-	-Wall \
-	$(LIBOSMOCORE_CFLAGS) \
-	$(LIBOSMOGSM_CFLAGS) \
-	$(LIBOSMOABIS_CFLAGS) \
-	$(NULL)
-
-noinst_PROGRAMS = \
-	nanobts_omlattr_test \
-	$(NULL)
-
-EXTRA_DIST = \
-	nanobts_omlattr_test.ok \
-	$(NULL)
-
-nanobts_omlattr_test_SOURCES = \
-	nanobts_omlattr_test.c \
-	$(NULL)
-
-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) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBOSMOABIS_LIBS) \
-	-ldbi \
-	$(NULL)
diff --git a/tests/nanobts_omlattr/nanobts_omlattr_test.c b/tests/nanobts_omlattr/nanobts_omlattr_test.c
deleted file mode 100644
index ee138b8..0000000
--- a/tests/nanobts_omlattr/nanobts_omlattr_test.c
+++ /dev/null
@@ -1,284 +0,0 @@
-/* Test OML attribute generator */
-
-/* (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 <openbsc/gsm_data.h>
-#include <openbsc/bts_ipaccess_nanobts_omlattr.h>
-
-#include <osmocom/core/talloc.h>
-#include <osmocom/core/utils.h>
-#include <osmocom/core/application.h>
-
-#include <stdio.h>
-#include <string.h>
-
-struct gsm_bts_model bts_model_nanobts = {
-	.type = GSM_BTS_TYPE_NANOBTS,
-	.name = "nanobts",
-	.start = NULL,
-	.oml_rcvmsg = NULL,
-	.e1line_bind_ops = NULL,
-	.nm_att_tlvdef = {
-			  .def = {
-				  /* ip.access specifics */
-				  [NM_ATT_IPACC_DST_IP] = {TLV_TYPE_FIXED, 4},
-				  [NM_ATT_IPACC_DST_IP_PORT] =
-				  {TLV_TYPE_FIXED, 2},
-				  [NM_ATT_IPACC_STREAM_ID] = {TLV_TYPE_TV,},
-				  [NM_ATT_IPACC_SEC_OML_CFG] =
-				  {TLV_TYPE_FIXED, 6},
-				  [NM_ATT_IPACC_IP_IF_CFG] =
-				  {TLV_TYPE_FIXED, 8},
-				  [NM_ATT_IPACC_IP_GW_CFG] =
-				  {TLV_TYPE_FIXED, 12},
-				  [NM_ATT_IPACC_IN_SERV_TIME] =
-				  {TLV_TYPE_FIXED, 4},
-				  [NM_ATT_IPACC_LOCATION] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_PAGING_CFG] =
-				  {TLV_TYPE_FIXED, 2},
-				  [NM_ATT_IPACC_UNIT_ID] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_UNIT_NAME] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_SNMP_CFG] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_PRIM_OML_CFG_LIST] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_NV_FLAGS] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_FREQ_CTRL] =
-				  {TLV_TYPE_FIXED, 2},
-				  [NM_ATT_IPACC_PRIM_OML_FB_TOUT] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_CUR_SW_CFG] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_TIMING_BUS] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_CGI] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_RAC] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_OBJ_VERSION] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_GPRS_PAGING_CFG] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_NSEI] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_BVCI] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_NSVCI] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_NS_CFG] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_BSSGP_CFG] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_NS_LINK_CFG] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_RLC_CFG] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_ALM_THRESH_LIST] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_MONIT_VAL_LIST] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_TIB_CONTROL] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_SUPP_FEATURES] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_CODING_SCHEMES] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_RLC_CFG_2] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_HEARTB_TOUT] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_UPTIME] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_RLC_CFG_3] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_SSL_CFG] = {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_SEC_POSSIBLE] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_IML_SSL_STATE] =
-				  {TLV_TYPE_TL16V},
-				  [NM_ATT_IPACC_REVOC_DATE] = {TLV_TYPE_TL16V},
-				  },
-			  },
-};
-
-static void test_nanobts_attr_bts_get(struct gsm_bts *bts, uint8_t *expected)
-{
-	struct msgb *msgb;
-
-	printf("Testing nanobts_attr_bts_get()...\n");
-
-	msgb = nanobts_attr_bts_get(bts);
-	printf("result=  %s\n", osmo_hexdump_nospc(msgb->data, msgb->len));
-	printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len));
-	OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0);
-	msgb_free(msgb);
-
-	printf("ok.\n");
-	printf("\n");
-}
-
-static void test_nanobts_attr_nse_get(struct gsm_bts *bts, uint8_t *expected)
-{
-	struct msgb *msgb;
-
-	printf("Testing nanobts_attr_nse_get()...\n");
-
-	msgb = nanobts_attr_nse_get(bts);
-	printf("result=  %s\n", osmo_hexdump_nospc(msgb->data, msgb->len));
-	printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len));
-	OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0);
-	msgb_free(msgb);
-
-	printf("ok.\n");
-	printf("\n");
-}
-
-static void test_nanobts_attr_cell_get(struct gsm_bts *bts, uint8_t *expected)
-{
-	struct msgb *msgb;
-
-	printf("Testing nanobts_attr_cell_get()...\n");
-
-	msgb = nanobts_attr_cell_get(bts);
-	printf("result=  %s\n", osmo_hexdump_nospc(msgb->data, msgb->len));
-	printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len));
-	OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0);
-	msgb_free(msgb);
-
-	printf("ok.\n");
-	printf("\n");
-}
-
-static void test_nanobts_attr_nscv_get(struct gsm_bts *bts, uint8_t *expected)
-{
-	struct msgb *msgb;
-
-	printf("Testing nanobts_attr_nscv_get()...\n");
-
-	msgb = nanobts_attr_nscv_get(bts);
-	printf("result=  %s\n", osmo_hexdump_nospc(msgb->data, msgb->len));
-	printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len));
-	OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0);
-	msgb_free(msgb);
-
-	printf("ok.\n");
-	printf("\n");
-}
-
-static void test_nanobts_attr_radio_get(struct gsm_bts *bts,
-					struct gsm_bts_trx *trx,
-					uint8_t *expected)
-{
-	struct msgb *msgb;
-
-	printf("Testing nanobts_attr_nscv_get()...\n");
-
-	msgb = nanobts_attr_radio_get(bts, trx);
-	printf("result=  %s\n", osmo_hexdump_nospc(msgb->data, msgb->len));
-	printf("expected=%s\n", osmo_hexdump_nospc(expected, msgb->len));
-	OSMO_ASSERT(memcmp(msgb->data, expected, msgb->len) == 0);
-	msgb_free(msgb);
-
-	printf("ok.\n");
-	printf("\n");
-}
-
-int main(int argc, char **argv)
-{
-	void *ctx;
-
-	struct gsm_bts *bts;
-	struct gsm_network *net;
-	struct gsm_bts_trx *trx;
-
-	ctx = talloc_named_const(NULL, 0, "ctx");
-
-	/* Allocate environmental structs (bts, net, trx) */
-	net = talloc_zero(ctx, struct gsm_network);
-	INIT_LLIST_HEAD(&net->bts_list);
-	gsm_bts_model_register(&bts_model_nanobts);
-	bts = gsm_bts_alloc_register(net, GSM_BTS_TYPE_NANOBTS, 63);
-	OSMO_ASSERT(bts);
-	trx = talloc_zero(ctx, struct gsm_bts_trx);
-
-	/* Parameters needed by nanobts_attr_bts_get() */
-	bts->rach_b_thresh = -1;
-	bts->rach_ldavg_slots = -1;
-	bts->c0->arfcn = 866;
-	bts->cell_identity = 1337;
-	bts->network->country_code = 1;
-	bts->network->network_code = 1;
-	bts->location_area_code = 1;
-	bts->gprs.rac = 0;
-	uint8_t attr_bts_expected[] =
-	    { 0x19, 0x55, 0x5b, 0x61, 0x67, 0x6d, 0x73, 0x18, 0x06, 0x0e, 0x00,
-		0x02, 0x01, 0x20, 0x33, 0x1e, 0x24, 0x24, 0xa8, 0x34, 0x21,
-		0xa8, 0x1f, 0x3f, 0x25,
-		0x00, 0x01, 0x0a, 0x0c, 0x0a, 0x0b, 0x01, 0x2a, 0x0a, 0x2b,
-		0x03, 0xe8, 0x0a, 0x80,
-		0x23, 0x0a, 0x08, 0x03, 0x62, 0x09, 0x3f, 0x99, 0x00, 0x07,
-		0x00, 0xf1, 0x10, 0x00,
-		0x01, 0x05, 0x39
-	};
-
-	/* Parameters needed to test nanobts_attr_nse_get() */
-	bts->gprs.nse.nsei = 101;
-	uint8_t attr_nse_expected[] =
-	    { 0x9d, 0x00, 0x02, 0x00, 0x65, 0xa0, 0x00, 0x07, 0x03, 0x03, 0x03,
-		0x03, 0x1e, 0x03, 0x0a, 0xa1, 0x00, 0x0b, 0x03, 0x03, 0x03,
-		0x03, 0x03, 0x0a, 0x03,
-		0x0a, 0x03, 0x0a, 0x03
-	};
-
-	/* Parameters needed to test nanobts_attr_cell_get() */
-	bts->gprs.rac = 0x00;
-	bts->gprs.cell.bvci = 2;
-	bts->gprs.mode = BTS_GPRS_GPRS;
-	uint8_t attr_cell_expected[] =
-	    { 0x9a, 0x00, 0x01, 0x00, 0x9c, 0x00, 0x02, 0x05, 0x03, 0x9e, 0x00,
-		0x02, 0x00, 0x02, 0xa3, 0x00, 0x09, 0x14, 0x05, 0x05, 0xa0,
-		0x05, 0x0a, 0x04, 0x08,
-		0x0f, 0xa8, 0x00, 0x02, 0x0f, 0x00, 0xa9, 0x00, 0x05, 0x00,
-		0xfa, 0x00, 0xfa, 0x02
-	};
-
-	/* Parameters needed to test nanobts_attr_nscv_get() */
-	bts->gprs.nsvc[0].nsvci = 0x65;
-	bts->gprs.nsvc[0].remote_port = 0x59d8;
-	bts->gprs.nsvc[0].remote_ip = 0x0a090165;
-	bts->gprs.nsvc[0].local_port = 0x5a3c;
-	uint8_t attr_nscv_expected[] =
-	    { 0x9f, 0x00, 0x02, 0x00, 0x65, 0xa2, 0x00, 0x08, 0x59, 0xd8, 0x0a,
-		0x09, 0x01, 0x65, 0x5a, 0x3c
-	};
-
-	/* Parameters needed to test nanobts_attr_radio_get() */
-	trx->arfcn = 866;
-	trx->max_power_red = 22;
-	bts->c0->max_power_red = 22;
-	uint8_t attr_radio_expected[] =
-	    { 0x2d, 0x0b, 0x05, 0x00, 0x02, 0x03, 0x62 };
-
-	/* Run tests */
-	test_nanobts_attr_bts_get(bts, attr_bts_expected);
-	test_nanobts_attr_nse_get(bts, attr_nse_expected);
-	test_nanobts_attr_cell_get(bts, attr_cell_expected);
-	test_nanobts_attr_nscv_get(bts, attr_nscv_expected);
-	test_nanobts_attr_radio_get(bts, trx, attr_radio_expected);
-
-	printf("Done\n");
-	talloc_free(bts);
-	talloc_free(net);
-	talloc_free(trx);
-	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/nanobts_omlattr/nanobts_omlattr_test.ok b/tests/nanobts_omlattr/nanobts_omlattr_test.ok
deleted file mode 100644
index 91b655f..0000000
--- a/tests/nanobts_omlattr/nanobts_omlattr_test.ok
+++ /dev/null
@@ -1,26 +0,0 @@
-Testing nanobts_attr_bts_get()...
-result=  19555b61676d7318060e00020120331e2424a83421a81f3f2500010a0c0a0b012a0a2b03e80a80230a080362093f99000700f11000010539
-expected=19555b61676d7318060e00020120331e2424a83421a81f3f2500010a0c0a0b012a0a2b03e80a80230a080362093f99000700f11000010539
-ok.
-
-Testing nanobts_attr_nse_get()...
-result=  9d00020065a00007030303031e030aa1000b03030303030a030a030a03
-expected=9d00020065a00007030303031e030aa1000b03030303030a030a030a03
-ok.
-
-Testing nanobts_attr_cell_get()...
-result=  9a0001009c000205039e00020002a30009140505a0050a04080fa800020f00a9000500fa00fa02
-expected=9a0001009c000205039e00020002a30009140505a0050a04080fa800020f00a9000500fa00fa02
-ok.
-
-Testing nanobts_attr_nscv_get()...
-result=  9f00020065a2000859d80a0901655a3c
-expected=9f00020065a2000859d80a0901655a3c
-ok.
-
-Testing nanobts_attr_nscv_get()...
-result=  2d0b0500020362
-expected=2d0b0500020362
-ok.
-
-Done
diff --git a/tests/oap/Makefile.am b/tests/oap/Makefile.am
deleted file mode 100644
index 1bb672d..0000000
--- 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 e6501cb..0000000
--- 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 62ddc9e..0000000
--- 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 59108a7..0000000
--- 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 ccb8f44..0000000
--- 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 d66c5dd..0000000
--- 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 f38d730..0000000
--- 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 32a3cc4..0000000
--- 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 d2e1cd9..0000000
--- 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 71f48a1..0000000
--- 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 5082707..0000000
--- 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 62fa9d2..0000000
--- 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 ec966ba..0000000
--- 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 fd44804..0000000
--- 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 7a3a342..0000000
--- 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 62c479b..0000000
--- a/tests/sms_queue/Makefile.am
+++ /dev/null
@@ -1,55 +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) \
-	$(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/libmgcp/libmgcp.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) \
-	-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 af25b06..0000000
--- 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 e69de29..0000000
--- 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 146400d..0000000
--- 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 d09c41b..0000000
--- 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 151dd2b..0000000
--- 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 f357282..0000000
--- 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/subscr/Makefile.am b/tests/subscr/Makefile.am
deleted file mode 100644
index 5b770bc..0000000
--- a/tests/subscr/Makefile.am
+++ /dev/null
@@ -1,43 +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 = \
-	bsc_subscr_test.ok \
-	bsc_subscr_test.err \
-	$(NULL)
-
-noinst_PROGRAMS = \
-	bsc_subscr_test \
-	$(NULL)
-
-bsc_subscr_test_SOURCES = \
-	bsc_subscr_test.c \
-	$(NULL)
-
-bsc_subscr_test_LDADD = \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
-	$(top_builddir)/src/libtrau/libtrau.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
-	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOABIS_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBSMPP34_LIBS) \
-	$(LIBOSMOVTY_LIBS) \
-	$(NULL)
diff --git a/tests/subscr/bsc_subscr_test.c b/tests/subscr/bsc_subscr_test.c
deleted file mode 100644
index 60d687d..0000000
--- a/tests/subscr/bsc_subscr_test.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* (C) 2008 by Jan Luebbe <jluebbe@debian.org>
- * (C) 2009 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/bsc_subscriber.h>
-
-#include <osmocom/core/application.h>
-#include <osmocom/core/utils.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <inttypes.h>
-
-struct llist_head *bsc_subscribers;
-
-#define VERBOSE_ASSERT(val, expect_op, fmt) \
-	do { \
-		printf(#val " == " fmt "\n", (val)); \
-		OSMO_ASSERT((val) expect_op); \
-	} while (0);
-
-static void assert_bsc_subscr(const struct bsc_subscr *bsub, const char *imsi)
-{
-	struct bsc_subscr *sfound;
-	OSMO_ASSERT(bsub);
-	OSMO_ASSERT(strcmp(bsub->imsi, imsi) == 0);
-
-	sfound = bsc_subscr_find_by_imsi(bsc_subscribers, imsi);
-	OSMO_ASSERT(sfound == bsub);
-
-	bsc_subscr_put(sfound);
-}
-
-static void test_bsc_subscr(void)
-{
-	struct bsc_subscr *s1, *s2, *s3;
-	const char *imsi1 = "1234567890";
-	const char *imsi2 = "9876543210";
-	const char *imsi3 = "5656565656";
-
-	printf("Test BSC subscriber allocation and deletion\n");
-
-	/* Check for emptiness */
-	VERBOSE_ASSERT(llist_count(bsc_subscribers), == 0, "%d");
-	OSMO_ASSERT(bsc_subscr_find_by_imsi(bsc_subscribers, imsi1) == NULL);
-	OSMO_ASSERT(bsc_subscr_find_by_imsi(bsc_subscribers, imsi2) == NULL);
-	OSMO_ASSERT(bsc_subscr_find_by_imsi(bsc_subscribers, imsi3) == NULL);
-
-	/* Allocate entry 1 */
-	s1 = bsc_subscr_find_or_create_by_imsi(bsc_subscribers, imsi1);
-	VERBOSE_ASSERT(llist_count(bsc_subscribers), == 1, "%d");
-	assert_bsc_subscr(s1, imsi1);
-	VERBOSE_ASSERT(llist_count(bsc_subscribers), == 1, "%d");
-	OSMO_ASSERT(bsc_subscr_find_by_imsi(bsc_subscribers, imsi2) == NULL);
-
-	/* Allocate entry 2 */
-	s2 = bsc_subscr_find_or_create_by_imsi(bsc_subscribers, imsi2);
-	VERBOSE_ASSERT(llist_count(bsc_subscribers), == 2, "%d");
-
-	/* Allocate entry 3 */
-	s3 = bsc_subscr_find_or_create_by_imsi(bsc_subscribers, imsi3);
-	VERBOSE_ASSERT(llist_count(bsc_subscribers), == 3, "%d");
-
-	/* Check entries */
-	assert_bsc_subscr(s1, imsi1);
-	assert_bsc_subscr(s2, imsi2);
-	assert_bsc_subscr(s3, imsi3);
-
-	/* Free entry 1 */
-	bsc_subscr_put(s1);
-	s1 = NULL;
-	VERBOSE_ASSERT(llist_count(bsc_subscribers), == 2, "%d");
-	OSMO_ASSERT(bsc_subscr_find_by_imsi(bsc_subscribers, imsi1) == NULL);
-
-	assert_bsc_subscr(s2, imsi2);
-	assert_bsc_subscr(s3, imsi3);
-
-	/* Free entry 2 */
-	bsc_subscr_put(s2);
-	s2 = NULL;
-	VERBOSE_ASSERT(llist_count(bsc_subscribers), == 1, "%d");
-	OSMO_ASSERT(bsc_subscr_find_by_imsi(bsc_subscribers, imsi1) == NULL);
-	OSMO_ASSERT(bsc_subscr_find_by_imsi(bsc_subscribers, imsi2) == NULL);
-	assert_bsc_subscr(s3, imsi3);
-
-	/* Free entry 3 */
-	bsc_subscr_put(s3);
-	s3 = NULL;
-	VERBOSE_ASSERT(llist_count(bsc_subscribers), == 0, "%d");
-	OSMO_ASSERT(bsc_subscr_find_by_imsi(bsc_subscribers, imsi3) == NULL);
-
-	OSMO_ASSERT(llist_empty(bsc_subscribers));
-}
-
-int main()
-{
-	printf("Testing BSC subscriber core code.\n");
-	osmo_init_logging(&log_info);
-	log_set_print_filename(osmo_stderr_target, 0);
-	log_set_print_timestamp(osmo_stderr_target, 0);
-	log_set_use_color(osmo_stderr_target, 0);
-	log_set_print_category(osmo_stderr_target, 1);
-	log_set_category_filter(osmo_stderr_target, DREF, 1, LOGL_DEBUG);
-
-	bsc_subscribers = talloc_zero(NULL, struct llist_head);
-	INIT_LLIST_HEAD(bsc_subscribers);
-
-	test_bsc_subscr();
-
-	printf("Done\n");
-	return 0;
-}
diff --git a/tests/subscr/bsc_subscr_test.err b/tests/subscr/bsc_subscr_test.err
deleted file mode 100644
index a66317a..0000000
--- a/tests/subscr/bsc_subscr_test.err
+++ /dev/null
@@ -1,17 +0,0 @@
-DREF BSC subscr IMSI:1234567890 usage increases to: 2
-DREF BSC subscr IMSI:1234567890 usage decreases to: 1
-DREF BSC subscr IMSI:1234567890 usage increases to: 2
-DREF BSC subscr IMSI:1234567890 usage decreases to: 1
-DREF BSC subscr IMSI:9876543210 usage increases to: 2
-DREF BSC subscr IMSI:9876543210 usage decreases to: 1
-DREF BSC subscr IMSI:5656565656 usage increases to: 2
-DREF BSC subscr IMSI:5656565656 usage decreases to: 1
-DREF BSC subscr IMSI:1234567890 usage decreases to: 0
-DREF BSC subscr IMSI:9876543210 usage increases to: 2
-DREF BSC subscr IMSI:9876543210 usage decreases to: 1
-DREF BSC subscr IMSI:5656565656 usage increases to: 2
-DREF BSC subscr IMSI:5656565656 usage decreases to: 1
-DREF BSC subscr IMSI:9876543210 usage decreases to: 0
-DREF BSC subscr IMSI:5656565656 usage increases to: 2
-DREF BSC subscr IMSI:5656565656 usage decreases to: 1
-DREF BSC subscr IMSI:5656565656 usage decreases to: 0
diff --git a/tests/subscr/bsc_subscr_test.ok b/tests/subscr/bsc_subscr_test.ok
deleted file mode 100644
index 0f6a8be..0000000
--- a/tests/subscr/bsc_subscr_test.ok
+++ /dev/null
@@ -1,11 +0,0 @@
-Testing BSC subscriber core code.
-Test BSC subscriber allocation and deletion
-llist_count(bsc_subscribers) == 0
-llist_count(bsc_subscribers) == 1
-llist_count(bsc_subscribers) == 1
-llist_count(bsc_subscribers) == 2
-llist_count(bsc_subscribers) == 3
-llist_count(bsc_subscribers) == 2
-llist_count(bsc_subscribers) == 1
-llist_count(bsc_subscribers) == 0
-Done
diff --git a/tests/testsuite.at b/tests/testsuite.at
index f21ba0c..dd59f2c 100644
--- a/tests/testsuite.at
+++ b/tests/testsuite.at
@@ -1,224 +1,22 @@
 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_SETUP([legacy_mgcp])
+AT_KEYWORDS([legacy_mgcp])
+cat $abs_srcdir/legacy_mgcp/mgcp_test.ok > expout
+AT_CHECK([$abs_top_builddir/tests/legacy_mgcp/mgcp_test], [], [expout], [ignore])
 AT_CLEANUP
 
-AT_SETUP([bsc_subscr])
-AT_KEYWORDS([bsc_subscr])
-cat $abs_srcdir/subscr/bsc_subscr_test.ok > expout
-cat $abs_srcdir/subscr/bsc_subscr_test.err > experr
-AT_CHECK([$abs_top_builddir/tests/subscr/bsc_subscr_test], [], [expout], [experr])
-AT_CLEANUP
-
-AT_SETUP([channel])
-AT_KEYWORDS([channel])
-cat $abs_srcdir/channel/channel_test.ok > expout
-AT_CHECK([$abs_top_builddir/tests/channel/channel_test], [], [expout], [ignore])
-AT_CLEANUP
-
-AT_SETUP([mgcp])
-AT_KEYWORDS([mgcp])
-cat $abs_srcdir/mgcp/mgcp_test.ok > expout
-AT_CHECK([$abs_top_builddir/tests/mgcp/mgcp_test], [], [expout], [ignore])
-AT_CLEANUP
-
-AT_SETUP([mgcp-trans])
-AT_KEYWORDS([mgcp-trans])
+AT_SETUP([legacy_mgcp-trans])
+AT_KEYWORDS([legacy_mgcp-trans])
 AT_CHECK([test "$enable_mgcp_transcoding_test" == yes || exit 77])
-cat $abs_srcdir/mgcp/mgcp_transcoding_test.ok > expout
-AT_CHECK([$abs_top_builddir/tests/mgcp/mgcp_transcoding_test], [], [expout], [ignore])
+cat $abs_srcdir/legacy_mgcp/mgcp_transcoding_test.ok > expout
+AT_CHECK([$abs_top_builddir/tests/legacy_mgcp/mgcp_transcoding_test], [], [expout], [ignore])
 AT_CLEANUP
 
-AT_SETUP([mgcpgw_client])
-AT_KEYWORDS([mgcpgw_client])
-cat $abs_srcdir/mgcp/mgcpgw_client_test.ok > expout
-cat $abs_srcdir/mgcp/mgcpgw_client_test.err > experr
-AT_CHECK([$abs_top_builddir/tests/mgcp/mgcpgw_client_test], [], [expout], [experr])
-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])
-cp $abs_srcdir/bsc-nat-trie/prefixes.csv .
-cat $abs_srcdir/bsc-nat-trie/bsc_nat_trie_test.ok > expout
-AT_CHECK([$abs_top_builddir/tests/bsc-nat-trie/bsc_nat_trie_test], [], [expout], [ignore])
-AT_CLEANUP
-
-AT_SETUP([abis])
-AT_KEYWORDS([abis])
-cat $abs_srcdir/abis/abis_test.ok > expout
-AT_CHECK([$abs_top_builddir/tests/abis/abis_test], [], [expout], [ignore])
-AT_CLEANUP
-
-AT_SETUP([bsc])
-AT_KEYWORDS([bsc])
-AT_CHECK([test "$enable_bsc_test" != no || exit 77])
-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_SETUP([legacy_mgcpgw_client])
+AT_KEYWORDS([legacy_mgcpgw_client])
+cat $abs_srcdir/legacy_mgcp/mgcpgw_client_test.ok > expout
+cat $abs_srcdir/legacy_mgcp/mgcpgw_client_test.err > experr
+AT_CHECK([$abs_top_builddir/tests/legacy_mgcp/mgcpgw_client_test], [], [expout], [experr])
 AT_CLEANUP
diff --git a/tests/trau/Makefile.am b/tests/trau/Makefile.am
deleted file mode 100644
index 1d014ba..0000000
--- a/tests/trau/Makefile.am
+++ /dev/null
@@ -1,45 +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 = \
-	trau_test.ok \
-	$(NULL)
-
-noinst_PROGRAMS = \
-	trau_test \
-	$(NULL)
-
-trau_test_SOURCES = \
-	trau_test.c \
-	$(NULL)
-
-trau_test_LDADD = \
-	$(top_builddir)/src/libbsc/libbsc.a \
-	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
-	$(top_builddir)/src/libtrau/libtrau.a \
-	$(top_builddir)/src/libcommon/libcommon.a \
-	$(LIBOSMOCORE_LIBS) \
-	$(LIBOSMOABIS_LIBS) \
-	$(LIBOSMOGSM_LIBS) \
-	$(LIBSMPP34_LIBS) \
-	$(LIBOSMOVTY_LIBS) \
-	$(LIBRARY_DL) \
-	-ldbi \
-	$(NULL)
-
diff --git a/tests/trau/trau_test.c b/tests/trau/trau_test.c
deleted file mode 100644
index c74e6db..0000000
--- a/tests/trau/trau_test.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* (C) 2013 by Andreas Eversberg <jolly@eversberg.eu>
- * 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 <osmocom/abis/trau_frame.h>
-#include <openbsc/trau_mux.h>
-#include <osmocom/core/msgb.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-void test_trau_fr_efr(unsigned char *data)
-{
-	struct decoded_trau_frame tf;
-	struct msgb *msg;
-	struct gsm_data_frame *frame;
-
-	printf("Testing TRAU FR transcoding.\n");
-	data[0] = 0xd0;
-	trau_encode_fr(&tf, data);
-	tf.c_bits[11] = 0; /* clear BFI */
-	msg = trau_decode_fr(1, &tf);
-	OSMO_ASSERT(msg != NULL);
-	frame = (struct gsm_data_frame *)msg->data;
-	OSMO_ASSERT(frame->msg_type == GSM_TCHF_FRAME);
-	OSMO_ASSERT(!memcmp(frame->data, data, 33));
-	msgb_free(msg);
-
-	printf("Testing TRAU EFR transcoding.\n");
-	data[0] = 0xc0;
-	trau_encode_efr(&tf, data);
-	OSMO_ASSERT(tf.d_bits[0] == 1); /* spare bit must be 1 */
-	tf.c_bits[11] = 0; /* clear BFI */
-	msg = trau_decode_efr(1, &tf);
-	OSMO_ASSERT(msg != NULL);
-	frame = (struct gsm_data_frame *)msg->data;
-	OSMO_ASSERT(frame->msg_type == GSM_TCHF_FRAME_EFR);
-	OSMO_ASSERT(!memcmp(frame->data, data, 31));
-
-	printf("Testing TRAU EFR decoding with CRC error.\n");
-	tf.d_bits[0] = 0; /* spare bit must be included */
-	msg = trau_decode_efr(1, &tf);
-	OSMO_ASSERT(msg != NULL);
-	frame = (struct gsm_data_frame *)msg->data;
-	OSMO_ASSERT(frame->msg_type == GSM_BAD_FRAME);
-	msgb_free(msg);
-}
-
-int main()
-{
-	unsigned char data[33];
-	int i;
-
-	msgb_talloc_ctx_init(NULL, 0);
-
-	memset(data, 0x00, sizeof(data));
-	test_trau_fr_efr(data);
-	memset(data, 0xff, sizeof(data));
-	test_trau_fr_efr(data);
-	srandom(42);
-	for (i = 0; i < sizeof(data); i++)
-		data[i] = random();
-	test_trau_fr_efr(data);
-	printf("Done\n");
-	return 0;
-}
-
-/* stubs */
-void vty_out() {}
diff --git a/tests/trau/trau_test.ok b/tests/trau/trau_test.ok
deleted file mode 100644
index ef71230..0000000
--- a/tests/trau/trau_test.ok
+++ /dev/null
@@ -1,10 +0,0 @@
-Testing TRAU FR transcoding.
-Testing TRAU EFR transcoding.
-Testing TRAU EFR decoding with CRC error.
-Testing TRAU FR transcoding.
-Testing TRAU EFR transcoding.
-Testing TRAU EFR decoding with CRC error.
-Testing TRAU FR transcoding.
-Testing TRAU EFR transcoding.
-Testing TRAU EFR decoding with CRC error.
-Done
diff --git a/tests/v42bis/Makefile.am b/tests/v42bis/Makefile.am
deleted file mode 100644
index a031e33..0000000
--- 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 7e90785..0000000
--- 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 0707674..0000000
--- 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 7d4e121..05bc3bf 100644
--- a/tests/vty_test_runner.py
+++ b/tests/vty_test_runner.py
@@ -130,998 +130,6 @@
         self.assertEquals(res.find('  rtp net-bind-ip'), -1)
 
 
-class TestVTYGenericBSC(TestVTYBase):
-
-    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.assertTrue(self.vty.verify("bts 0",['']))
-        self.assertEquals(self.vty.node(), 'config-net-bts')
-        self.checkForEndAndExit()
-        self.assertTrue(self.vty.verify("trx 0",['']))
-        self.assertEquals(self.vty.node(), 'config-net-bts-trx')
-        self.checkForEndAndExit()
-        self.vty.command("write terminal")
-        self.assertTrue(self.vty.verify("exit",['']))
-        self.assertEquals(self.vty.node(), 'config-net-bts')
-        self.assertTrue(self.vty.verify("exit",['']))
-        self.assertTrue(self.vty.verify("bts 1",['']))
-        self.assertEquals(self.vty.node(), 'config-net-bts')
-        self.checkForEndAndExit()
-        self.assertTrue(self.vty.verify("trx 1",['']))
-        self.assertEquals(self.vty.node(), 'config-net-bts-trx')
-        self.checkForEndAndExit()
-        self.vty.command("write terminal")
-        self.assertTrue(self.vty.verify("exit",['']))
-        self.assertEquals(self.vty.node(), 'config-net-bts')
-        self.assertTrue(self.vty.verify("exit",['']))
-        self.assertEquals(self.vty.node(), 'config-net')
-        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)
-
-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):
-
-    def vty_command(self):
-        return ["./src/osmo-bsc/osmo-bsc", "-c",
-                "doc/examples/osmo-bsc/osmo-bsc.cfg"]
-
-    def vty_app(self):
-        return (4242, "./src/osmo-bsc/osmo-bsc", "OsmoBSC", "bsc")
-
-    def testConfigNetworkTree(self):
-        self._testConfigNetworkTree()
-
-    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("msc 0", ['']))
-        self.assertEquals(self.vty.node(), 'config-msc')
-        self.checkForEndAndExit()
-        self.assertTrue(self.vty.verify("exit", ['']))
-        self.assertEquals(self.vty.node(), 'config')
-        self.assertTrue(self.vty.verify("bsc", ['']))
-        self.assertEquals(self.vty.node(), 'config-bsc')
-        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('msc 0')
-        self.vty.command("bsc")
-        self.assertEquals(self.vty.node(), 'config-bsc')
-        self.vty.command("msc 0")
-        self.assertEquals(self.vty.node(), 'config-msc')
-
-    def testUssdNotificationsMsc(self):
-        self.vty.enable()
-        self.vty.command("configure terminal")
-        self.vty.command("msc")
-
-        # Test invalid input
-        self.vty.verify("bsc-msc-lost-text", ['% Command incomplete.'])
-        self.vty.verify("bsc-welcome-text", ['% Command incomplete.'])
-        self.vty.verify("bsc-grace-text", ['% Command incomplete.'])
-
-        # Enable USSD notifications
-        self.vty.verify("bsc-msc-lost-text MSC disconnected", [''])
-        self.vty.verify("bsc-welcome-text Hello MS", [''])
-        self.vty.verify("bsc-grace-text In grace period", [''])
-
-        # Verify settings
-        res = self.vty.command("write terminal")
-        self.assert_(res.find('bsc-msc-lost-text MSC disconnected') > 0)
-        self.assertEquals(res.find('no bsc-msc-lost-text'), -1)
-        self.assert_(res.find('bsc-welcome-text Hello MS') > 0)
-        self.assertEquals(res.find('no bsc-welcome-text'), -1)
-        self.assert_(res.find('bsc-grace-text In grace period') > 0)
-        self.assertEquals(res.find('no bsc-grace-text'), -1)
-
-        # Now disable it..
-        self.vty.verify("no bsc-msc-lost-text", [''])
-        self.vty.verify("no bsc-welcome-text", [''])
-        self.vty.verify("no bsc-grace-text", [''])
-
-        # Verify settings
-        res = self.vty.command("write terminal")
-        self.assertEquals(res.find('bsc-msc-lost-text MSC disconnected'), -1)
-        self.assert_(res.find('no bsc-msc-lost-text') > 0)
-        self.assertEquals(res.find('bsc-welcome-text Hello MS'), -1)
-        self.assert_(res.find('no bsc-welcome-text') > 0)
-        self.assertEquals(res.find('bsc-grace-text In grace period'), -1)
-        self.assert_(res.find('no bsc-grace-text') > 0)
-
-    def testUssdNotificationsBsc(self):
-        self.vty.enable()
-        self.vty.command("configure terminal")
-        self.vty.command("bsc")
-
-        # Test invalid input
-        self.vty.verify("missing-msc-text", ['% Command incomplete.'])
-
-        # Enable USSD notifications
-        self.vty.verify("missing-msc-text No MSC found", [''])
-
-        # Verify settings
-        res = self.vty.command("write terminal")
-        self.assert_(res.find('missing-msc-text No MSC found') > 0)
-        self.assertEquals(res.find('no missing-msc-text'), -1)
-
-        # Now disable it..
-        self.vty.verify("no missing-msc-text", [''])
-
-        # Verify settings
-        res = self.vty.command("write terminal")
-        self.assertEquals(res.find('missing-msc-text No MSC found'), -1)
-        self.assert_(res.find('no missing-msc-text') > 0)
-
-    def testNetworkTimezone(self):
-        self.vty.enable()
-        self.vty.verify("configure terminal", [''])
-        self.vty.verify("network", [''])
-
-        # Test invalid input
-        self.vty.verify("timezone", ['% Command incomplete.'])
-        self.vty.verify("timezone 20 0", ['% Unknown command.'])
-        self.vty.verify("timezone 0 11", ['% Unknown command.'])
-        self.vty.verify("timezone 0 0 99", ['% Unknown command.'])
-
-        # Set time zone without DST
-        self.vty.verify("timezone 2 30", [''])
-
-        # Verify settings
-        res = self.vty.command("write terminal")
-        self.assert_(res.find('timezone 2 30') > 0)
-        self.assertEquals(res.find('timezone 2 30 '), -1)
-
-        # Set time zone with DST
-        self.vty.verify("timezone 2 30 1", [''])
-
-        # Verify settings
-        res = self.vty.command("write terminal")
-        self.assert_(res.find('timezone 2 30 1') > 0)
-
-        # Now disable it..
-        self.vty.verify("no timezone", [''])
-
-        # Verify settings
-        res = self.vty.command("write terminal")
-        self.assertEquals(res.find(' timezone'), -1)
-
-    def testShowNetwork(self):
-        res = self.vty.command("show network")
-        self.assert_(res.startswith('BSC is on Country Code') >= 0)
-
-    def testPingPongConfiguration(self):
-        self.vty.enable()
-        self.vty.verify("configure terminal", [''])
-        self.vty.verify("network", [''])
-        self.vty.verify("msc 0", [''])
-
-        self.vty.verify("timeout-ping 12", [''])
-        self.vty.verify("timeout-pong 14", [''])
-        res = self.vty.command("show running-config")
-        self.assert_(res.find(" timeout-ping 12") > 0)
-        self.assert_(res.find(" timeout-pong 14") > 0)
-        self.assert_(res.find(" no timeout-ping advanced") > 0)
-
-        self.vty.verify("timeout-ping advanced", [''])
-        res = self.vty.command("show running-config")
-        self.assert_(res.find(" timeout-ping 12") > 0)
-        self.assert_(res.find(" timeout-pong 14") > 0)
-        self.assert_(res.find(" timeout-ping advanced") > 0)
-
-        self.vty.verify("no timeout-ping advanced", [''])
-        res = self.vty.command("show running-config")
-        self.assert_(res.find(" timeout-ping 12") > 0)
-        self.assert_(res.find(" timeout-pong 14") > 0)
-        self.assert_(res.find(" no timeout-ping advanced") > 0)
-
-        self.vty.verify("no timeout-ping", [''])
-        res = self.vty.command("show running-config")
-        self.assertEquals(res.find(" timeout-ping 12"), -1)
-        self.assertEquals(res.find(" timeout-pong 14"), -1)
-        self.assertEquals(res.find(" no timeout-ping advanced"), -1)
-        self.assert_(res.find(" no timeout-ping") > 0)
-
-        self.vty.verify("timeout-ping advanced", ['%ping handling is disabled. Enable it first.'])
-
-        # And back to enabling it
-        self.vty.verify("timeout-ping 12", [''])
-        self.vty.verify("timeout-pong 14", [''])
-        res = self.vty.command("show running-config")
-        self.assert_(res.find(" timeout-ping 12") > 0)
-        self.assert_(res.find(" timeout-pong 14") > 0)
-        self.assert_(res.find(" timeout-ping advanced") > 0)
-
-    def testMscDataCoreLACCI(self):
-        self.vty.enable()
-        res = self.vty.command("show running-config")
-        self.assertEquals(res.find("core-location-area-code"), -1)
-        self.assertEquals(res.find("core-cell-identity"), -1)
-
-        self.vty.command("configure terminal")
-        self.vty.command("msc 0")
-        self.vty.command("core-location-area-code 666")
-        self.vty.command("core-cell-identity 333")
-
-        res = self.vty.command("show running-config")
-        self.assert_(res.find("core-location-area-code 666") > 0)
-        self.assert_(res.find("core-cell-identity 333") > 0)
-
-class TestVTYNAT(TestVTYGenericBSC):
-
-    def vty_command(self):
-        return ["./src/osmo-bsc_nat/osmo-bsc_nat", "-l", "127.0.0.1", "-c",
-                "doc/examples/osmo-bsc_nat/osmo-bsc_nat.cfg"]
-
-    def vty_app(self):
-        return (4244, "src/osmo-bsc_nat/osmo-bsc_nat",  "OsmoBSCNAT", "nat")
-
-    def testBSCreload(self):
-        # Use different port for the mock msc to avoid clashing with
-        # the osmo-bsc_nat itself
-        ip = "127.0.0.1"
-        port = 5522
-        self.vty.enable()
-        bscs1 = self.vty.command("show bscs-config")
-        nat_bsc_reload(self)
-        bscs2 = self.vty.command("show bscs-config")
-        # check that multiple calls to bscs-config-file give the same result
-        self.assertEquals(bscs1, bscs2)
-
-        # add new bsc
-        self.vty.command("configure terminal")
-        self.vty.command("nat")
-        self.vty.command("bsc 5")
-        self.vty.command("token key")
-        self.vty.command("location_area_code 666")
-        self.vty.command("end")
-
-        # update bsc token
-        self.vty.command("configure terminal")
-        self.vty.command("nat")
-        self.vty.command("bsc 1")
-        self.vty.command("token xyu")
-        self.vty.command("end")
-
-        nat_msc_ip(self, ip, port)
-        msc_socket, msc = nat_msc_test(self, ip, port, verbose=True)
-        try:
-            b0 = nat_bsc_sock_test(0, "lol", verbose=True, proc=self.proc)
-            b1 = nat_bsc_sock_test(1, "xyu", verbose=True, proc=self.proc)
-            b2 = nat_bsc_sock_test(5, "key", verbose=True, proc=self.proc)
-
-            self.assertEquals("3 BSCs configured", self.vty.command("show nat num-bscs-configured"))
-            self.assertTrue(3 == nat_bsc_num_con(self))
-            self.assertEquals("MSC is connected: 1", self.vty.command("show msc connection"))
-
-            nat_bsc_reload(self)
-            bscs2 = self.vty.command("show bscs-config")
-            # check that the reset to initial config succeeded
-            self.assertEquals(bscs1, bscs2)
-
-            self.assertEquals("2 BSCs configured", self.vty.command("show nat num-bscs-configured"))
-            self.assertTrue(1 == nat_bsc_num_con(self))
-            rem = self.vty.command("show bsc connections").split(' ')
-            # remaining connection is for BSC0
-            self.assertEquals('0', rem[2])
-            # remaining connection is authorized
-            self.assertEquals('1', rem[4])
-            self.assertEquals("MSC is connected: 1", self.vty.command("show msc connection"))
-        finally:
-            msc.close()
-            msc_socket.close()
-
-    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('mgcp', ['']))
-        self.assertEquals(self.vty.node(), 'config-mgcp')
-        self.checkForEndAndExit()
-        self.assertTrue(self.vty.verify('exit', ['']))
-        self.assertEquals(self.vty.node(), 'config')
-        self.assertTrue(self.vty.verify('nat', ['']))
-        self.assertEquals(self.vty.node(), 'config-nat')
-        self.checkForEndAndExit()
-        self.assertTrue(self.vty.verify('bsc 0', ['']))
-        self.assertEquals(self.vty.node(), 'config-nat-bsc')
-        self.checkForEndAndExit()
-        self.assertTrue(self.vty.verify('exit', ['']))
-        self.assertEquals(self.vty.node(), 'config-nat')
-        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('mgcp')
-        self.vty.command('nat')
-        self.assertEquals(self.vty.node(), 'config-nat')
-        self.vty.command('mgcp')
-        self.assertEquals(self.vty.node(), 'config-mgcp')
-        self.vty.command('nat')
-        self.assertEquals(self.vty.node(), 'config-nat')
-        self.vty.command('bsc 0')
-        self.vty.command('mgcp')
-        self.assertEquals(self.vty.node(), 'config-mgcp')
-
-    def testRewriteNoRewrite(self):
-        self.vty.enable()
-        res = self.vty.command("configure terminal")
-        res = self.vty.command("nat")
-        res = self.vty.command("number-rewrite rewrite.cfg")
-        res = self.vty.command("no number-rewrite")
-
-    def testEnsureNoEnsureModeSet(self):
-        self.vty.enable()
-        res = self.vty.command("configure terminal")
-        res = self.vty.command("nat")
-
-        # Ensure the default
-        res = self.vty.command("show running-config")
-        self.assert_(res.find('\n sdp-ensure-amr-mode-set') > 0)
-
-        self.vty.command("sdp-ensure-amr-mode-set")
-        res = self.vty.command("show running-config")
-        self.assert_(res.find('\n sdp-ensure-amr-mode-set') > 0)
-
-        self.vty.command("no sdp-ensure-amr-mode-set")
-        res = self.vty.command("show running-config")
-        self.assert_(res.find('\n no sdp-ensure-amr-mode-set') > 0)
-
-    def testRewritePostNoRewrite(self):
-        self.vty.enable()
-        self.vty.command("configure terminal")
-        self.vty.command("nat")
-        self.vty.verify("number-rewrite-post rewrite.cfg", [''])
-        self.vty.verify("no number-rewrite-post", [''])
-
-
-    def testPrefixTreeLoading(self):
-        cfg = os.path.join(confpath, "tests/bsc-nat-trie/prefixes.csv")
-
-        self.vty.enable()
-        self.vty.command("configure terminal")
-        self.vty.command("nat")
-        res = self.vty.command("prefix-tree %s" % cfg)
-        self.assertEqual(res, "% prefix-tree loaded 17 rules.")
-        self.vty.command("end")
-
-        res = self.vty.command("show prefix-tree")
-        self.assertEqual(res, '1,1\r\n12,2\r\n123,3\r\n1234,4\r\n12345,5\r\n123456,6\r\n1234567,7\r\n12345678,8\r\n123456789,9\r\n1234567890,10\r\n13,11\r\n14,12\r\n15,13\r\n16,14\r\n82,16\r\n823455,15\r\n+49123,17')
-
-        self.vty.command("configure terminal")
-        self.vty.command("nat")
-        self.vty.command("no prefix-tree")
-        self.vty.command("end")
-
-        res = self.vty.command("show prefix-tree")
-        self.assertEqual(res, "% there is now prefix tree loaded.")
-
-    def testUssdSideChannelProvider(self):
-        self.vty.command("end")
-        self.vty.enable()
-        self.vty.command("configure terminal")
-        self.vty.command("nat")
-        self.vty.command("ussd-token key")
-        self.vty.command("end")
-
-        res = self.vty.verify("show ussd-connection", ['The USSD side channel provider is not connected and not authorized.'])
-        self.assertTrue(res)
-
-        ussdSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-        ussdSocket.connect(('127.0.0.1', 5001))
-        ussdSocket.settimeout(2.0)
-        print "Connected to %s:%d" % ussdSocket.getpeername()
-
-        print "Expecting ID_GET request"
-        data = ussdSocket.recv(4)
-        self.assertEqual(data, "\x00\x01\xfe\x04")
-
-        print "Going to send ID_RESP response"
-        res = ussdSocket.send(IPA().id_resp(IPA().tag_name('key')))
-        self.assertEqual(res, 10)
-
-        # initiating PING/PONG cycle to know, that the ID_RESP message has been processed
-
-        print "Going to send PING request"
-        res = ussdSocket.send(IPA().ping())
-        self.assertEqual(res, 4)
-
-        print "Expecting PONG response"
-        data = ussdSocket.recv(4)
-        self.assertEqual(data, "\x00\x01\xfe\x01")
-
-        res = self.vty.verify("show ussd-connection", ['The USSD side channel provider is connected and authorized.'])
-        self.assertTrue(res)
-
-        print "Going to shut down connection"
-        ussdSocket.shutdown(socket.SHUT_WR)
-
-        print "Expecting EOF"
-        data = ussdSocket.recv(4)
-        self.assertEqual(data, "")
-
-        ussdSocket.close()
-
-        res = self.vty.verify("show ussd-connection", ['The USSD side channel provider is not connected and not authorized.'])
-        self.assertTrue(res)
-
-    def testAccessList(self):
-        """
-        Verify that the imsi-deny can have a reject cause or no reject cause
-        """
-        self.vty.enable()
-        self.vty.command("configure terminal")
-        self.vty.command("nat")
-
-        # Old default
-        self.vty.command("access-list test-default imsi-deny ^123[0-9]*$")
-        res = self.vty.command("show running-config").split("\r\n")
-        asserted = False
-        for line in res:
-           if line.startswith(" access-list test-default"):
-                self.assertEqual(line, " access-list test-default imsi-deny ^123[0-9]*$ 11 11")
-                asserted = True
-        self.assert_(asserted)
-
-        # Check the optional CM Service Reject Cause
-        self.vty.command("access-list test-cm-deny imsi-deny ^123[0-9]*$ 42").split("\r\n")
-        res = self.vty.command("show running-config").split("\r\n")
-        asserted = False
-        for line in res:
-           if line.startswith(" access-list test-cm"):
-                self.assertEqual(line, " access-list test-cm-deny imsi-deny ^123[0-9]*$ 42 11")
-                asserted = True
-        self.assert_(asserted)
-
-        # Check the optional LU Reject Cause
-        self.vty.command("access-list test-lu-deny imsi-deny ^123[0-9]*$ 23 42").split("\r\n")
-        res = self.vty.command("show running-config").split("\r\n")
-        asserted = False
-        for line in res:
-           if line.startswith(" access-list test-lu"):
-                self.assertEqual(line, " access-list test-lu-deny imsi-deny ^123[0-9]*$ 23 42")
-                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")):
-        print("Skipping the NAT test")
-        return
-    test = unittest.TestLoader().loadTestsFromTestCase(TestVTYNAT)
-    suite.addTest(test)
-
-def nat_bsc_reload(x):
-    x.vty.command("configure terminal")
-    x.vty.command("nat")
-    x.vty.command("bscs-config-file bscs.cfg")
-    x.vty.command("end")
-
-def nat_msc_ip(x, ip, port):
-    x.vty.command("configure terminal")
-    x.vty.command("nat")
-    x.vty.command("msc ip " + ip)
-    x.vty.command("msc port " + str(port))
-    x.vty.command("end")
-
-def data2str(d):
-    return d.encode('hex').lower()
-
-def nat_msc_test(x, ip, port, verbose = False):
-    msc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-    msc.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
-    msc.settimeout(5)
-    msc.bind((ip, port))
-    msc.listen(5)
-    if (verbose):
-        print "MSC is ready at " + ip
-    conn = None
-    while True:
-        vty_response = x.vty.command("show msc connection")
-        print "'show msc connection' says: %r" % vty_response
-        if vty_response == "MSC is connected: 1":
-            # success
-            break;
-        if vty_response != "MSC is connected: 0":
-            raise Exception("Unexpected response to 'show msc connection'"
-                            " vty command: %r" % vty_response)
-
-        timeout_retries = 6
-        while timeout_retries > 0:
-            try:
-                conn, addr = msc.accept()
-                print "MSC got connection from ", addr
-                break
-            except socket.timeout:
-                print "socket timed out."
-                timeout_retries -= 1
-                continue
-
-    if not conn:
-        raise Exception("VTY reports MSC is connected, but I haven't"
-                        " connected yet: %r %r" % (ip, port))
-    return msc, conn
-
-def ipa_handle_small(x, verbose = False):
-    s = data2str(x.recv(4))
-    if len(s) != 4*2:
-      raise Exception("expected to receive 4 bytes, but got %d (%r)" % (len(s)/2, s))
-    if "0001fe00" == s:
-        if (verbose):
-            print "\tBSC <- NAT: PING?"
-        x.send(IPA().pong())
-    elif "0001fe06" == s:
-        if (verbose):
-            print "\tBSC <- NAT: IPA ID ACK"
-        x.send(IPA().id_ack())
-    elif "0001fe00" == s:
-        if (verbose):
-            print "\tBSC <- NAT: PONG!"
-    else:
-        if (verbose):
-            print "\tBSC <- NAT: ", s
-
-def ipa_handle_resp(x, tk, verbose = False, proc=None):
-    s = data2str(x.recv(38))
-    if "0023fe040108010701020103010401050101010011" in s:
-        retries = 3
-        while True:
-            print "\tsending IPA identity(%s) at %s" % (tk, time.strftime("%T"))
-            try:
-                x.send(IPA().id_resp(IPA().identity(name = tk.encode('utf-8'))))
-                print "\tdone sending IPA identity(%s) at %s" % (tk,
-                                                            time.strftime("%T"))
-                break
-            except:
-                print "\tfailed sending IPA identity at", time.strftime("%T")
-                if proc:
-                  print "\tproc.poll() = %r" % proc.poll()
-                if retries < 1:
-                    print "\tgiving up"
-                    raise
-                print "\tretrying (%d attempts left)" % retries
-                retries -= 1
-    else:
-        if (verbose):
-            print "\tBSC <- NAT: ", s
-
-def nat_bsc_num_con(x):
-    return len(x.vty.command("show bsc connections").split('\n'))
-
-def nat_bsc_sock_test(nr, tk, verbose = False, proc=None):
-    bsc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-    bsc.bind(('127.0.0.1', 0))
-    bsc.connect(('127.0.0.1', 5000))
-    if (verbose):
-        print "BSC%d " %nr
-        print "\tconnected to %s:%d" % bsc.getpeername()
-    if proc:
-      print "\tproc.poll() = %r" % proc.poll()
-      print "\tproc.pid = %r" % proc.pid
-    ipa_handle_small(bsc, verbose)
-    ipa_handle_resp(bsc, tk, verbose, proc=proc)
-    if proc:
-      print "\tproc.poll() = %r" % proc.poll()
-    bsc.recv(27) # MGCP msg
-    if proc:
-      print "\tproc.poll() = %r" % proc.poll()
-    ipa_handle_small(bsc, verbose)
-    return bsc
-
-def add_bsc_test(suite, workdir):
-    if not os.path.isfile(os.path.join(workdir, "src/osmo-bsc/osmo-bsc")):
-        print("Skipping the BSC test")
-        return
-    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
@@ -1153,11 +161,6 @@
     print "Running tests for specific VTY commands"
     suite = unittest.TestSuite()
     suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestVTYMGCP))
-    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 aaf17ed..0000000
--- 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 b77a4ae..0000000
--- 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 4cf825c..0000000
--- 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