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
diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c
index b3bb77d..0fed43c 100644
--- a/src/gb/gprs_ns.c
+++ b/src/gb/gprs_ns.c
@@ -684,15 +684,17 @@
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)