aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/bsc/bsc_subscr_conn_fsm.h9
-rw-r--r--include/osmocom/bsc/gsm_data.h3
2 files changed, 11 insertions, 1 deletions
diff --git a/include/osmocom/bsc/bsc_subscr_conn_fsm.h b/include/osmocom/bsc/bsc_subscr_conn_fsm.h
index 5475272b0..1a827d95c 100644
--- a/include/osmocom/bsc/bsc_subscr_conn_fsm.h
+++ b/include/osmocom/bsc/bsc_subscr_conn_fsm.h
@@ -1,4 +1,6 @@
#pragma once
+#include <osmocom/gsm/protocol/gsm_08_08.h>
+#include <osmocom/gsm/protocol/gsm_04_08.h>
#include <osmocom/core/fsm.h>
enum gscon_fsm_event {
@@ -40,6 +42,11 @@ enum gscon_fsm_event {
GSCON_EV_FORGET_MGW_ENDPOINT,
};
+struct gscon_clear_cmd_data {
+ enum gsm0808_cause cause_0808;
+ bool is_csfb;
+};
+
struct gsm_subscriber_connection;
struct gsm_network;
struct msgb;
@@ -71,7 +78,7 @@ 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_rr_release);
+void gscon_release_lchans(struct gsm_subscriber_connection *conn, bool do_rr_release, enum gsm48_rr_cause cause_rr);
void gscon_lchan_releasing(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan);
void gscon_forget_lchan(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan);
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 5336ebef2..43d7040fc 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -571,6 +571,7 @@ struct gsm_lchan {
* flag, so that the lchan will gracefully release at the next sensible junction. */
bool requested;
bool do_rr_release;
+ enum gsm48_rr_cause rr_cause;
/* There is an RSL error cause of value 0, so we need a separate flag. */
bool in_error;
@@ -1896,4 +1897,6 @@ int bts_count_free_ts(struct gsm_bts *bts, enum gsm_phys_chan_config pchan);
bool trx_has_valid_pchan_config(const struct gsm_bts_trx *trx);
+enum gsm48_rr_cause bsc_gsm48_rr_cause_from_gsm0808_cause(enum gsm0808_cause c);
+
#endif /* _GSM_DATA_H */