diff options
Diffstat (limited to 'include/osmocom/msc/gsm_04_08.h')
-rw-r--r-- | include/osmocom/msc/gsm_04_08.h | 37 |
1 files changed, 20 insertions, 17 deletions
diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h index 2d4a0cd77..47747cbcf 100644 --- a/include/osmocom/msc/gsm_04_08.h +++ b/include/osmocom/msc/gsm_04_08.h @@ -4,6 +4,7 @@ #include <osmocom/gsm/gsm48.h> #include <osmocom/gsm/gsm_utils.h> #include <osmocom/gsm/protocol/gsm_04_08.h> +#include <osmocom/msc/transaction.h> struct msgb; struct gsm_bts; @@ -12,6 +13,7 @@ struct gsm_trans; struct ran_conn; struct amr_multirate_conf; struct amr_mode; +struct msc_a; #define GSM48_ALLOC_SIZE 2048 #define GSM48_ALLOC_HEADROOM 256 @@ -22,33 +24,26 @@ static inline struct msgb *gsm48_msgb_alloc_name(const char *name) name); } -void cm_service_request_concludes(struct ran_conn *conn, - struct msgb *msg); +void cm_service_request_concludes(struct msc_a *msc_a, struct msgb *msg, enum osmo_cm_service_type type); /* config options controlling the behaviour of the lower leves */ -void gsm0408_clear_all_trans(struct gsm_network *net, int protocol); -int gsm0408_dispatch(struct ran_conn *conn, struct msgb *msg); +void gsm0408_clear_all_trans(struct gsm_network *net, enum trans_type type); int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id); /* don't use "enum gsm_chreq_reason_t" to avoid circular dependency */ void gsm_net_update_ctype(struct gsm_network *net); -int gsm48_tx_simple(struct ran_conn *conn, - uint8_t pdisc, uint8_t msg_type); -int gsm48_tx_mm_info(struct ran_conn *conn); -int gsm48_tx_mm_auth_req(struct ran_conn *conn, uint8_t *rand, - uint8_t *autn, int key_seq); -int gsm48_tx_mm_auth_rej(struct ran_conn *conn); -int gsm48_tx_mm_serv_ack(struct ran_conn *conn); -int gsm48_tx_mm_serv_rej(struct ran_conn *conn, - enum gsm48_reject_value value); +int gsm48_tx_simple(struct msc_a *msc_a, uint8_t pdisc, uint8_t msg_type); +int gsm48_tx_mm_info(struct msc_a *msc_a); +int gsm48_tx_mm_auth_req(struct msc_a *msc_a, uint8_t *rand, uint8_t *autn, int key_seq); +int gsm48_tx_mm_auth_rej(struct msc_a *msc_a); +int gsm48_tx_mm_serv_ack(struct msc_a *msc_a); +int gsm48_tx_mm_serv_rej(struct msc_a *msc_a, enum gsm48_reject_value value); int gsm48_send_rr_release(struct gsm_lchan *lchan); int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv); -int gsm48_send_rr_app_info(struct ran_conn *conn, uint8_t apdu_id, - uint8_t apdu_len, const uint8_t *apdu); +int gsm48_send_rr_app_info(struct msc_a *msc_a, uint8_t apdu_id, uint8_t apdu_len, const uint8_t *apdu); int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_class); -int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan, - uint8_t power_command, uint8_t ho_ref); +int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan, uint8_t power_command, uint8_t ho_ref); int mncc_tx_to_cc(struct gsm_network *net, int msg_type, void *arg); @@ -79,4 +74,12 @@ int gsm48_tch_rtp_create(struct gsm_trans *trans); int gsm48_conn_sendmsg(struct msgb *msg, struct ran_conn *conn, struct gsm_trans *trans); struct msgb *gsm48_create_mm_info(struct gsm_network *net); +int gsm0408_rcv_cc(struct msc_a *msc_a, struct msgb *msg); +int gsm0408_rcv_mm(struct msc_a *msc_a, struct msgb *msg); +int gsm0408_rcv_rr(struct msc_a *msc_a, struct msgb *msg); + +int msc_vlr_tx_cm_serv_acc(void *msc_conn_ref, enum osmo_cm_service_type cm_service_type); + +int compl_l3_msg_is_r99(const struct msgb *msg); + #endif |