aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-02-05 16:47:57 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2014-04-06 08:57:03 +0200
commit98ae252ef94e8faf53fb63468c98fe089920caef (patch)
tree6cbea9a3cfb4f27131160a12427c576b68df0f95
parent35b0399e3627bcef2a443831d42963892aeb9c8d (diff)
Introduce bts_model_abis_close to indicate ABIS link failure.
sysmocom-bts model shuts down on link loss, but other models may not want this, so shutdown is moved tor bts_model_abis_close of osmo-bts-sysmo.
-rw-r--r--include/osmo-bts/bts_model.h2
-rw-r--r--src/common/abis.c3
-rw-r--r--src/common/bts.c2
-rw-r--r--src/osmo-bts-sysmo/main.c6
-rw-r--r--src/osmo-bts-trx/main.c3
-rw-r--r--tests/stubs.c3
6 files changed, 18 insertions, 1 deletions
diff --git a/include/osmo-bts/bts_model.h b/include/osmo-bts/bts_model.h
index c3ab070f..fab3081d 100644
--- a/include/osmo-bts/bts_model.h
+++ b/include/osmo-bts/bts_model.h
@@ -37,4 +37,6 @@ int bts_model_oml_estab(struct gsm_bts *bts);
int bts_model_l1sap_down(struct gsm_bts_trx *trx, struct osmo_phsap_prim *l1sap);
+void bts_model_abis_close(struct gsm_bts *bts);
+
#endif
diff --git a/src/common/abis.c b/src/common/abis.c
index fa1a565f..4fbdf259 100644
--- a/src/common/abis.c
+++ b/src/common/abis.c
@@ -45,6 +45,7 @@
#include <osmo-bts/bts.h>
#include <osmo-bts/rsl.h>
#include <osmo-bts/oml.h>
+#include <osmo-bts/bts_model.h>
static struct gsm_bts *g_bts;
@@ -112,7 +113,7 @@ static void sign_link_down(struct e1inp_line *line)
e1inp_sign_link_destroy(g_bts->oml_link);
g_bts->oml_link = NULL;
- bts_shutdown(g_bts, "Abis close");
+ bts_model_abis_close(g_bts);
}
diff --git a/src/common/bts.c b/src/common/bts.c
index 53324471..c886b1ee 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -230,6 +230,8 @@ int trx_link_estab(struct gsm_bts_trx *trx)
if (link)
rsl_tx_rf_res(trx);
+ else
+ bts_model_trx_deact_rf(trx);
return 0;
}
diff --git a/src/osmo-bts-sysmo/main.c b/src/osmo-bts-sysmo/main.c
index 9eb05ffd..b8c062f5 100644
--- a/src/osmo-bts-sysmo/main.c
+++ b/src/osmo-bts-sysmo/main.c
@@ -402,3 +402,9 @@ int main(int argc, char **argv)
osmo_select_main(0);
}
}
+
+void bts_model_abis_close(struct gsm_bts *bts)
+{
+ /* for now, we simply terminate the program and re-spawn */
+ bts_shutdown(bts, "Abis close");
+}
diff --git a/src/osmo-bts-trx/main.c b/src/osmo-bts-trx/main.c
index 55227372..594b4693 100644
--- a/src/osmo-bts-trx/main.c
+++ b/src/osmo-bts-trx/main.c
@@ -399,3 +399,6 @@ int main(int argc, char **argv)
return 0;
}
+void bts_model_abis_close(struct gsm_bts *bts)
+{
+}
diff --git a/tests/stubs.c b/tests/stubs.c
index a98f0d9d..943df9c6 100644
--- a/tests/stubs.c
+++ b/tests/stubs.c
@@ -53,3 +53,6 @@ uint32_t trx_get_hlayer1(struct gsm_bts_trx *trx)
int bts_model_oml_estab(struct gsm_bts *bts)
{ return 0; }
+
+void bts_model_abis_close(struct gsm_bts *bts)
+{ }