| #pragma once |
| #include <osmocom/core/fsm.h> |
| |
| enum gscon_fsm_event { |
| /* local SCCP stack tells us incoming conn from MSC */ |
| GSCON_EV_A_CONN_IND, |
| /* RSL side requests CONNECT to MSC */ |
| 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, |
| /* RR MODE MODIFY ACK received */ |
| GSCON_EV_RR_MODE_MODIFY_ACK, |
| |
| /* 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) */ |
| GSCON_EV_MT_DTAP, |
| |
| /* 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, |
| |
| /* 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, |
| }; |
| |
| struct gsm_subscriber_connection; |
| struct gsm_network; |
| |
| /* Allocate a subscriber connection and its associated FSM */ |
| struct gsm_subscriber_connection *bsc_subscr_con_allocate(struct gsm_network *net); |