gbproxy/test: Add expect_msg checks to test_gbproxy_keep_info

This patch adds assertions to check the LLC/GMM message received from
the gbproxy by the test framework within the function
test_gbproxy_keep_info.

It also fixes the source address of the DETACH ACC messages.

Sponsored-by: On-Waves ehf
diff --git a/openbsc/tests/gbproxy/gbproxy_test.c b/openbsc/tests/gbproxy/gbproxy_test.c
index 16dbf5b..350c9f0 100644
--- a/openbsc/tests/gbproxy/gbproxy_test.c
+++ b/openbsc/tests/gbproxy/gbproxy_test.c
@@ -3247,6 +3247,8 @@
 	unsigned bss_nu = 0;
 	unsigned sgsn_nu = 0;
 
+	LLIST_HEAD(rcv_list);
+
 	OSMO_ASSERT(local_tlli == gprs_tmsi2tlli(ptmsi, TLLI_LOCAL));
 
 	bssgp_nsi = nsi;
@@ -3288,11 +3290,15 @@
 
 	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);
@@ -3306,6 +3312,8 @@
 		       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);
@@ -3318,6 +3326,8 @@
 		       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,
@@ -3325,6 +3335,8 @@
 		       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);
@@ -3337,6 +3349,8 @@
 		       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,
@@ -3344,6 +3358,8 @@
 		       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,
@@ -3351,6 +3367,8 @@
 		       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);
@@ -3362,6 +3380,8 @@
 		       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);
 
@@ -3372,6 +3392,8 @@
 		       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));
@@ -3379,12 +3401,16 @@
 	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));
@@ -3400,6 +3426,8 @@
 		       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,
@@ -3407,6 +3435,8 @@
 		       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) */
@@ -3415,16 +3445,21 @@
 		       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", &sgsn_peer, 0x1002,
+	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));
@@ -3438,6 +3473,8 @@
 		       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));
@@ -3453,6 +3490,8 @@
 		       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,
@@ -3460,6 +3499,8 @@
 		       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) */
@@ -3468,16 +3509,21 @@
 		       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", &sgsn_peer, 0x1002,
+	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));
@@ -3491,6 +3537,8 @@
 		       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));
@@ -3506,6 +3554,8 @@
 		       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,
@@ -3513,6 +3563,8 @@
 		       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) */
@@ -3521,11 +3573,16 @@
 		       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));
@@ -3539,6 +3596,8 @@
 		       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));
@@ -3554,6 +3613,8 @@
 		       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));
@@ -3569,6 +3630,8 @@
 		       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));
@@ -3582,6 +3645,8 @@
 		       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) */
@@ -3590,16 +3655,20 @@
 		       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", &sgsn_peer, 0x1002,
+	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));
@@ -3607,6 +3676,8 @@
 	OSMO_ASSERT(link_info);
 	OSMO_ASSERT(link_info->is_deregistered);
 
+	OSMO_ASSERT(!expect_msg());
+
 	/* Attach rejected */
 
 	gbproxy_delete_link_infos(peer);
@@ -3616,6 +3687,8 @@
 		       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);
@@ -3629,6 +3702,8 @@
 		       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));
@@ -3644,10 +3719,14 @@
 		       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);
@@ -3657,6 +3736,8 @@
 		       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);
@@ -3670,8 +3751,12 @@
 		       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);
@@ -3681,6 +3766,8 @@
 		       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);
@@ -3694,16 +3781,23 @@
 		       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", &sgsn_peer, 0x1002,
+	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));
@@ -3711,6 +3805,9 @@
 	OSMO_ASSERT(link_info);
 	OSMO_ASSERT(link_info->is_deregistered);
 
+	OSMO_ASSERT(!expect_msg());
+	received_messages = NULL;
+
 	dump_global(stdout, 0);
 
 	gbprox_reset(&gbcfg);
diff --git a/openbsc/tests/gbproxy/gbproxy_test.ok b/openbsc/tests/gbproxy/gbproxy_test.ok
index d6a4d26..ae1839d 100644
--- a/openbsc/tests/gbproxy/gbproxy_test.ok
+++ b/openbsc/tests/gbproxy/gbproxy_test.ok
@@ -5132,14 +5132,14 @@
     TLLI cache size                 : 1
     TLLI-Cache: 1
       TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0
-PROCESSING DETACH ACC from 0x05060708:32000
+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 BSS, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg)
-MESSAGE to BSS at 0x01020304:1111, msg length 35
+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
@@ -5222,14 +5222,14 @@
     TLLI cache size                 : 1
     TLLI-Cache: 1
       TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0
-PROCESSING DETACH ACC from 0x05060708:32000
+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 BSS, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg)
-MESSAGE to BSS at 0x01020304:1111, msg length 35
+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
@@ -5415,14 +5415,14 @@
     TLLI cache size                 : 1
     TLLI-Cache: 1
       TLLI efe2b700 -> efe2b700, IMSI 12131415161718, AGE 0
-PROCESSING DETACH ACC from 0x05060708:32000
+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 45 08 06 c2 34 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 45 08 06 c2 34 26 
 
-NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg)
-MESSAGE to BSS at 0x01020304:1111, msg length 35
+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 45 08 06 c2 34 26 
 
 result (DETACH ACC) = 35
@@ -5562,14 +5562,18 @@
     TLLI cache size                 : 1
     TLLI-Cache: 1
       TLLI afe2b700 -> afe2b700, IMSI 12131415161718, AGE 0, STORED 1, IMSI acquisition in progress
-PROCESSING DETACH ACC from 0x05060708:32000
+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 5d 08 06 11 84 8b 
 
 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 5d 08 06 11 84 8b 
 
-NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 31 (gprs_ns_sendmsg)
-MESSAGE to BSS at 0x01020304:1111, msg length 35
+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 59 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 a9 8e f1 
+
+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 5d 08 06 11 84 8b 
 
 result (DETACH ACC) = 35