aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2022-09-16 20:12:35 +0200
committerpespin <pespin@sysmocom.de>2022-09-19 14:07:31 +0000
commit79701ebd25bcfbafe719be906f943bd9bc2c63ae (patch)
tree78a845d5ac50b45b5065ed205185f8a5b9f7fcc8
parent13a58385a482a91491dcb97039ca9110aaf9d201 (diff)
ipaccess-config: Exit program with error if OML link is dropped
-rw-r--r--src/ipaccess/ipaccess-config.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/ipaccess/ipaccess-config.c b/src/ipaccess/ipaccess-config.c
index d1fbed704..a22d31138 100644
--- a/src/ipaccess/ipaccess-config.c
+++ b/src/ipaccess/ipaccess-config.c
@@ -403,6 +403,32 @@ static int nm_sig_cb(unsigned int subsys, unsigned int signal,
return 0;
}
+/* Callback function to be called every time we receive a signal from INPUT */
+static int inp_sig_cb(unsigned int subsys, unsigned int signal,
+ void *handler_data, void *signal_data)
+{
+ struct input_signal_data *isd = signal_data;
+
+ if (subsys != SS_L_INPUT)
+ return -EINVAL;
+
+ fprintf(stderr, "%s(): Input signal '%s' received\n", __func__,
+ get_value_string(e1inp_signal_names, signal));
+
+ switch (signal) {
+ case S_L_INP_TEI_UP:
+ break;
+ case S_L_INP_TEI_DN:
+ fprintf(stderr, "Lost E1 %s link\n", e1inp_signtype_name(isd->link_type));
+ exit(1);
+ break;
+ default:
+ break;
+ }
+
+ return 0;
+}
+
/* callback function passed to the ABIS OML code */
static int percent;
static int percent_old;
@@ -1168,6 +1194,7 @@ int main(int argc, char **argv)
bts->oml_tei = stream_id;
osmo_signal_register_handler(SS_NM, nm_sig_cb, NULL);
+ osmo_signal_register_handler(SS_L_INPUT, inp_sig_cb, NULL);
osmo_signal_register_handler(SS_IPAC_NWL, nwl_sig_cb, NULL);
ipac_nwl_init();