Introduce NM BTS FSM

Change-Id: I7756a8ce90b6cc8a502b5665889a7987d7f749cb
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 06348be..428fe87 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -395,6 +395,9 @@
 	struct gsm_bts *bts;
 	struct osmo_fsm_inst *fi;
 	bool opstart_sent;
+	bool adm_unlock_sent;
+	bool set_attr_sent;
+	bool set_attr_ack_received;
 };
 
 /* Ericsson OM2000 Managed Object */
diff --git a/include/osmocom/bsc/nm_common_fsm.h b/include/osmocom/bsc/nm_common_fsm.h
index a76c198..719d591 100644
--- a/include/osmocom/bsc/nm_common_fsm.h
+++ b/include/osmocom/bsc/nm_common_fsm.h
@@ -30,6 +30,7 @@
 enum nm_fsm_events {
 	NM_EV_SW_ACT_REP,
 	NM_EV_STATE_CHG_REP,
+	NM_EV_SET_ATTR_ACK,
 	NM_EV_OPSTART_ACK,
 	NM_EV_OPSTART_NACK,
 	NM_EV_OML_DOWN,
@@ -44,3 +45,12 @@
 	NM_BTS_SM_ST_OP_ENABLED,
 };
 extern struct osmo_fsm nm_bts_sm_fsm;
+
+/* BTS */
+enum nm_bts_op_fsm_states {
+	NM_BTS_ST_OP_DISABLED_NOTINSTALLED,
+	NM_BTS_ST_OP_DISABLED_DEPENDENCY,
+	NM_BTS_ST_OP_DISABLED_OFFLINE,
+	NM_BTS_ST_OP_ENABLED,
+};
+extern struct osmo_fsm nm_bts_fsm;
diff --git a/include/osmocom/bsc/signal.h b/include/osmocom/bsc/signal.h
index abda67e..4922ac8 100644
--- a/include/osmocom/bsc/signal.h
+++ b/include/osmocom/bsc/signal.h
@@ -75,6 +75,7 @@
 	S_NM_OPSTART_NACK,	/* Received OPSTART NACK, arg is struct msgb *oml_msg */
 	S_NM_GET_ATTR_REP,	/* Received Get Attributes Response, arg is struct msgb *oml_msg */
 	S_NM_SET_RADIO_ATTR_ACK, /* Received Set Radio Carrier Attributes Ack, arg is struct msgb *oml_msg */
+	S_NM_SET_BTS_ATTR_ACK,  /* Received Set BTS Attributes Ack, arg is struct msgb *oml_msg */
 };
 
 /* SS_LCHAN signals */