aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/bsc/common_cs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/osmocom/bsc/common_cs.h')
-rw-r--r--include/osmocom/bsc/common_cs.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/include/osmocom/bsc/common_cs.h b/include/osmocom/bsc/common_cs.h
new file mode 100644
index 000000000..09a4b0224
--- /dev/null
+++ b/include/osmocom/bsc/common_cs.h
@@ -0,0 +1,34 @@
+#pragma once
+
+#include <stdint.h>
+#include <osmocom/gsm/protocol/gsm_04_08.h>
+
+struct msgb;
+struct gsm_network;
+
+typedef int (*mncc_recv_cb_t)(struct gsm_network *, struct msgb *);
+
+struct vty;
+
+#define MAX_A5_KEY_LEN (128/8)
+
+struct gsm_encr {
+ uint8_t alg_id;
+ uint8_t key_len;
+ uint8_t key[MAX_A5_KEY_LEN];
+};
+
+struct gsm_network *gsm_network_init(void *ctx,
+ uint16_t country_code,
+ uint16_t network_code,
+ mncc_recv_cb_t mncc_recv);
+
+int common_cs_vty_init(struct gsm_network *network,
+ int (* config_write_net )(struct vty *));
+struct gsm_network *gsmnet_from_vty(struct vty *v);
+
+struct msgb *gsm48_create_mm_serv_rej(enum gsm48_reject_value value);
+int gsm48_extract_mi(uint8_t *classmark2_lv, int length, char *mi_string, uint8_t *mi_type);
+int gsm48_paging_extract_mi(struct gsm48_pag_resp *resp, int length,
+ char *mi_string, uint8_t *mi_type);
+struct msgb *gsm48_create_loc_upd_rej(uint8_t cause);