blob: a90268bde2b4ef50b11bb5ac882643ff65a7e712 [file] [log] [blame]
Holger Hans Peter Freytherec32b582010-03-23 07:40:46 +01001/* GSM 08.08 like API for OpenBSC */
2
Holger Hans Peter Freyther05a379b2010-06-14 15:50:35 +08003#ifndef OPENBSC_BSC_API_H
4#define OPENBSC_BSC_API_H
5
Holger Hans Peter Freytherec32b582010-03-23 07:40:46 +01006#include "gsm_data.h"
7
Holger Hans Peter Freyther97643312010-06-17 16:41:25 +08008#define BSC_API_CONN_POL_ACCEPT 0
9#define BSC_API_CONN_POL_REJECT 1
10
Neels Hofmeyrc19581f2018-05-27 03:05:18 +020011void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci);
12void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn, struct msgb *msg, uint8_t chosen_encr);
13int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, uint16_t chosen_channel);
14void bsc_dtap(struct gsm_subscriber_connection *conn, uint8_t link_id, struct msgb *msg);
15void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause);
16void bsc_assign_fail(struct gsm_subscriber_connection *conn, uint8_t cause, uint8_t *rr_cause);
17int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause);
18void bsc_cm_update(struct gsm_subscriber_connection *conn,
19 const uint8_t *cm2, uint8_t cm2_len,
20 const uint8_t *cm3, uint8_t cm3_len);
21void bsc_mr_config(struct gsm_subscriber_connection *conn, struct gsm_lchan *lchan, int full_rate);
Holger Hans Peter Freyther25aa7492011-08-06 07:00:52 +020022
Holger Hans Peter Freytherafa0ad12012-04-18 18:58:36 +020023int gsm0808_submit_dtap(struct gsm_subscriber_connection *conn, struct msgb *msg, int link_id, int allow_sacch);
Holger Hans Peter Freyther2603c1f2010-11-10 10:01:20 +010024int gsm0808_assign_req(struct gsm_subscriber_connection *conn, int chan_mode, int full_rate);
Holger Hans Peter Freytherdbc62db2010-07-23 16:55:24 +080025int gsm0808_cipher_mode(struct gsm_subscriber_connection *conn, int cipher,
Holger Hans Peter Freyther2f169d62010-11-10 09:42:50 +010026 const uint8_t *key, int len, int include_imeisv);
Holger Hans Peter Freyther77008462010-06-16 14:10:45 +080027int gsm0808_page(struct gsm_bts *bts, unsigned int page_group,
28 unsigned int mi_len, uint8_t *mi, int chan_type);
Holger Hans Peter Freyther40494552010-06-28 17:09:29 +080029int gsm0808_clear(struct gsm_subscriber_connection *conn);
Holger Hans Peter Freyther05a379b2010-06-14 15:50:35 +080030
Neels Hofmeyr7b656882017-07-09 22:09:18 +020031int gsm0408_rcvmsg(struct msgb *msg, uint8_t link_id);
Holger Hans Peter Freyther05a379b2010-06-14 15:50:35 +080032#endif