send a signal for every software activation or failure event report

diff --git a/include/openbsc/signal.h b/include/openbsc/signal.h
index 9fb8cf3..c2cf46a 100644
--- a/include/openbsc/signal.h
+++ b/include/openbsc/signal.h
@@ -36,6 +36,7 @@
 	SS_PAGING,
 	SS_SMS,
 	SS_ABISIP,
+	SS_NM,
 };
 
 /* SS_PAGING signals */
@@ -48,6 +49,12 @@
 	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 fcc192a..9db2936 100644
--- a/src/abis_nm.c
+++ b/src/abis_nm.c
@@ -42,6 +42,7 @@
 #include <openbsc/tlv.h>
 #include <openbsc/abis_nm.h>
 #include <openbsc/misdn.h>
+#include <openbsc/signal.h>
 
 #define OM_ALLOC_SIZE		1024
 #define OM_HEADROOM_SIZE	128
@@ -623,9 +624,11 @@
 		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);