From 55982ca9a73b29db09a711db70ff90f6f8f4ee0b Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sun, 3 Oct 2010 01:48:45 +0800 Subject: oml: In case we get a NACK, drop the OML connection and hope for the best Assume that a NACK is a onetime failure and that on the next attempt it will work better. If that is not the case we might even send a reboot to the BTS. --- openbsc/src/bsc_init.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/openbsc/src/bsc_init.c b/openbsc/src/bsc_init.c index 1c4c829e4..abfbb5af8 100644 --- a/openbsc/src/bsc_init.c +++ b/openbsc/src/bsc_init.c @@ -33,6 +33,7 @@ #include #include #include +#include /* global pointer to the gsm network data structure */ extern struct gsm_network *bsc_gsmnet; @@ -563,10 +564,19 @@ static int sw_activ_rep(struct msgb *mb) /* Callback function for NACK on the OML NM */ static int oml_msg_nack(u_int8_t mt) { + int i; + if (mt == NM_MT_SET_BTS_ATTR_NACK) { LOGP(DNM, LOGL_FATAL, "Failed to set BTS attributes. That is fatal. " "Was the bts type and frequency properly specified?\n"); exit(-1); + } else { + LOGP(DNM, LOGL_ERROR, "Got a NACK going to drop the OML links.\n"); + for (i = 0; i < bsc_gsmnet->num_bts; ++i) { + struct gsm_bts *bts = gsm_bts_num(bsc_gsmnet, i); + if (is_ipaccess_bts(bts)) + ipaccess_drop_oml(bts); + } } return 0; -- cgit v1.2.3