Neels Hofmeyr | 7b65688 | 2017-07-09 22:09:18 +0200 | [diff] [blame] | 1 | #pragma once |
| 2 | |
| 3 | void gsm_net_update_ctype(struct gsm_network *network); |
| 4 | enum gsm_chan_t get_ctype_by_chreq(struct gsm_network *network, uint8_t ra); |
| 5 | int get_reason_by_chreq(uint8_t ra, int neci); |
| 6 | int gsm48_send_rr_release(struct gsm_lchan *lchan); |
| 7 | int send_siemens_mrpci(struct gsm_lchan *lchan, |
| 8 | uint8_t *classmark2_lv); |
| 9 | int gsm48_handle_paging_resp(struct gsm_subscriber_connection *conn, |
| 10 | struct msgb *msg, struct bsc_subscr *bsub); |
| 11 | int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv); |
| 12 | void gsm48_lchan2chan_desc(struct gsm48_chan_desc *cd, |
| 13 | const struct gsm_lchan *lchan); |
| 14 | int gsm48_multirate_config(uint8_t *lv, const struct amr_multirate_conf *mr, const struct amr_mode *modes); |
Neels Hofmeyr | 31f525e | 2018-05-14 18:14:15 +0200 | [diff] [blame^] | 15 | struct msgb *gsm48_make_ho_cmd(struct gsm_lchan *new_lchan, uint8_t power_command, uint8_t ho_ref); |
Neels Hofmeyr | 7b65688 | 2017-07-09 22:09:18 +0200 | [diff] [blame] | 16 | int gsm48_send_ho_cmd(struct gsm_lchan *old_lchan, struct gsm_lchan *new_lchan, |
| 17 | uint8_t power_command, uint8_t ho_ref); |
| 18 | int gsm48_send_rr_ass_cmd(struct gsm_lchan *dest_lchan, struct gsm_lchan *lchan, uint8_t power_command); |
| 19 | int gsm48_lchan_modify(struct gsm_lchan *lchan, uint8_t mode); |
| 20 | int gsm48_rx_rr_modif_ack(struct msgb *msg); |
| 21 | int gsm48_parse_meas_rep(struct gsm_meas_rep *rep, struct msgb *msg); |
| 22 | int gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn); |
| 23 | int gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn, |
| 24 | enum gsm48_reject_value value); |
| 25 | |
Neels Hofmeyr | b540077 | 2018-02-13 23:48:24 +0100 | [diff] [blame] | 26 | struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value); |
| 27 | int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type); |
| 28 | int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, |
| 29 | char *mi_string, uint8_t *mi_type); |
| 30 | struct msgb *gsm48_create_loc_upd_rej(uint8_t cause); |
| 31 | |
Harald Welte | f94cbf6 | 2018-03-17 21:40:32 +0100 | [diff] [blame] | 32 | struct msgb *gsm48_create_rr_status(uint8_t cause); |
| 33 | int gsm48_tx_rr_status(struct gsm_subscriber_connection *conn, uint8_t cause); |
| 34 | |
Neels Hofmeyr | 7b65688 | 2017-07-09 22:09:18 +0200 | [diff] [blame] | 35 | #define GSM48_ALLOC_SIZE 2048 |
| 36 | #define GSM48_ALLOC_HEADROOM 256 |
| 37 | |
| 38 | static inline struct msgb *gsm48_msgb_alloc_name(const char *name) |
| 39 | { |
| 40 | return msgb_alloc_headroom(GSM48_ALLOC_SIZE, GSM48_ALLOC_HEADROOM, |
| 41 | name); |
| 42 | } |
Neels Hofmeyr | d0d204a | 2018-06-08 18:46:04 +0200 | [diff] [blame] | 43 | |
| 44 | uint64_t str_to_imsi(const char *imsi_str); |
Neels Hofmeyr | 68455f3 | 2018-07-24 16:12:45 +0200 | [diff] [blame] | 45 | |
Neels Hofmeyr | 31f525e | 2018-05-14 18:14:15 +0200 | [diff] [blame^] | 46 | int gsm48_sendmsg(struct msgb *msg); |
Neels Hofmeyr | 68455f3 | 2018-07-24 16:12:45 +0200 | [diff] [blame] | 47 | int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id); |