[PATCH 5/7] gb: Fix NS-RESET response message order

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
Tue Oct 8 10:04:45 UTC 2013


According to 3GPP TS 08.16, 7.3 "Reset procedure" the entity
receiving a NS-RESET PDU responds with a NS-RESET-ACK and 'then'
starts the test procedure which essentially means, that a NS-ALIVE
gets sent and a timer is started.

Currently the NS-ALIVE is sent before the NS-RESET-ACK.

This patch fixes the implementation by reversing the order in which
these messages are sent.
---
 src/gb/gprs_ns.c         |   12 +++++++-----
 tests/gb/gprs_ns_test.ok |   36 ++++++++++++++++++------------------
 2 files changed, 25 insertions(+), 23 deletions(-)

diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c
index e41c118..bba75bc 100644
--- a/src/gb/gprs_ns.c
+++ b/src/gb/gprs_ns.c
@@ -684,15 +684,17 @@ static int gprs_ns_rx_reset(struct gprs_nsvc *nsvc, struct msgb *msg)
 	nsvc->nsei = ntohs(*nsei);
 	nsvc->nsvci = ntohs(*nsvci);
 
-	/* start the test procedure */
-	gprs_ns_tx_simple(nsvc, NS_PDUT_ALIVE);
-	nsvc_start_timer(nsvc, NSVC_TIMER_TNS_TEST);
-
 	/* inform interested parties about the fact that this NSVC
 	 * has received RESET */
 	ns_osmo_signal_dispatch(nsvc, S_NS_RESET, *cause);
 
-	return gprs_ns_tx_reset_ack(nsvc);
+	rc = gprs_ns_tx_reset_ack(nsvc);
+
+	/* start the test procedure */
+	gprs_ns_tx_simple(nsvc, NS_PDUT_ALIVE);
+	nsvc_start_timer(nsvc, NSVC_TIMER_TNS_TEST);
+
+	return rc;
 }
 
 static int gprs_ns_rx_block(struct gprs_nsvc *nsvc, struct msgb *msg)
diff --git a/tests/gb/gprs_ns_test.ok b/tests/gb/gprs_ns_test.ok
index 4a44907..049b5e6 100644
--- a/tests/gb/gprs_ns_test.ok
+++ b/tests/gb/gprs_ns_test.ok
@@ -2,12 +2,12 @@
 PROCESSING RESET from 0x01020304:1111
 02 00 81 01 01 82 11 22 04 82 11 22 
 
-RESPONSE, msg length 1
-0a 
-
 RESPONSE, msg length 9
 03 01 82 11 22 04 82 11 22 
 
+RESPONSE, msg length 1
+0a 
+
 result (RESET) = 9
 
 Current NS-VCIs:
@@ -42,12 +42,12 @@ result (BSSGP RESET) = 0
 PROCESSING RESET from 0x01020304:2222
 02 00 81 01 01 82 11 22 04 82 11 22 
 
-RESPONSE, msg length 1
-0a 
-
 RESPONSE, msg length 9
 03 01 82 11 22 04 82 11 22 
 
+RESPONSE, msg length 1
+0a 
+
 result (RESET) = 9
 
 Current NS-VCIs:
@@ -58,12 +58,12 @@ Current NS-VCIs:
 PROCESSING RESET from 0x01020304:3333
 02 00 81 01 01 82 33 44 04 82 11 22 
 
-RESPONSE, msg length 1
-0a 
-
 RESPONSE, msg length 9
 03 01 82 33 44 04 82 11 22 
 
+RESPONSE, msg length 1
+0a 
+
 result (RESET) = 9
 
 Current NS-VCIs:
@@ -74,12 +74,12 @@ Current NS-VCIs:
 PROCESSING RESET from 0x01020304:4444
 02 00 81 01 01 82 11 22 04 82 33 44 
 
-RESPONSE, msg length 1
-0a 
-
 RESPONSE, msg length 9
 03 01 82 11 22 04 82 33 44 
 
+RESPONSE, msg length 1
+0a 
+
 result (RESET) = 9
 
 Current NS-VCIs:
@@ -91,12 +91,12 @@ Current NS-VCIs:
 PROCESSING RESET from 0x01020304:3333
 02 00 81 01 01 82 11 22 04 82 11 22 
 
-RESPONSE, msg length 1
-0a 
-
 RESPONSE, msg length 9
 03 01 82 11 22 04 82 11 22 
 
+RESPONSE, msg length 1
+0a 
+
 result (RESET) = 9
 
 Current NS-VCIs:
@@ -108,12 +108,12 @@ Current NS-VCIs:
 PROCESSING RESET from 0x01020304:4444
 02 00 81 01 01 82 11 22 04 82 11 22 
 
-RESPONSE, msg length 1
-0a 
-
 RESPONSE, msg length 9
 03 01 82 11 22 04 82 11 22 
 
+RESPONSE, msg length 1
+0a 
+
 result (RESET) = 9
 
 Current NS-VCIs:
-- 
1.7.9.5





More information about the OpenBSC mailing list