[1/6] gprs-ns/test: Use gprs_nsvc_reset instead of gprs_ns_tx_reset
diff mbox

Message ID 1412762718-31961-1-git-send-email-jerlbeck@sysmocom.de
State Accepted
Headers show

Commit Message

Jacob Erlbeck Oct. 8, 2014, 10:05 a.m. UTC
Currently gprs_ns_tx_reset is used to let the NS stack generate
NS_RESET message. This is not adjusting the nsvc state properly.

This patch uses gprs_nsvc_reset instead which starts the full reset
procedure.

Sponsored-by: On-Waves ehf
---
 tests/gb/gprs_ns_test.c  | 23 ++++++++---------------
 tests/gb/gprs_ns_test.ok | 12 +++++-------
 2 files changed, 13 insertions(+), 22 deletions(-)

Comments

Holger Freyther Oct. 9, 2014, 5:43 a.m. UTC | #1
On Wed, Oct 08, 2014 at 12:05:13PM +0200, Jacob Erlbeck wrote:
> Currently gprs_ns_tx_reset is used to let the NS stack generate
> NS_RESET message. This is not adjusting the nsvc state properly.
> 
> This patch uses gprs_nsvc_reset instead which starts the full reset
> procedure.

Shall we patch gprs_nsvc_reset to return the error from the
gprs_ns_tx_reset call? 

> -	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);
> -	}
> +	gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION);

e.g. we entered the "failed" path here and don't capture the
log output. of libosmogb.

Patch
diff mbox

diff --git a/tests/gb/gprs_ns_test.c b/tests/gb/gprs_ns_test.c
index c90d752..15e36ba 100644
--- a/tests/gb/gprs_ns_test.c
+++ b/tests/gb/gprs_ns_test.c
@@ -573,7 +573,6 @@  static void test_bss_reset_ack()
 	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);
@@ -604,7 +603,7 @@  static void test_bss_reset_ack()
 	printf("--- Setup VC 1 SGSN -> BSS ---\n\n");
 
 	nsvc = gprs_nsvc_by_nsvci(nsi, 0x1001);
-	gprs_ns_tx_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
+	gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
 	send_ns_reset_ack(nsi, nse[0], 0x1001, 0x1000);
 	gprs_dump_nsi(nsi);
 
@@ -616,25 +615,19 @@  static void test_bss_reset_ack()
 	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);
+	gprs_nsvc_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);
-	}
+	gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
 
 	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);
+	gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
 	send_ns_reset_ack(nsi, nse[0], 0x1001, 0x1000);
 	gprs_dump_nsi(nsi);
 
@@ -683,7 +676,7 @@  static void test_bss_reset_ack()
 	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);
+	gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
 	send_ns_reset_ack(nsi, nse[0], 0x1001, 0xf000);
 	gprs_dump_nsi(nsi);
 
@@ -692,7 +685,7 @@  static void test_bss_reset_ack()
 	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);
+	gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
 	send_ns_reset_ack(nsi, nse[0], 0xf001, 0x1000);
 	gprs_dump_nsi(nsi);
 
@@ -761,7 +754,7 @@  static void test_sgsn_reset()
 	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);
+	gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
 	send_ns_reset_ack(nsi, &sgsn_peer, SGSN_NSEI+1, 0xe000);
 	gprs_dump_nsi(nsi);
 
@@ -770,7 +763,7 @@  static void test_sgsn_reset()
 	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);
+	gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION);
 	send_ns_reset_ack(nsi, &sgsn_peer, 0xe001, SGSN_NSEI);
 	gprs_dump_nsi(nsi);
 
diff --git a/tests/gb/gprs_ns_test.ok b/tests/gb/gprs_ns_test.ok
index 13d5f36..0d4b7fb 100644
--- a/tests/gb/gprs_ns_test.ok
+++ b/tests/gb/gprs_ns_test.ok
@@ -368,15 +368,13 @@  MESSAGE to BSS, msg length 1
 result (RESET_ACK) = 1
 
 Current NS-VCIs:
-    VCI 0x2001, NSEI 0x2000, peer 0x00000000:0
+    VCI 0x2001, NSEI 0x2000, peer 0x00000000:0, blocked, dead
     VCI 0x1001, NSEI 0x1000, peer 0x01020304:2222, blocked
          NS-VC Block count         : 2
          NS-VC replaced other count: 1
 
 --- Setup VC 2 SGSN -> BSS (hits NSEI 2) ---
 
-Failed to send RESET to 0.0.0.0:0
-
 --- Setup VC 1 SGSN -> BSS (hits NSEI 1) ---
 
 MESSAGE to BSS, msg length 12
@@ -391,7 +389,7 @@  MESSAGE to BSS, msg length 1
 result (RESET_ACK) = 1
 
 Current NS-VCIs:
-    VCI 0x2001, NSEI 0x2000, peer 0x00000000:0
+    VCI 0x2001, NSEI 0x2000, peer 0x00000000:0, blocked, dead
     VCI 0x1001, NSEI 0x1000, peer 0x01020304:2222, blocked
          NS-VC Block count         : 3
          NS-VC replaced other count: 1
@@ -566,7 +564,7 @@  Current NS-VCIs:
          NS-VC Block count         : 1
          NS-VC replaced other count: 2
     VCI 0x2001, NSEI 0x2000, peer 0x01020304:1111
-    VCI 0x1001, NSEI 0xf000, peer 0x00000000:0, blocked
+    VCI 0x1001, NSEI 0xf000, peer 0x00000000:0, blocked, dead
          NS-VC Block count         : 4
          NS-VC replaced other count: 2
          NS-VC changed NSEI count  : 3
@@ -700,7 +698,7 @@  PROCESSING RESET_ACK from 0x05060708:32000
 result (RESET_ACK) = -22
 
 Current NS-VCIs:
-    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked
+    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked, dead
          NS-VC Block count         : 1
          NS-VCI was invalid count  : 1
          NSEI was invalid count    : 2
@@ -717,7 +715,7 @@  PROCESSING RESET_ACK from 0x05060708:32000
 result (RESET_ACK) = -22
 
 Current NS-VCIs:
-    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked
+    VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000, blocked, dead
          NS-VC Block count         : 1
          NS-VCI was invalid count  : 2
          NSEI was invalid count    : 2