osmo_rf: Keep the current policy inside the RF struct..

Keep a back pointer to the rf struct inside the connection,
resolve the network through the back pointer. Also assume
that the RF is on. In case we start with RF locked, the policy
is on but we will not see any MS talking to us.
diff --git a/openbsc/src/bsc/osmo_bsc_rf.c b/openbsc/src/bsc/osmo_bsc_rf.c
index e45474c..06c8466 100644
--- a/openbsc/src/bsc/osmo_bsc_rf.c
+++ b/openbsc/src/bsc/osmo_bsc_rf.c
@@ -63,7 +63,7 @@
 	struct gsm_bts *bts;
 	char send = RF_CMD_OFF;
 
-	llist_for_each_entry(bts, &conn->gsm_network->bts_list, list) {
+	llist_for_each_entry(bts, &conn->rf->gsm_network->bts_list, list) {
 		struct gsm_bts_trx *trx;
 		llist_for_each_entry(trx, &bts->trx_list, list) {
 			if (trx->nm_state.availability == NM_AVSTATE_OK &&
@@ -95,8 +95,9 @@
 static void send_signal(struct osmo_bsc_rf_conn *conn, int val)
 {
 	struct rf_signal_data sig;
-	sig.net = conn->gsm_network;
+	sig.net = conn->rf->gsm_network;
 
+	conn->rf->policy = val;
 	dispatch_signal(SS_RF, val, &sig);
 }
 
@@ -121,11 +122,11 @@
 		handle_query(conn);
 		break;
 	case RF_CMD_OFF:
-		lock_each_trx(conn->gsm_network, 1);
+		lock_each_trx(conn->rf->gsm_network, 1);
 		send_signal(conn, S_RF_OFF);
 		break;
 	case RF_CMD_ON:
-		lock_each_trx(conn->gsm_network, 0);
+		lock_each_trx(conn->rf->gsm_network, 0);
 		send_signal(conn, S_RF_ON);
 		break;
 	case RF_CMD_GRACE:
@@ -180,7 +181,7 @@
 	conn->queue.bfd.when = BSC_FD_READ | BSC_FD_WRITE;
 	conn->queue.read_cb = rf_read_cmd;
 	conn->queue.write_cb = rf_write_cmd;
-	conn->gsm_network = rf->gsm_network;
+	conn->rf = rf;
 
 	if (bsc_register_fd(&conn->queue.bfd) != 0) {
 		close(fd);
@@ -258,6 +259,7 @@
 	}
 
 	rf->gsm_network = net;
+	rf->policy = S_RF_ON;
 
 	return rf;
 }