mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-11-02 04:53:24 +00:00
NS / GB Proxy: Add Signal in case Tns-Alive expires too often
The Gb Proxy can then restart the RESET procedure.
This commit is contained in:
@@ -149,6 +149,7 @@ enum signal_ns {
|
||||
S_NS_RESET,
|
||||
S_NS_BLOCK,
|
||||
S_NS_UNBLOCK,
|
||||
S_NS_ALIVE_EXP, /* Tns-alive expired more than N times */
|
||||
};
|
||||
|
||||
struct ns_signal_data {
|
||||
|
||||
@@ -488,6 +488,13 @@ int gbprox_signal(unsigned int subsys, unsigned int signal,
|
||||
nsvc->remote_end_is_sgsn = 1;
|
||||
}
|
||||
|
||||
if (signal == S_NS_ALIVE_EXP && nsvc->remote_end_is_sgsn) {
|
||||
LOGP(DGPRS, LOGL_NOTICE, "Tns alive expired too often, "
|
||||
"re-starting RESET procedure\n");
|
||||
nsip_connect(nsvc->nsi, &nsvc->ip.bts_addr, nsvc->nsei,
|
||||
nsvc->nsvci);
|
||||
}
|
||||
|
||||
/* We currently only care about signals from the SGSN */
|
||||
if (!nsvc->remote_end_is_sgsn)
|
||||
return 0;
|
||||
|
||||
@@ -362,6 +362,7 @@ static void gprs_ns_timer_cb(void *data)
|
||||
"NSEI=%u Tns-alive expired more then "
|
||||
"%u times, blocking NS-VC\n", nsvc->nsei,
|
||||
NS_ALIVE_RETRIES);
|
||||
ns_dispatch_signal(nsvc, S_NS_ALIVE_EXP, 0);
|
||||
ns_dispatch_signal(nsvc, S_NS_BLOCK, NS_CAUSE_NSVC_BLOCKED);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user