Don't answer to BSC-originated RESET with another RESET

If the BSC is contacting us for the first time and sending a BSSMAP
RESET, then we should simply ACK that and transition into the
"connected" state, where connection-oriented and connectionless
procedures are permitted.

This patch is a bit large for such a seemingly simple behavioural
change, but the existing data model didn't permit a more
straight-forward implementation.

Change-Id: Ie67e7ed20a6c42afe99bafef96d85a4e083dd057
Closes: OS#2914
diff --git a/include/osmocom/msc/a_iface.h b/include/osmocom/msc/a_iface.h
index 7417298..466e70b 100644
--- a/include/osmocom/msc/a_iface.h
+++ b/include/osmocom/msc/a_iface.h
@@ -73,6 +73,8 @@
  * (Helper function for a_iface_bssap.c) */
 void a_clear_all(struct osmo_sccp_user *scu, const struct osmo_sccp_addr *bsc_addr);
 
+void a_start_reset(struct bsc_context *bsc_ctx, bool already_connected);
+
 /* Delete info of a closed connection from the active connection list
  * (Helper function for a_iface_bssap.c) */
 void a_delete_bsc_con(uint32_t conn_id);
diff --git a/include/osmocom/msc/a_iface_bssap.h b/include/osmocom/msc/a_iface_bssap.h
index 79b8390..d4b67e3 100644
--- a/include/osmocom/msc/a_iface_bssap.h
+++ b/include/osmocom/msc/a_iface_bssap.h
@@ -20,17 +20,17 @@
 
 #pragma once
 
+#include <osmocom/msc/a_iface.h>
+
 /* Note: The structs and functions presented in this header file are intended
  * to be used only by a_iface.c. */
 
 /* A structure to hold tha most basic information about a sigtran connection
  * we use this struct internally here to pass connection data around */
 struct a_conn_info {
-	struct osmo_sccp_addr *msc_addr;
-	struct osmo_sccp_addr *bsc_addr;
+	struct bsc_context *bsc;
 	uint32_t conn_id;
 	struct gsm_network *network;
-	struct a_reset_ctx *reset;
 };
 
 /* Receive incoming connection less data messages via sccp */