mirror of https://gerrit.osmocom.org/libosmocore
[GPRS] NS: Start TEST procedure, not ALIVE procedure, on RESET/RESET_ACK
According to the spec, after an incoming RESET or RESET_ACK, we shall start the TEST procedure, not the ALIVE procedure. Also, when we start the TEST procedure, we have to always send a NS_ALIVE packet at the same time (we didn't in the case of incoming RESET). Furthermore, we now only start TIMER_TNS_ALIVE from within the TIMER_TNS_RESET callback code, where we also make sure that the alive_retries counter is reset to zero.
This commit is contained in:
parent
26c325151a
commit
c953120326
|
@ -610,7 +610,8 @@ static int gprs_ns_rx_reset(struct gprs_nsvc *nsvc, struct msgb *msg)
|
|||
nsvc->nsvci = ntohs(*nsvci);
|
||||
|
||||
/* start the test procedure */
|
||||
nsvc_start_timer(nsvc, NSVC_TIMER_TNS_ALIVE);
|
||||
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 */
|
||||
|
@ -762,7 +763,7 @@ int gprs_ns_rcvmsg(struct gprs_ns_inst *nsi, struct msgb *msg,
|
|||
}
|
||||
/* Initiate TEST proc.: Send ALIVE and start timer */
|
||||
rc = gprs_ns_tx_simple(nsvc, NS_PDUT_ALIVE);
|
||||
nsvc_start_timer(nsvc, NSVC_TIMER_TNS_ALIVE);
|
||||
nsvc_start_timer(nsvc, NSVC_TIMER_TNS_TEST);
|
||||
break;
|
||||
case NS_PDUT_UNBLOCK:
|
||||
/* Section 7.2: unblocking procedure */
|
||||
|
|
Loading…
Reference in New Issue