aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/bsc/bsc_subscr_conn_fsm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/osmocom/bsc/bsc_subscr_conn_fsm.h')
-rw-r--r--include/osmocom/bsc/bsc_subscr_conn_fsm.h65
1 files changed, 33 insertions, 32 deletions
diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h
index e8226f4..2317c83 100644
--- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h
+++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h
@@ -8,28 +8,20 @@ enum gscon_fsm_event {
GSCON_EV_A_CONN_REQ,
/* MSC confirms the SCCP connection */
GSCON_EV_A_CONN_CFM,
- /* MSC requests assignment */
- GSCON_EV_A_ASSIGNMENT_CMD,
/* MSC has sent BSSMAP CLEAR CMD */
GSCON_EV_A_CLEAR_CMD,
/* MSC SCCP disconnect indication */
GSCON_EV_A_DISC_IND,
- /* MSC sends Handover Request (in CR) */
- GSCON_EV_A_HO_REQ,
- /* RR ASSIGNMENT COMPLETE received */
- GSCON_EV_RR_ASS_COMPL,
- /* RR ASSIGNMENT FAIL received */
- GSCON_EV_RR_ASS_FAIL,
+ GSCON_EV_ASSIGNMENT_START,
+ GSCON_EV_ASSIGNMENT_END,
+
+ GSCON_EV_HANDOVER_START,
+ GSCON_EV_HANDOVER_END,
- /* RSL RLL Release Indication */
- GSCON_EV_RLL_REL_IND,
/* RSL CONNection FAILure Indication */
GSCON_EV_RSL_CONN_FAIL,
- /* RSL/lchan tells us clearing is complete */
- GSCON_EV_RSL_CLEAR_COMPL,
-
/* Mobile-originated DTAP (from MS) */
GSCON_EV_MO_DTAP,
/* Mobile-terminated DTAP (from MSC) */
@@ -38,34 +30,43 @@ enum gscon_fsm_event {
/* Transmit custom SCCP message */
GSCON_EV_TX_SCCP,
- /* MGW is indicating failure (BTS) */
- GSCON_EV_MGW_FAIL_BTS,
- /* MGW is indicating failure (MSC) */
- GSCON_EV_MGW_FAIL_MSC,
- /* CRCX response received (BTS) */
- GSCON_EV_MGW_CRCX_RESP_BTS,
- /* MDCX response received (BTS) */
- GSCON_EV_MGW_MDCX_RESP_BTS,
- /* CRCX response received (MSC) */
- GSCON_EV_MGW_CRCX_RESP_MSC,
/* MDCX response received (MSC) - triggered by LCLS */
GSCON_EV_MGW_MDCX_RESP_MSC,
- /* Internal handover request (intra-BSC handover) */
- GSCON_EV_HO_START,
- /* Handover timed out (T3103 in handover_logic.c) */
- GSCON_EV_HO_TIMEOUT,
- /* Handover failed (handover_logic.c) */
- GSCON_EV_HO_FAIL,
- /* Handover completed successfully (handover_logic.c) */
- GSCON_EV_HO_COMPL,
-
/* LCLS child FSM has terminated due to hard failure */
GSCON_EV_LCLS_FAIL,
+
+ GSCON_EV_FORGET_LCHAN,
+ GSCON_EV_FORGET_MGW_ENDPOINT,
};
struct gsm_subscriber_connection;
struct gsm_network;
+struct msgb;
+struct mgcp_conn_peer;
+struct mgwep_ci;
+struct assignment_request;
+struct gsm_lchan;
/* Allocate a subscriber connection and its associated FSM */
struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net);
+void gscon_update_id(struct gsm_subscriber_connection *conn);
+
+int gscon_sigtran_send(struct gsm_subscriber_connection *conn, struct msgb *msg);
+
+struct mgw_endpoint *gscon_ensure_mgw_endpoint(struct gsm_subscriber_connection *conn);
+bool gscon_connect_mgw_to_msc(struct gsm_subscriber_connection *conn,
+ const char *addr, uint16_t port,
+ struct osmo_fsm_inst *notify,
+ uint32_t event_success, uint32_t event_failure,
+ void *notify_data,
+ struct mgwep_ci **created_ci);
+
+void gscon_start_assignment(struct gsm_subscriber_connection *conn,
+ struct assignment_request *req);
+
+void gscon_change_primary_lchan(struct gsm_subscriber_connection *conn, struct gsm_lchan **new_lchan);
+void gscon_release_lchans(struct gsm_subscriber_connection *conn, bool do_sacch_deact);
+
+void gscon_lchan_releasing(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan);
+void gscon_forgetx_lchan(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan);