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 /src/gb | |
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
Diffstat (limited to 'src/gb')
-rw-r--r-- | src/gb/gprs_ns.c | 12 |
1 files changed, 7 insertions, 5 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) |