aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-02-09 00:09:16 +0100
committerHarald Welte <laforge@gnumonks.org>2018-02-09 02:20:51 +0100
commit54a10efea079d37083f6db07969e8e8be3b68bfe (patch)
tree46083a2d0510fe7d2c414d3514dc5da5b31c93f8 /include
parentb6777fb055d94991971d4df0438ad18911e0b000 (diff)
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
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/msc/a_iface.h2
-rw-r--r--include/osmocom/msc/a_iface_bssap.h6
2 files changed, 5 insertions, 3 deletions
diff --git a/include/osmocom/msc/a_iface.h b/include/osmocom/msc/a_iface.h
index 74172984d..466e70b94 100644
--- a/include/osmocom/msc/a_iface.h
+++ b/include/osmocom/msc/a_iface.h
@@ -73,6 +73,8 @@ int a_iface_tx_clear_cmd(struct gsm_subscriber_connection *conn);
* (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 79b839074..d4b67e3ec 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 */