diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-05-14 11:53:08 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-05-14 11:53:08 +0000 |
commit | 1ccbf44d79544689e47b704f1f714a7bff63c1cf (patch) | |
tree | adf4dec2ec07fa7e580b1b30d395d42413d27ec9 /openbsc/src/gprs/gb_proxy.c | |
parent | 768f2871a5b1c6639b480816557618ee22ee2e3b (diff) |
[GPRS] gb_proxy: Initiate RESET procedure on persistent NS-VC at startup
Some BSS that connect to the proxy do not continue to perform the
RESET procedure after a timeout. In order to resurrect them, we
simply start a RESET procedure.
Diffstat (limited to 'openbsc/src/gprs/gb_proxy.c')
-rw-r--r-- | openbsc/src/gprs/gb_proxy.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/openbsc/src/gprs/gb_proxy.c b/openbsc/src/gprs/gb_proxy.c index 5fbf9bfcc..1fe9e9662 100644 --- a/openbsc/src/gprs/gb_proxy.c +++ b/openbsc/src/gprs/gb_proxy.c @@ -507,6 +507,18 @@ int gbprox_rcvmsg(struct msgb *msg, struct gprs_nsvc *nsvc, uint16_t ns_bvci) return rc; } +int gbprox_reset_persistent_nsvcs(struct gprs_ns_inst *nsi) +{ + struct gprs_nsvc *nsvc; + + llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { + if (!nsvc->persistent) + continue; + gprs_nsvc_reset(nsvc, NS_CAUSE_OM_INTERVENTION); + } + return 0; +} + /* Signal handler for signals from NS layer */ int gbprox_signal(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data) |