BS11: add nm_state for EnveBTES, PA and BBSIG physical objects

diff --git a/src/abis_nm.c b/src/abis_nm.c
index 57d4159..cd1f444 100644
--- a/src/abis_nm.c
+++ b/src/abis_nm.c
@@ -472,6 +472,8 @@
 		return "GPRS NSVC0";
 	case NM_OC_GPRS_NSVC1:
 		return "GPRS NSVC1";
+	case NM_OC_BS11:
+		return "SIEMENSHW";
 	}
 
 	return "UNKNOWN";
@@ -566,12 +568,29 @@
 		case BS11_OBJ_CCLK:
 			nm_state = &bts->bs11.cclk.nm_state;
 			break;
+		case BS11_OBJ_BBSIG:
+			if (obj_inst->ts_nr > bts->num_trx)
+				return NULL;
+			trx = &bts->trx[obj_inst->ts_nr];
+			nm_state = &trx->bs11.bbsig.nm_state;
+			break;
+		case BS11_OBJ_PA:
+			if (obj_inst->ts_nr > bts->num_trx)
+				return NULL;
+			trx = &bts->trx[obj_inst->ts_nr];
+			nm_state = &trx->bs11.pa.nm_state;
+			break;
 		default:
 			return NULL;
 		}
 	case NM_OC_BS11_RACK:
 		nm_state = &bts->bs11.rack.nm_state;
 		break;
+	case NM_OC_BS11_ENVABTSE:
+		if (obj_inst->trx_nr > ARRAY_SIZE(bts->bs11.envabtse))
+			return NULL;
+		nm_state = &bts->bs11.envabtse[obj_inst->trx_nr].nm_state;
+		break;
 	}
 	return nm_state;
 }
@@ -650,6 +669,8 @@
 
 	DEBUGPC(DNM, "STATE CHG: ");
 
+	memset(&new_state, 0, sizeof(new_state));
+
 	nm_state = objclass2nmstate(bts, foh->obj_class, &foh->obj_inst);
 	if (!nm_state) {
 		DEBUGPC(DNM, "\n");