[PATCH 4/7] gb: Add test cases for NS RESET procedures

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Jacob Erlbeck jerlbeck at sysmocom.de
Wed Oct 23 23:33:22 UTC 2013


Add a test handling proper and mismatching RESETs. The latter may
occur, when ports change within a NS-VC without the SGSN getting
notice.

This tests for the behavior of the NS protocol stack for RESET and
RESET_ACK messages which changing/invalid NSEI and NSVCI like it is
being described in 3GPP TS 08.16, 7.3.1.

Sponsored-by: On-Waves ehf
---
 tests/gb/gprs_ns_test.c  |  218 +++++++++++++++++++++
 tests/gb/gprs_ns_test.ok |  485 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 703 insertions(+)

diff --git a/tests/gb/gprs_ns_test.c b/tests/gb/gprs_ns_test.c
index 74eb701..3d0293e 100644
--- a/tests/gb/gprs_ns_test.c
+++ b/tests/gb/gprs_ns_test.c
@@ -533,6 +533,217 @@ static void test_bss_port_changes()
 	nsi = NULL;
 }
 
+static void test_bss_reset_ack()
+{
+	struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL);
+	struct sockaddr_in peer[4] = {{0},};
+	struct gprs_nsvc *nsvc;
+	struct sockaddr_in *nse[4];
+	int rc;
+
+	peer[0].sin_family = AF_INET;
+	peer[0].sin_port = htons(1111);
+	peer[0].sin_addr.s_addr = htonl(REMOTE_BSS_ADDR);
+	peer[1].sin_family = AF_INET;
+	peer[1].sin_port = htons(2222);
+	peer[1].sin_addr.s_addr = htonl(REMOTE_BSS_ADDR);
+	peer[2].sin_family = AF_INET;
+	peer[2].sin_port = htons(3333);
+	peer[2].sin_addr.s_addr = htonl(REMOTE_BSS_ADDR);
+	peer[3].sin_family = AF_INET;
+	peer[3].sin_port = htons(4444);
+	peer[3].sin_addr.s_addr = htonl(REMOTE_BSS_ADDR);
+
+	nse[0] = &peer[0];
+	nse[1] = &peer[1];
+
+	printf("--- Setup VC 1 BSS -> SGSN ---\n\n");
+
+	setup_ns(nsi, nse[0], 0x1001, 0x1000);
+	gprs_dump_nsi(nsi);
+
+	printf("--- Setup VC 2 BSS -> SGSN ---\n\n");
+
+	setup_ns(nsi, nse[1], 0x2001, 0x2000);
+	gprs_dump_nsi(nsi);
+
+	printf("--- Setup VC 1 SGSN -> BSS ---\n\n");
+
+	nsvc = gprs_nsvc_by_nsvci(nsi, 0x1001);
+	gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	send_ns_reset_ack(nsi, nse[0], 0x1001, 0x1000);
+	gprs_dump_nsi(nsi);
+
+	printf("--- Exchange NSEI 1 + 2 links ---\n\n");
+
+	nse[1] = &peer[0];
+	nse[0] = &peer[1];
+
+	printf("--- Setup VC 2 SGSN -> BSS (hits NSEI 1) ---\n\n");
+
+	nsvc = gprs_nsvc_by_nsvci(nsi, 0x2001);
+	gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	send_ns_reset_ack(nsi, nse[0], 0x1001, 0x1000);
+	gprs_dump_nsi(nsi);
+
+	printf("--- Setup VC 2 SGSN -> BSS (hits NSEI 2) ---\n\n");
+
+	nsvc = gprs_nsvc_by_nsvci(nsi, 0x2001);
+	rc = gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	if (rc < 0)
+		printf("Failed to send RESET to %s\n\n", gprs_ns_ll_str(nsvc));
+	else {
+		send_ns_reset_ack(nsi, nse[1], 0x2001, 0x2000);
+		gprs_dump_nsi(nsi);
+	}
+
+	printf("--- Setup VC 1 SGSN -> BSS (hits NSEI 1) ---\n\n");
+
+	nsvc = gprs_nsvc_by_nsvci(nsi, 0x1001);
+	gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	send_ns_reset_ack(nsi, nse[0], 0x1001, 0x1000);
+	gprs_dump_nsi(nsi);
+
+	printf("--- Setup VC 2 BSS -> SGSN ---\n\n");
+
+	setup_ns(nsi, nse[1], 0x2001, 0x2000);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 3rd paragraph. */
+	/* This is not rejected because the NSEI has been
+	 * assigned dynamically and not by configuration.
+	 * This is not strictly spec conformant. */
+
+	printf("--- RESET with invalid NSEI, BSS -> SGSN ---\n\n");
+
+	send_ns_reset(nsi, nse[0], NS_CAUSE_OM_INTERVENTION,
+		      0x1001, 0xf000);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 2nd paragraph. */
+	/* This is not rejected because the NSEI has been
+	 * assigned dynamically and not by configuration.
+	 * This is not strictly spec conformant. */
+
+	printf("--- RESET with invalid NSVCI, BSS -> SGSN ---\n\n");
+
+	send_ns_reset(nsi, nse[0], NS_CAUSE_OM_INTERVENTION,
+		      0xf001, 0x1000);
+	gprs_dump_nsi(nsi);
+
+	printf("--- RESET with old NSEI, NSVCI, BSS -> SGSN ---\n\n");
+
+	send_ns_reset(nsi, nse[0], NS_CAUSE_OM_INTERVENTION,
+		      0x1001, 0x1000);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 5th paragraph. */
+
+	printf("--- Unexpected RESET_ACK VC 1, BSS -> SGSN ---\n\n");
+
+	send_ns_reset_ack(nsi, nse[0], 0x1001, 0x1000);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 4th paragraph. */
+
+	printf("---  RESET_ACK with invalid NSEI, BSS -> SGSN ---\n\n");
+
+	nsvc = gprs_nsvc_by_nsvci(nsi, 0x1001);
+	gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	send_ns_reset_ack(nsi, nse[0], 0x1001, 0xf000);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 4th paragraph. */
+
+	printf("---  RESET_ACK with invalid NSVCI, BSS -> SGSN ---\n\n");
+
+	nsvc = gprs_nsvc_by_nsvci(nsi, 0x1001);
+	gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	send_ns_reset_ack(nsi, nse[0], 0xf001, 0x1000);
+	gprs_dump_nsi(nsi);
+
+	gprs_ns_destroy(nsi);
+	nsi = NULL;
+}
+
+
+static void test_sgsn_reset()
+{
+	struct gprs_ns_inst *nsi = gprs_ns_instantiate(gprs_ns_callback, NULL);
+	struct sockaddr_in sgsn_peer= {0};
+	struct gprs_nsvc *nsvc;
+
+	sgsn_peer.sin_family = AF_INET;
+	sgsn_peer.sin_port = htons(32000);
+	sgsn_peer.sin_addr.s_addr = htonl(REMOTE_SGSN_ADDR);
+
+	gprs_dump_nsi(nsi);
+
+	printf("--- Setup SGSN connection, BSS -> SGSN ---\n\n");
+
+	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);
+	gprs_dump_nsi(nsi);
+
+	printf("--- RESET, SGSN -> BSS ---\n\n");
+
+	send_ns_reset(nsi, &sgsn_peer, NS_CAUSE_OM_INTERVENTION,
+		      SGSN_NSEI+1, SGSN_NSEI);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 3rd paragraph. */
+
+	printf("--- RESET with invalid NSEI, SGSN -> BSS ---\n\n");
+
+	send_ns_reset(nsi, &sgsn_peer, NS_CAUSE_OM_INTERVENTION,
+		      SGSN_NSEI+1, 0xf000);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 2nd paragraph. */
+
+	printf("--- RESET with invalid NSVCI, SGSN -> BSS ---\n\n");
+
+	send_ns_reset(nsi, &sgsn_peer, NS_CAUSE_OM_INTERVENTION,
+		      0xf001, SGSN_NSEI);
+	gprs_dump_nsi(nsi);
+
+	printf("--- RESET, SGSN -> BSS ---\n\n");
+
+	send_ns_reset(nsi, &sgsn_peer, NS_CAUSE_OM_INTERVENTION,
+		      SGSN_NSEI+1, SGSN_NSEI);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 5th paragraph. */
+
+	printf("--- Unexpected RESET_ACK VC 1, BSS -> SGSN ---\n\n");
+
+	send_ns_reset_ack(nsi, &sgsn_peer, SGSN_NSEI+1, SGSN_NSEI);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 4th paragraph. */
+
+	printf("---  RESET_ACK with invalid NSEI, BSS -> SGSN ---\n\n");
+
+	nsvc = gprs_nsvc_by_nsvci(nsi, SGSN_NSEI+1);
+	gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	send_ns_reset_ack(nsi, &sgsn_peer, SGSN_NSEI+1, 0xe000);
+	gprs_dump_nsi(nsi);
+
+	/* Test 3GPP TS 08.16, 7.3.1, 4th paragraph. */
+
+	printf("---  RESET_ACK with invalid NSVCI, BSS -> SGSN ---\n\n");
+
+	nsvc = gprs_nsvc_by_nsvci(nsi, SGSN_NSEI+1);
+	gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	send_ns_reset_ack(nsi, &sgsn_peer, 0xe001, SGSN_NSEI);
+	gprs_dump_nsi(nsi);
+
+
+	gprs_ns_destroy(nsi);
+	nsi = NULL;
+}
 
 static void test_sgsn_output()
 {
@@ -607,9 +818,16 @@ int main(int argc, char **argv)
 	log_set_print_filename(osmo_stderr_target, 0);
 	osmo_signal_register_handler(SS_L_NS, &test_signal, NULL);
 
+	log_set_print_filename(osmo_stderr_target, 0);
+	log_set_log_level(osmo_stderr_target, LOGL_INFO);
+
+	setlinebuf(stdout);
+
 	printf("===== NS protocol test START\n");
 	test_nsvc();
 	test_bss_port_changes();
+	test_bss_reset_ack();
+	test_sgsn_reset();
 	test_sgsn_output();
 	printf("===== NS protocol test END\n\n");
 
diff --git a/tests/gb/gprs_ns_test.ok b/tests/gb/gprs_ns_test.ok
index b5d578a..96fbd38 100644
--- a/tests/gb/gprs_ns_test.ok
+++ b/tests/gb/gprs_ns_test.ok
@@ -229,6 +229,491 @@ Current NS-VCIs:
          NS-VC replaced other count: 1
          NS-VC changed NSEI        : 2
 
+--- Setup VC 1 BSS -> SGSN ---
+
+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, msg length 9
+03 01 82 10 01 04 82 10 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET) = 9
+
+PROCESSING ALIVE from 0x01020304:1111
+0a 
+
+MESSAGE to BSS, 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, 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
+
+--- Setup VC 2 BSS -> SGSN ---
+
+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, msg length 9
+03 01 82 20 01 04 82 20 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET) = 9
+
+PROCESSING ALIVE from 0x01020304:2222
+0a 
+
+MESSAGE to BSS, 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, msg length 1
+07 
+
+result (UNBLOCK) = 1
+
+PROCESSING ALIVE_ACK from 0x01020304:2222
+0b 
+
+result (ALIVE_ACK) = 0
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111
+
+--- Setup VC 1 SGSN -> BSS ---
+
+MESSAGE to BSS, msg length 12
+02 00 81 01 01 82 10 01 04 82 10 00 
+
+PROCESSING RESET_ACK from 0x01020304:1111
+03 01 82 10 01 04 82 10 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111, blocked
+         NS-VC Block count         : 1
+
+--- Exchange NSEI 1 + 2 links ---
+
+--- Setup VC 2 SGSN -> BSS (hits NSEI 1) ---
+
+MESSAGE to BSS, msg length 12
+02 00 81 01 01 82 20 01 04 82 20 00 
+
+PROCESSING RESET_ACK from 0x01020304:2222
+03 01 82 10 01 04 82 10 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 1
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111, blocked
+         NS-VC Block count         : 1
+
+--- Setup VC 2 SGSN -> BSS (hits NSEI 2) ---
+
+MESSAGE to BSS, msg length 12
+02 00 81 01 01 82 20 01 04 82 20 00 
+
+PROCESSING RESET_ACK from 0x01020304:1111
+03 01 82 20 01 04 82 20 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 1
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111, blocked
+         NS-VC Block count         : 2
+
+--- Setup VC 1 SGSN -> BSS (hits NSEI 1) ---
+
+MESSAGE to BSS, msg length 12
+02 00 81 01 01 82 10 01 04 82 10 00 
+
+PROCESSING RESET_ACK from 0x01020304:2222
+03 01 82 10 01 04 82 10 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 2
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111, blocked
+         NS-VC Block count         : 2
+
+--- Setup VC 2 BSS -> SGSN ---
+
+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/1.2.3.4:2222 -> 0x1001/1.2.3.4:1111
+==> got signal NS_RESET, NS-VC 0x2001/1.2.3.4:1111
+MESSAGE to BSS, msg length 9
+03 01 82 20 01 04 82 20 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET) = 9
+
+PROCESSING ALIVE from 0x01020304:1111
+0a 
+
+MESSAGE to BSS, 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, 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 Block count         : 2
+         NS-VC replaced other count: 1
+    VCI 0x1001, NSEI 0x1000, peer 0x00000000:0, blocked
+         NS-VC Block count         : 2
+
+--- RESET with invalid NSEI, BSS -> SGSN ---
+
+PROCESSING RESET from 0x01020304:2222
+02 00 81 01 01 82 10 01 04 82 f0 00 
+
+==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:2222
+MESSAGE to BSS, msg length 9
+03 01 82 10 01 04 82 f0 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET) = 9
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
+         NS-VC Block count         : 2
+         NS-VC replaced other count: 1
+    VCI 0x1001, NSEI 0xf000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 2
+         NS-VC changed NSEI        : 1
+
+--- RESET with invalid NSVCI, BSS -> SGSN ---
+
+PROCESSING RESET from 0x01020304:2222
+02 00 81 01 01 82 f0 01 04 82 10 00 
+
+==> got signal NS_RESET, NS-VC 0xf001/1.2.3.4:2222
+MESSAGE to BSS, msg length 9
+03 01 82 f0 01 04 82 10 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET) = 9
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
+         NS-VC Block count         : 2
+         NS-VC replaced other count: 1
+    VCI 0xf001, NSEI 0x1000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 2
+         NS-VC changed NSEI        : 1
+
+--- RESET with old NSEI, NSVCI, BSS -> SGSN ---
+
+PROCESSING RESET from 0x01020304:2222
+02 00 81 01 01 82 10 01 04 82 10 00 
+
+==> got signal NS_RESET, NS-VC 0x1001/1.2.3.4:2222
+MESSAGE to BSS, msg length 9
+03 01 82 10 01 04 82 10 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET) = 9
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
+         NS-VC Block count         : 2
+         NS-VC replaced other count: 1
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 2
+         NS-VC changed NSEI        : 1
+
+--- Unexpected RESET_ACK VC 1, BSS -> SGSN ---
+
+PROCESSING RESET_ACK from 0x01020304:2222
+03 01 82 10 01 04 82 10 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
+         NS-VC Block count         : 2
+         NS-VC replaced other count: 1
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 3
+         NS-VC changed NSEI        : 1
+
+---  RESET_ACK with invalid NSEI, BSS -> SGSN ---
+
+MESSAGE to BSS, msg length 12
+02 00 81 01 01 82 10 01 04 82 10 00 
+
+PROCESSING RESET_ACK from 0x01020304:2222
+03 01 82 10 01 04 82 f0 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
+         NS-VC Block count         : 2
+         NS-VC replaced other count: 1
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 4
+         NS-VC changed NSEI        : 1
+
+---  RESET_ACK with invalid NSVCI, BSS -> SGSN ---
+
+MESSAGE to BSS, msg length 12
+02 00 81 01 01 82 10 01 04 82 10 00 
+
+PROCESSING RESET_ACK from 0x01020304:2222
+03 01 82 f0 01 04 82 10 00 
+
+MESSAGE to BSS, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
+         NS-VC Block count         : 2
+         NS-VC replaced other count: 1
+    VCI 0x1001, NSEI 0x1000, peer 0x01020304:2222, blocked
+         NS-VC Block count         : 5
+         NS-VC changed NSEI        : 1
+
+Current NS-VCIs:
+
+--- Setup SGSN connection, BSS -> SGSN ---
+
+MESSAGE to SGSN, 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, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+PROCESSING ALIVE_ACK from 0x05060708:32000
+0b 
+
+MESSAGE to SGSN, 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
+
+Current NS-VCIs:
+    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000
+         NS-VC Block count         : 1
+
+--- RESET, SGSN -> BSS ---
+
+PROCESSING RESET from 0x05060708:32000
+02 00 81 01 01 82 01 01 04 82 01 00 
+
+==> got signal NS_RESET, NS-VC 0x0101/5.6.7.8:32000
+MESSAGE to SGSN, msg length 9
+03 01 82 01 01 04 82 01 00 
+
+MESSAGE to SGSN, msg length 1
+0a 
+
+result (RESET) = 9
+
+Current NS-VCIs:
+    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked
+         NS-VC Block count         : 1
+
+--- RESET with invalid NSEI, SGSN -> BSS ---
+
+PROCESSING RESET from 0x05060708:32000
+02 00 81 01 01 82 01 01 04 82 f0 00 
+
+==> got signal NS_RESET, NS-VC 0x0101/5.6.7.8:32000
+MESSAGE to SGSN, msg length 9
+03 01 82 01 01 04 82 f0 00 
+
+MESSAGE to SGSN, msg length 1
+0a 
+
+result (RESET) = 9
+
+Current NS-VCIs:
+    VCI 0x0101, NSEI 0xf000, peer 0x05060708:32000, blocked
+         NS-VC Block count         : 1
+
+--- RESET with invalid NSVCI, SGSN -> BSS ---
+
+PROCESSING RESET from 0x05060708:32000
+02 00 81 01 01 82 f0 01 04 82 01 00 
+
+==> got signal NS_RESET, NS-VC 0xf001/5.6.7.8:32000
+MESSAGE to SGSN, msg length 9
+03 01 82 f0 01 04 82 01 00 
+
+MESSAGE to SGSN, msg length 1
+0a 
+
+result (RESET) = 9
+
+Current NS-VCIs:
+    VCI 0xf001, NSEI 0x0100, peer 0x05060708:32000, blocked
+         NS-VC Block count         : 1
+
+--- RESET, SGSN -> BSS ---
+
+PROCESSING RESET from 0x05060708:32000
+02 00 81 01 01 82 01 01 04 82 01 00 
+
+==> got signal NS_RESET, NS-VC 0x0101/5.6.7.8:32000
+MESSAGE to SGSN, msg length 9
+03 01 82 01 01 04 82 01 00 
+
+MESSAGE to SGSN, msg length 1
+0a 
+
+result (RESET) = 9
+
+Current NS-VCIs:
+    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked
+         NS-VC Block count         : 1
+
+--- Unexpected RESET_ACK VC 1, BSS -> SGSN ---
+
+PROCESSING RESET_ACK from 0x05060708:32000
+03 01 82 01 01 04 82 01 00 
+
+MESSAGE to SGSN, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked
+         NS-VC Block count         : 2
+
+---  RESET_ACK with invalid NSEI, BSS -> SGSN ---
+
+MESSAGE to SGSN, 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 e0 00 
+
+MESSAGE to SGSN, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked
+         NS-VC Block count         : 3
+
+---  RESET_ACK with invalid NSVCI, BSS -> SGSN ---
+
+MESSAGE to SGSN, msg length 12
+02 00 81 01 01 82 01 01 04 82 01 00 
+
+PROCESSING RESET_ACK from 0x05060708:32000
+03 01 82 e0 01 04 82 01 00 
+
+MESSAGE to SGSN, msg length 1
+0a 
+
+result (RESET_ACK) = 1
+
+Current NS-VCIs:
+    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked
+         NS-VC Block count         : 4
+
 Current NS-VCIs:
 
 --- Send message to SGSN ---
-- 
1.7.9.5





More information about the OpenBSC mailing list