NS_Emulation: Delay Tx of first NS-RESET until Provider tells us it's up
Change-Id: I300cfeb120540940990a834596b0a83a539df080
This commit is contained in:
parent
4a6a663654
commit
3dd8355d7d
|
@ -108,10 +108,6 @@ module NS_Emulation {
|
||||||
}
|
}
|
||||||
|
|
||||||
f_change_state(NSE_S_DEAD_BLOCKED);
|
f_change_state(NSE_S_DEAD_BLOCKED);
|
||||||
/* Send the first NS-ALIVE to test the connection */
|
|
||||||
if (not config.role_sgsn) {
|
|
||||||
f_sendReset();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type component NS_Provider_CT {
|
type component NS_Provider_CT {
|
||||||
|
@ -151,6 +147,7 @@ module NS_Emulation {
|
||||||
timer Tns_alive := 3.0;
|
timer Tns_alive := 3.0;
|
||||||
timer Tns_test := 10.0;
|
timer Tns_test := 10.0;
|
||||||
timer Tns_block := 10.0;
|
timer Tns_block := 10.0;
|
||||||
|
timer Tns_reset := 10.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
type record NSConfigurationIP {
|
type record NSConfigurationIP {
|
||||||
|
@ -185,6 +182,7 @@ module NS_Emulation {
|
||||||
|
|
||||||
private function f_sendReset() runs on NS_CT {
|
private function f_sendReset() runs on NS_CT {
|
||||||
NSCP.send(ts_NS_RESET(NS_CAUSE_OM_INTERVENTION, config.nsvci, config.nsei));
|
NSCP.send(ts_NS_RESET(NS_CAUSE_OM_INTERVENTION, config.nsvci, config.nsei));
|
||||||
|
Tns_reset.start;
|
||||||
g_state := NSE_S_WAIT_RESET;
|
g_state := NSE_S_WAIT_RESET;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -219,12 +217,17 @@ module NS_Emulation {
|
||||||
f_sendAlive();
|
f_sendAlive();
|
||||||
}
|
}
|
||||||
|
|
||||||
[] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) {
|
[config.role_sgsn] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) {
|
||||||
log("Provider Link came up: sending NS-ALIVE");
|
log("Provider Link came up: sending NS-ALIVE");
|
||||||
f_sendAlive();
|
f_sendAlive();
|
||||||
Tns_test.start;
|
Tns_test.start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[not config.role_sgsn] NSCP.receive(NS_Provider_Evt:{link_status:=NS_PROV_LINK_STATUS_UP}) {
|
||||||
|
log("Provider Link came up: sending NS-RESET");
|
||||||
|
f_sendReset();
|
||||||
|
}
|
||||||
|
|
||||||
/* Stop t_alive when receiving ALIVE-ACK */
|
/* Stop t_alive when receiving ALIVE-ACK */
|
||||||
[Tns_alive.running] NSCP.receive(t_NS_ALIVE_ACK) {
|
[Tns_alive.running] NSCP.receive(t_NS_ALIVE_ACK) {
|
||||||
log("NS-ALIVE-ACK received: stopping Tns-alive; starting Tns-test");
|
log("NS-ALIVE-ACK received: stopping Tns-alive; starting Tns-test");
|
||||||
|
@ -363,7 +366,14 @@ module NS_Emulation {
|
||||||
|
|
||||||
private altstep as_wait_reset() runs on NS_CT {
|
private altstep as_wait_reset() runs on NS_CT {
|
||||||
var PDU_NS rf;
|
var PDU_NS rf;
|
||||||
|
[] Tns_reset.timeout {
|
||||||
|
/* If the sending entity of an NS-RESET PDU receives no NS-RESET-ACK PDU before timer
|
||||||
|
* Tns-reset expires the corresponding NS-VCs shall remain blocked and dead and the
|
||||||
|
* entire reset procedure shall be repeated */
|
||||||
|
f_sendReset();
|
||||||
|
}
|
||||||
[] NSCP.receive(tr_NS_RESET_ACK(config.nsvci, config.nsei)) -> value rf {
|
[] NSCP.receive(tr_NS_RESET_ACK(config.nsvci, config.nsei)) -> value rf {
|
||||||
|
Tns_reset.stop;
|
||||||
f_change_state(NSE_S_ALIVE_BLOCKED);
|
f_change_state(NSE_S_ALIVE_BLOCKED);
|
||||||
f_sendAlive();
|
f_sendAlive();
|
||||||
f_sendUnblock();
|
f_sendUnblock();
|
||||||
|
|
Loading…
Reference in New Issue