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 | |
| 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')
| -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) | 
