diff --git a/include/openbsc/signal.h b/include/openbsc/signal.h index 9fb8cf3f1..c2cf46a26 100644 --- a/include/openbsc/signal.h +++ b/include/openbsc/signal.h @@ -36,6 +36,7 @@ enum signal_subsystems { SS_PAGING, SS_SMS, SS_ABISIP, + SS_NM, }; /* SS_PAGING signals */ @@ -48,6 +49,12 @@ enum signal_abisip { S_ABISIP_BIND_ACK, }; +/* SS_NM signals */ +enum signal_nm { + S_NM_SW_ACTIV_REP, /* GSM 12.21 software activated report */ + S_NM_FAIL_REP, /* GSM 12.21 failure event report */ +}; + typedef int signal_cbfn(unsigned int subsys, unsigned int signal, void *handler_data, void *signal_data); diff --git a/src/abis_nm.c b/src/abis_nm.c index fcc192adc..9db2936f8 100644 --- a/src/abis_nm.c +++ b/src/abis_nm.c @@ -42,6 +42,7 @@ #include #include #include +#include #define OM_ALLOC_SIZE 1024 #define OM_HEADROOM_SIZE 128 @@ -623,9 +624,11 @@ static int abis_nm_rcvmsg_report(struct msgb *mb) break; case NM_MT_SW_ACTIVATED_REP: DEBUGPC(DNM, "Software Activated Report\n"); + dispatch_signal(SS_NM, S_NM_SW_ACTIV_REP, mb); break; case NM_MT_FAILURE_EVENT_REP: DEBUGPC(DNM, "Failure Event Report\n"); + dispatch_signal(SS_NM, S_NM_FAIL_REP, mb); break; default: DEBUGPC(DNM, "reporting NM MT 0x%02x\n", mt);