From 81d7c14756ee17c2748c3d34a198c640655fd0c6 Mon Sep 17 00:00:00 2001 From: Jacob Erlbeck Date: Thu, 24 Oct 2013 01:33:22 +0200 Subject: gb: Add test cases for NS RESET procedures 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 74eb701c..3d0293eb 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 b5d578a1..96fbd380 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 --- -- cgit v1.2.3