diff options
author | Jacob Erlbeck <jerlbeck@sysmocom.de> | 2013-10-08 12:04:45 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <holger@moiji-mobile.com> | 2013-10-08 14:51:13 +0200 |
commit | 05395a63b77e97217fc5ffa84ab375adfcaca244 (patch) | |
tree | f364115b3e0e713c18a8b7a26376e5e249e6a579 | |
parent | 84cdc70e0bbeddf33404df472f3c992f5446ff12 (diff) |
gb: Fix NS-RESET response message order
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.
Sponsored-by: On-Waves ehf
-rw-r--r-- | src/gb/gprs_ns.c | 12 | ||||
-rw-r--r-- | 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 b3bb77de..0fed43c5 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 4a449077..049b5e66 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: |