Neels Hofmeyr | c69ee85 | 2016-05-10 12:50:31 +0200 | [diff] [blame] | 1 | #pragma once |
Neels Hofmeyr | 402006d | 2016-05-11 14:28:25 +0200 | [diff] [blame] | 2 | |
Neels Hofmeyr | e78ae21 | 2016-05-14 00:46:29 +0200 | [diff] [blame] | 3 | #include <stdint.h> |
Neels Hofmeyr | 7b65688 | 2017-07-09 22:09:18 +0200 | [diff] [blame^] | 4 | #include <osmocom/gsm/protocol/gsm_04_08.h> |
Neels Hofmeyr | e78ae21 | 2016-05-14 00:46:29 +0200 | [diff] [blame] | 5 | |
Neels Hofmeyr | 402006d | 2016-05-11 14:28:25 +0200 | [diff] [blame] | 6 | struct msgb; |
| 7 | struct gsm_network; |
| 8 | |
| 9 | typedef int (*mncc_recv_cb_t)(struct gsm_network *, struct msgb *); |
Neels Hofmeyr | e78ae21 | 2016-05-14 00:46:29 +0200 | [diff] [blame] | 10 | |
Neels Hofmeyr | b90eabf | 2016-05-11 18:48:39 +0200 | [diff] [blame] | 11 | struct vty; |
| 12 | |
Neels Hofmeyr | ac1f143 | 2016-05-10 13:30:17 +0200 | [diff] [blame] | 13 | #define MAX_A5_KEY_LEN (128/8) |
| 14 | |
| 15 | struct gsm_encr { |
| 16 | uint8_t alg_id; |
| 17 | uint8_t key_len; |
| 18 | uint8_t key[MAX_A5_KEY_LEN]; |
| 19 | }; |
| 20 | |
Neels Hofmeyr | e78ae21 | 2016-05-14 00:46:29 +0200 | [diff] [blame] | 21 | struct gsm_network *gsm_network_init(void *ctx, |
| 22 | uint16_t country_code, |
| 23 | uint16_t network_code, |
| 24 | mncc_recv_cb_t mncc_recv); |
Neels Hofmeyr | b90eabf | 2016-05-11 18:48:39 +0200 | [diff] [blame] | 25 | |
Neels Hofmeyr | 06d39fd | 2016-05-12 01:16:58 +0200 | [diff] [blame] | 26 | int common_cs_vty_init(struct gsm_network *network, |
| 27 | int (* config_write_net )(struct vty *)); |
Neels Hofmeyr | b90eabf | 2016-05-11 18:48:39 +0200 | [diff] [blame] | 28 | struct gsm_network *gsmnet_from_vty(struct vty *v); |
Neels Hofmeyr | 7b65688 | 2017-07-09 22:09:18 +0200 | [diff] [blame^] | 29 | |
| 30 | struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value); |
| 31 | int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type); |
| 32 | int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length, |
| 33 | char *mi_string, uint8_t *mi_type); |
| 34 | struct msgb *gsm48_create_loc_upd_rej(uint8_t cause); |