summaryrefslogtreecommitdiffstats
path: root/src/shared/libosmocore/include/osmocom/gsm
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/libosmocore/include/osmocom/gsm')
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/a5.h63
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/abis_nm.h40
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/comp128.h22
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gan.h9
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0411_smc.h63
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0411_smr.h45
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0411_utils.h36
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0480.h26
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0502.h38
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm0808.h50
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm48.h40
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm48_ie.h117
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h151
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/lapd_core.h171
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/lapdm.h162
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/mncc.h85
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/prim.h18
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_03_41.h51
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_08.h1339
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_11.h190
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_12.h31
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_80.h126
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_08_08.h303
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_08_58.h577
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_12_21.h748
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_44_318.h200
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h94
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/rsl.h55
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/rxlev_stat.h22
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/sysinfo.h43
-rw-r--r--src/shared/libosmocore/include/osmocom/gsm/tlv.h415
31 files changed, 0 insertions, 5330 deletions
diff --git a/src/shared/libosmocore/include/osmocom/gsm/a5.h b/src/shared/libosmocore/include/osmocom/gsm/a5.h
deleted file mode 100644
index 649dbab1..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/a5.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * a5.h
- *
- * Copyright (C) 2011 Sylvain Munaut <tnt@246tNt.com>
- *
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef __OSMO_A5_H__
-#define __OSMO_A5_H__
-
-#include <stdint.h>
-
-#include <osmocom/core/bits.h>
-
-/*! \defgroup a5 GSM A5 ciphering algorithm
- * @{
- */
-
-/*! \file gsm/a5.h
- * \brief Osmocom GSM A5 ciphering algorithm header
- */
-
-/*! \brief Converts a frame number into the 22 bit number used in A5/x
- * \param[in] fn The true framenumber
- * \return 22 bit word
- */
-static inline uint32_t
-osmo_a5_fn_count(uint32_t fn)
-{
- int t1 = fn / (26 * 51);
- int t2 = fn % 26;
- int t3 = fn % 51;
- return (t1 << 11) | (t3 << 5) | t2;
-}
-
- /* Notes:
- * - key must be 8 bytes long (or NULL for A5/0)
- * - the dl and ul pointer must be either NULL or 114 bits long
- * - fn is the _real_ GSM frame number.
- * (converted internally to fn_count)
- */
-void osmo_a5(int n, const uint8_t *key, uint32_t fn, ubit_t *dl, ubit_t *ul);
-void osmo_a5_1(const uint8_t *key, uint32_t fn, ubit_t *dl, ubit_t *ul);
-void osmo_a5_2(const uint8_t *key, uint32_t fn, ubit_t *dl, ubit_t *ul);
-
-/*! @} */
-
-#endif /* __OSMO_A5_H__ */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/abis_nm.h b/src/shared/libosmocore/include/osmocom/gsm/abis_nm.h
deleted file mode 100644
index 320ac3e5..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/abis_nm.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _OSMO_GSM_ABIS_NM_H
-#define _OSMO_GSM_ABIS_NM_H
-
-/*! \defgroup oml A-bis OML
- * @{
- */
-
-#include <osmocom/gsm/tlv.h>
-#include <osmocom/gsm/gsm_utils.h>
-#include <osmocom/gsm/protocol/gsm_12_21.h>
-
-/*! \file abis_nm.h */
-
-enum abis_nm_msgtype;
-enum gsm_phys_chan_config;
-
-extern const enum abis_nm_msgtype abis_nm_reports[4];
-extern const enum abis_nm_msgtype abis_nm_no_ack_nack[3];
-extern const enum abis_nm_msgtype abis_nm_sw_load_msgs[9];
-extern const enum abis_nm_msgtype abis_nm_nacks[33];
-
-extern const struct value_string abis_nm_obj_class_names[];
-extern const struct value_string abis_nm_adm_state_names[];
-
-const char *abis_nm_nack_cause_name(uint8_t cause);
-const char *abis_nm_nack_name(uint8_t nack);
-const char *abis_nm_event_type_name(uint8_t cause);
-const char *abis_nm_severity_name(uint8_t cause);
-extern const struct tlv_definition abis_nm_att_tlvdef;
-const char *abis_nm_opstate_name(uint8_t os);
-const char *abis_nm_avail_name(uint8_t avail);
-const char *abis_nm_test_name(uint8_t test);
-void abis_nm_debugp_foh(int ss, struct abis_om_fom_hdr *foh);
-
-int abis_nm_chcomb4pchan(enum gsm_phys_chan_config pchan);
-enum abis_nm_chan_comb abis_nm_pchan4chcomb(uint8_t chcomb);
-
-/*! @} */
-
-#endif /* _OSMO_GSM_ABIS_NM_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/comp128.h b/src/shared/libosmocore/include/osmocom/gsm/comp128.h
deleted file mode 100644
index e4587d4f..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/comp128.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * COMP128 header
- *
- * See comp128.c for details
- */
-
-#ifndef __COMP128_H__
-#define __COMP128_H__
-
-#include <stdint.h>
-
-/*
- * Performs the COMP128 algorithm (used as A3/A8)
- * ki : uint8_t [16]
- * srand : uint8_t [16]
- * sres : uint8_t [4]
- * kc : uint8_t [8]
- */
-void comp128(const uint8_t *ki, const uint8_t *srand, uint8_t *sres, uint8_t *kc);
-
-#endif /* __COMP128_H__ */
-
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gan.h b/src/shared/libosmocore/include/osmocom/gsm/gan.h
deleted file mode 100644
index ab4c1e4e..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gan.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _OSMO_GSM_GAN_H
-#define _OSMO_GSM_GAN_H
-
-#include <osmocom/core/utils.h>
-
-extern const struct value_string gan_msgt_vals[];
-static const struct value_string gan_pdisc_vals[];
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0411_smc.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0411_smc.h
deleted file mode 100644
index 2140db43..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm0411_smc.h
+++ /dev/null
@@ -1,63 +0,0 @@
-#ifndef _GSM0411_SMC_H
-#define _GSM0411_SMC_H
-
-#include <osmocom/core/timer.h>
-#include <osmocom/gsm/protocol/gsm_04_11.h>
-
-#define GSM411_MMSMS_EST_REQ 0x310
-#define GSM411_MMSMS_EST_IND 0x312
-#define GSM411_MMSMS_EST_CNF 0x311
-#define GSM411_MMSMS_REL_REQ 0x320
-#define GSM411_MMSMS_REL_IND 0x322
-#define GSM411_MMSMS_DATA_REQ 0x330
-#define GSM411_MMSMS_DATA_IND 0x332
-#define GSM411_MMSMS_UNIT_DATA_REQ 0x340
-#define GSM411_MMSMS_UNIT_DATA_IND 0x342
-#define GSM411_MMSMS_ERR_IND 0x372
-
-#define GSM411_MNSMS_ABORT_REQ 0x101
-#define GSM411_MNSMS_DATA_REQ 0x102
-#define GSM411_MNSMS_DATA_IND 0x103
-#define GSM411_MNSMS_EST_REQ 0x104
-#define GSM411_MNSMS_EST_IND 0x105
-#define GSM411_MNSMS_ERROR_IND 0x106
-#define GSM411_MNSMS_REL_REQ 0x107
-
-struct gsm411_smc_inst {
- int network; /* is this a MO (0) or MT (1) transfer */
- int (*mn_recv) (struct gsm411_smc_inst *inst, int msg_type,
- struct msgb *msg);
- int (*mm_send) (struct gsm411_smc_inst *inst, int msg_type,
- struct msgb *msg, int cp_msg_type);
-
- enum gsm411_cp_state cp_state;
- struct osmo_timer_list cp_timer;
- struct msgb *cp_msg; /* store pending message */
- int cp_rel; /* store pending release */
- int cp_retx; /* retry counter */
- int cp_max_retr; /* maximum retry */
- int cp_tc1; /* timer value TC1* */
-
-};
-
-extern const struct value_string gsm411_cp_cause_strs[];
-
-/* init a new instance */
-void gsm411_smc_init(struct gsm411_smc_inst *inst, int network,
- int (*mn_recv) (struct gsm411_smc_inst *inst, int msg_type,
- struct msgb *msg),
- int (*mm_send) (struct gsm411_smc_inst *inst, int msg_type,
- struct msgb *msg, int cp_msg_type));
-
-/* clear instance */
-void gsm411_smc_clear(struct gsm411_smc_inst *inst);
-
-/* message from upper layer */
-int gsm411_smc_send(struct gsm411_smc_inst *inst, int msg_type,
- struct msgb *msg);
-
-/* message from lower layer */
-int gsm411_smc_recv(struct gsm411_smc_inst *inst, int msg_type,
- struct msgb *msg, int cp_msg_type);
-
-#endif /* _GSM0411_SMC_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0411_smr.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0411_smr.h
deleted file mode 100644
index 5ea8584d..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm0411_smr.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef _GSM0411_SMR_H
-#define _GSM0411_SMR_H
-
-#include <osmocom/gsm/protocol/gsm_04_11.h>
-
-#define GSM411_SM_RL_DATA_REQ 0x401
-#define GSM411_SM_RL_DATA_IND 0x402
-#define GSM411_SM_RL_MEM_AVAIL_REQ 0x403
-#define GSM411_SM_RL_MEM_AVAIL_IND 0x404
-#define GSM411_SM_RL_REPORT_REQ 0x405
-#define GSM411_SM_RL_REPORT_IND 0x406
-
-struct gsm411_smr_inst {
- int network; /* is this a MO (0) or MT (1) transfer */
- int (*rl_recv) (struct gsm411_smr_inst *inst, int msg_type,
- struct msgb *msg);
- int (*mn_send) (struct gsm411_smr_inst *inst, int msg_type,
- struct msgb *msg);
-
- enum gsm411_rp_state rp_state;
- struct osmo_timer_list rp_timer;
-};
-
-extern const struct value_string gsm411_rp_cause_strs[];
-
-/* init a new instance */
-void gsm411_smr_init(struct gsm411_smr_inst *inst, int network,
- int (*rl_recv) (struct gsm411_smr_inst *inst, int msg_type,
- struct msgb *msg),
- int (*mn_send) (struct gsm411_smr_inst *inst, int msg_type,
- struct msgb *msg));
-
-/* clear instance */
-void gsm411_smr_clear(struct gsm411_smr_inst *inst);
-
-/* message from upper layer */
-int gsm411_smr_send(struct gsm411_smr_inst *inst, int msg_type,
- struct msgb *msg);
-
-/* message from lower layer */
-int gsm411_smr_recv(struct gsm411_smr_inst *inst, int msg_type,
- struct msgb *msg);
-
-#endif /* _GSM0411_SMR_H */
-
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0411_utils.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0411_utils.h
deleted file mode 100644
index d29ca631..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm0411_utils.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _GSM0411_UTILS_H
-#define _GSM0411_UTILS_H
-
-/* Turn int into semi-octet representation: 98 => 0x89 */
-uint8_t gsm411_bcdify(uint8_t value);
-
-/* Turn semi-octet representation into int: 0x89 => 98 */
-uint8_t gsm411_unbcdify(uint8_t value);
-
-struct msgb *gsm411_msgb_alloc(void);
-
-/* Generate 03.40 TP-SCTS */
-void gsm340_gen_scts(uint8_t *scts, time_t time);
-
-/* Decode 03.40 TP-SCTS (into utc/gmt timestamp) */
-time_t gsm340_scts(uint8_t *scts);
-
-/* decode validity period. return minutes */
-unsigned long gsm340_validity_period(uint8_t sms_vpf, uint8_t *sms_vp);
-
-/* determine coding alphabet dependent on GSM 03.38 Section 4 DCS */
-enum sms_alphabet gsm338_get_sms_alphabet(uint8_t dcs);
-
-/* generate a TPDU address field compliant with 03.40 sec. 9.1.2.5 */
-int gsm340_gen_oa(uint8_t *oa, unsigned int oa_len, uint8_t type,
- uint8_t plan, const char *number);
-
-/* Prefix msg with a RP header */
-int gsm411_push_rp_header(struct msgb *msg, uint8_t rp_msg_type,
- uint8_t rp_msg_ref);
-
-/* Prefix msg with a 04.08/04.11 CP header */
-int gsm411_push_cp_header(struct msgb *msg, uint8_t proto, uint8_t trans,
- uint8_t msg_type);
-
-#endif /* _GSM0411_UTILS_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0480.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0480.h
deleted file mode 100644
index d6626d60..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm0480.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef gsm0480_h
-#define gsm0480_h
-
-#include <osmocom/core/msgb.h>
-#include <osmocom/gsm/protocol/gsm_04_08.h>
-#include <osmocom/gsm/protocol/gsm_04_80.h>
-
-#define MAX_LEN_USSD_STRING 31
-
-struct ussd_request {
- char text[MAX_LEN_USSD_STRING + 1];
- uint8_t transaction_id;
- uint8_t invoke_id;
-};
-
-int gsm0480_decode_ussd_request(const struct gsm48_hdr *hdr, uint16_t len,
- struct ussd_request *request);
-
-struct msgb *gsm0480_create_ussd_resp(uint8_t invoke_id, uint8_t trans_id, const char *text);
-struct msgb *gsm0480_create_unstructuredSS_Notify(int alertPattern, const char *text);
-struct msgb *gsm0480_create_notifySS(const char *text);
-
-int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id);
-int gsm0480_wrap_facility(struct msgb *msg);
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0502.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0502.h
deleted file mode 100644
index 46b629e4..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm0502.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef OSMOCOM_GSM_0502_H
-#define OSMOCOM_GSM_0502_H
-
-#include <stdint.h>
-
-#include <osmocom/gsm/protocol/gsm_04_08.h>
-#include <osmocom/gsm/protocol/gsm_08_58.h>
-
-/* Table 5 Clause 7 TS 05.02 */
-static inline unsigned int
-gsm0502_get_n_pag_blocks(struct gsm48_control_channel_descr *chan_desc)
-{
- if (chan_desc->ccch_conf == RSL_BCCH_CCCH_CONF_1_C)
- return 3 - chan_desc->bs_ag_blks_res;
- else
- return 9 - chan_desc->bs_ag_blks_res;
-}
-
-/* Chapter 6.5.2 of TS 05.02 */
-static inline unsigned int
-gsm0502_get_ccch_group(uint64_t imsi, unsigned int bs_cc_chans,
- unsigned int n_pag_blocks)
-{
- return (imsi % 1000) % (bs_cc_chans * n_pag_blocks) / n_pag_blocks;
-}
-
-/* Chapter 6.5.2 of TS 05.02 */
-static inline unsigned int
-gsm0502_get_paging_group(uint64_t imsi, unsigned int bs_cc_chans,
- int n_pag_blocks)
-{
- return (imsi % 1000) % (bs_cc_chans * n_pag_blocks) % n_pag_blocks;
-}
-
-unsigned int
-gsm0502_calc_paging_group(struct gsm48_control_channel_descr *chan_desc, uint64_t imsi);
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm0808.h b/src/shared/libosmocore/include/osmocom/gsm/gsm0808.h
deleted file mode 100644
index 5380dd9e..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm0808.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* (C) 2009,2010 by Holger Hans Peter Freyther <zecke@selfish.org>
- * (C) 2009,2010 by On-Waves
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-#ifndef OSMOCORE_GSM0808_H
-#define OSMOCORE_GSM0808_H
-
-#include "tlv.h"
-
-struct msgb;
-
-struct msgb *gsm0808_create_layer3(struct msgb *msg, uint16_t netcode, uint16_t countrycode, int lac, uint16_t ci);
-struct msgb *gsm0808_create_reset(void);
-struct msgb *gsm0808_create_clear_command(uint8_t reason);
-struct msgb *gsm0808_create_clear_complete(void);
-struct msgb *gsm0808_create_cipher_complete(struct msgb *layer3, uint8_t alg_id);
-struct msgb *gsm0808_create_cipher_reject(uint8_t cause);
-struct msgb *gsm0808_create_classmark_update(const uint8_t *cm2, uint8_t cm2_len,
- const uint8_t *cm3, uint8_t cm3_len);
-struct msgb *gsm0808_create_sapi_reject(uint8_t link_id);
-struct msgb *gsm0808_create_assignment_completed(uint8_t rr_cause,
- uint8_t chosen_channel, uint8_t encr_alg_id,
- uint8_t speech_mode);
-struct msgb *gsm0808_create_assignment_failure(uint8_t cause, uint8_t *rr_cause);
-struct msgb *gsm0808_create_clear_rqst(uint8_t cause);
-
-struct msgb *gsm0808_create_dtap(struct msgb *msg, uint8_t link_id);
-void gsm0808_prepend_dtap_header(struct msgb *msg, uint8_t link_id);
-
-const struct tlv_definition *gsm0808_att_tlvdef(void);
-
-const char *gsm0808_bssmap_name(uint8_t msg_type);
-const char *gsm0808_bssap_name(uint8_t msg_type);
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm48.h b/src/shared/libosmocore/include/osmocom/gsm/gsm48.h
deleted file mode 100644
index 1e7498a9..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm48.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef _OSMOCORE_GSM48_H
-#define _OSMOCORE_GSM48_H
-
-#include <osmocom/gsm/tlv.h>
-#include <osmocom/gsm/protocol/gsm_04_08.h>
-#include <osmocom/gsm/gsm48_ie.h>
-
-/* A parsed GPRS routing area */
-struct gprs_ra_id {
- uint16_t mnc;
- uint16_t mcc;
- uint16_t lac;
- uint8_t rac;
-};
-
-extern const struct tlv_definition gsm48_att_tlvdef;
-extern const struct tlv_definition gsm48_rr_att_tlvdef;
-extern const struct tlv_definition gsm48_mm_att_tlvdef;
-const char *gsm48_cc_state_name(uint8_t state);
-const char *gsm48_cc_msg_name(uint8_t msgtype);
-const char *rr_cause_name(uint8_t cause);
-
-int gsm48_decode_lai(struct gsm48_loc_area_id *lai, uint16_t *mcc,
- uint16_t *mnc, uint16_t *lac);
-void gsm48_generate_lai(struct gsm48_loc_area_id *lai48, uint16_t mcc,
- uint16_t mnc, uint16_t lac);
-int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi);
-int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi);
-
-/* Convert Mobile Identity (10.5.1.4) to string */
-int gsm48_mi_to_string(char *string, const int str_len,
- const uint8_t *mi, const int mi_len);
-
-/* Parse Routeing Area Identifier */
-void gsm48_parse_ra(struct gprs_ra_id *raid, const uint8_t *buf);
-int gsm48_construct_ra(uint8_t *buf, const struct gprs_ra_id *raid);
-
-int gsm48_number_of_paging_subchannels(struct gsm48_control_channel_descr *chan_desc);
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm48_ie.h b/src/shared/libosmocore/include/osmocom/gsm/gsm48_ie.h
deleted file mode 100644
index 2e576429..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm48_ie.h
+++ /dev/null
@@ -1,117 +0,0 @@
-#ifndef _OSMOCORE_GSM48_IE_H
-#define _OSMOCORE_GSM48_IE_H
-
-#include <stdint.h>
-#include <string.h>
-#include <errno.h>
-
-#include <osmocom/core/msgb.h>
-#include <osmocom/gsm/tlv.h>
-#include <osmocom/gsm/mncc.h>
-#include <osmocom/gsm/protocol/gsm_04_08.h>
-
-/* decode a 'called/calling/connect party BCD number' as in 10.5.4.7 */
-int gsm48_decode_bcd_number(char *output, int output_len,
- const uint8_t *bcd_lv, int h_len);
-
-/* convert a ASCII phone number to 'called/calling/connect party BCD number' */
-int gsm48_encode_bcd_number(uint8_t *bcd_lv, uint8_t max_len,
- int h_len, const char *input);
-/* decode 'bearer capability' */
-int gsm48_decode_bearer_cap(struct gsm_mncc_bearer_cap *bcap,
- const uint8_t *lv);
-/* encode 'bearer capability' */
-int gsm48_encode_bearer_cap(struct msgb *msg, int lv_only,
- const struct gsm_mncc_bearer_cap *bcap);
-/* decode 'call control cap' */
-int gsm48_decode_cccap(struct gsm_mncc_cccap *ccap, const uint8_t *lv);
-/* encode 'call control cap' */
-int gsm48_encode_cccap(struct msgb *msg,
- const struct gsm_mncc_cccap *ccap);
-/* decode 'called party BCD number' */
-int gsm48_decode_called(struct gsm_mncc_number *called,
- const uint8_t *lv);
-/* encode 'called party BCD number' */
-int gsm48_encode_called(struct msgb *msg,
- const struct gsm_mncc_number *called);
-/* decode callerid of various IEs */
-int gsm48_decode_callerid(struct gsm_mncc_number *callerid,
- const uint8_t *lv);
-/* encode callerid of various IEs */
-int gsm48_encode_callerid(struct msgb *msg, int ie, int max_len,
- const struct gsm_mncc_number *callerid);
-/* decode 'cause' */
-int gsm48_decode_cause(struct gsm_mncc_cause *cause,
- const uint8_t *lv);
-/* encode 'cause' */
-int gsm48_encode_cause(struct msgb *msg, int lv_only,
- const struct gsm_mncc_cause *cause);
-/* decode 'calling number' */
-int gsm48_decode_calling(struct gsm_mncc_number *calling,
- const uint8_t *lv);
-/* encode 'calling number' */
-int gsm48_encode_calling(struct msgb *msg,
- const struct gsm_mncc_number *calling);
-/* decode 'connected number' */
-int gsm48_decode_connected(struct gsm_mncc_number *connected,
- const uint8_t *lv);
-/* encode 'connected number' */
-int gsm48_encode_connected(struct msgb *msg,
- const struct gsm_mncc_number *connected);
-/* decode 'redirecting number' */
-int gsm48_decode_redirecting(struct gsm_mncc_number *redirecting,
- const uint8_t *lv);
-/* encode 'redirecting number' */
-int gsm48_encode_redirecting(struct msgb *msg,
- const struct gsm_mncc_number *redirecting);
-/* decode 'facility' */
-int gsm48_decode_facility(struct gsm_mncc_facility *facility,
- const uint8_t *lv);
-/* encode 'facility' */
-int gsm48_encode_facility(struct msgb *msg, int lv_only,
- const struct gsm_mncc_facility *facility);
-/* decode 'notify' */
-int gsm48_decode_notify(int *notify, const uint8_t *v);
-/* encode 'notify' */
-int gsm48_encode_notify(struct msgb *msg, int notify);
-/* decode 'signal' */
-int gsm48_decode_signal(int *signal, const uint8_t *v);
-/* encode 'signal' */
-int gsm48_encode_signal(struct msgb *msg, int signal);
-/* decode 'keypad' */
-int gsm48_decode_keypad(int *keypad, const uint8_t *lv);
-/* encode 'keypad' */
-int gsm48_encode_keypad(struct msgb *msg, int keypad);
-/* decode 'progress' */
-int gsm48_decode_progress(struct gsm_mncc_progress *progress,
- const uint8_t *lv);
-/* encode 'progress' */
-int gsm48_encode_progress(struct msgb *msg, int lv_only,
- const struct gsm_mncc_progress *p);
-/* decode 'user-user' */
-int gsm48_decode_useruser(struct gsm_mncc_useruser *uu,
- const uint8_t *lv);
-/* encode 'useruser' */
-int gsm48_encode_useruser(struct msgb *msg, int lv_only,
- const struct gsm_mncc_useruser *uu);
-/* decode 'ss version' */
-int gsm48_decode_ssversion(struct gsm_mncc_ssversion *ssv,
- const uint8_t *lv);
-/* encode 'ss version' */
-int gsm48_encode_ssversion(struct msgb *msg,
- const struct gsm_mncc_ssversion *ssv);
-/* decode 'more data' does not require a function, because it has no value */
-/* encode 'more data' */
-int gsm48_encode_more(struct msgb *msg);
-
-/* structure of one frequency */
-struct gsm_sysinfo_freq {
- /* if the frequency included in the sysinfo */
- uint8_t mask;
-} __attribute__ ((packed));
-
-/* decode "Cell Channel Description" (10.5.2.1b) and other frequency lists */
-int gsm48_decode_freq_list(struct gsm_sysinfo_freq *f, uint8_t *cd,
- uint8_t len, uint8_t mask, uint8_t frqt);
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h b/src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h
deleted file mode 100644
index 6d316727..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/gsm_utils.h
+++ /dev/null
@@ -1,151 +0,0 @@
-/* GSM utility functions, e.g. coding and decoding */
-/*
- * (C) 2008 by Daniel Willmann <daniel@totalueberwachung.de>
- * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
- * (C) 2009-2010 by Harald Welte <laforge@gnumonks.org>
- *
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-#ifndef GSM_UTILS_H
-#define GSM_UTILS_H
-
-#include <stdint.h>
-
-#define ADD_MODULO(sum, delta, modulo) do { \
- if ((sum += delta) >= modulo) \
- sum -= modulo; \
- } while (0)
-
-#define GSM_MAX_FN (26*51*2048)
-
-struct gsm_time {
- uint32_t fn; /* FN count */
- uint16_t t1; /* FN div (26*51) */
- uint8_t t2; /* FN modulo 26 */
- uint8_t t3; /* FN modulo 51 */
- uint8_t tc;
-};
-
-enum gsm_band {
- GSM_BAND_850 = 1,
- GSM_BAND_900 = 2,
- GSM_BAND_1800 = 4,
- GSM_BAND_1900 = 8,
- GSM_BAND_450 = 0x10,
- GSM_BAND_480 = 0x20,
- GSM_BAND_750 = 0x40,
- GSM_BAND_810 = 0x80,
-};
-
-const char *gsm_band_name(enum gsm_band band);
-enum gsm_band gsm_band_parse(const char *mhz);
-
-int gsm_7bit_decode(char *decoded, const uint8_t *user_data, uint8_t length);
-int gsm_7bit_decode_hdr(char *decoded, const uint8_t *user_data, uint8_t length, uint8_t ud_hdr_ind);
-int gsm_7bit_encode(uint8_t *result, const char *data);
-
-int gsm_septets2octets(uint8_t *result, uint8_t *rdata, uint8_t septet_len, uint8_t padding);
-int gsm_septet_encode(uint8_t *result, const char *data);
-uint8_t gsm_get_octet_len(const uint8_t sept_len);
-
-unsigned int ms_class_gmsk_dbm(enum gsm_band band, int ms_class);
-
-int ms_pwr_ctl_lvl(enum gsm_band band, unsigned int dbm);
-int ms_pwr_dbm(enum gsm_band band, uint8_t lvl);
-
-/* According to TS 08.05 Chapter 8.1.4 */
-int rxlev2dbm(uint8_t rxlev);
-uint8_t dbm2rxlev(int dbm);
-
-/* According to GSM 04.08 Chapter 10.5.1.6 */
-static inline int ms_cm2_a5n_support(uint8_t *cm2, int n) {
- switch (n) {
- case 0: return 1;
- case 1: return (cm2[0] & (1<<3)) ? 0 : 1;
- case 2: return (cm2[2] & (1<<0)) ? 1 : 0;
- case 3: return (cm2[2] & (1<<1)) ? 1 : 0;
- default:
- return 0;
- }
-}
-
-/* According to GSM 04.08 Chapter 10.5.2.29 */
-static inline int rach_max_trans_val2raw(int val) { return (val >> 1) & 3; }
-static inline int rach_max_trans_raw2val(int raw) {
- const int tbl[4] = { 1, 2, 4, 7 };
- return tbl[raw & 3];
-}
-
-#define ARFCN_PCS 0x8000
-#define ARFCN_UPLINK 0x4000
-#define ARFCN_FLAG_MASK 0xf000 /* Reserve the upper 5 bits for flags */
-
-enum gsm_band gsm_arfcn2band(uint16_t arfcn);
-
-/* Convert an ARFCN to the frequency in MHz * 10 */
-uint16_t gsm_arfcn2freq10(uint16_t arfcn, int uplink);
-
-/* Convert from frame number to GSM time */
-void gsm_fn2gsmtime(struct gsm_time *time, uint32_t fn);
-
-/* Convert from GSM time to frame number */
-uint32_t gsm_gsmtime2fn(struct gsm_time *time);
-
-/* GSM TS 03.03 Chapter 2.6 */
-enum gprs_tlli_type {
- TLLI_LOCAL,
- TLLI_FOREIGN,
- TLLI_RANDOM,
- TLLI_AUXILIARY,
- TLLI_RESERVED,
-};
-
-/* TS 03.03 Chapter 2.6 */
-int gprs_tlli_type(uint32_t tlli);
-
-uint32_t gprs_tmsi2tlli(uint32_t p_tmsi, enum gprs_tlli_type type);
-
-/* Osmocom internal, not part of any gsm spec */
-enum gsm_phys_chan_config {
- GSM_PCHAN_NONE,
- GSM_PCHAN_CCCH,
- GSM_PCHAN_CCCH_SDCCH4,
- GSM_PCHAN_TCH_F,
- GSM_PCHAN_TCH_H,
- GSM_PCHAN_SDCCH8_SACCH8C,
- GSM_PCHAN_PDCH, /* GPRS PDCH */
- GSM_PCHAN_TCH_F_PDCH, /* TCH/F if used, PDCH otherwise */
- GSM_PCHAN_UNKNOWN,
- _GSM_PCHAN_MAX
-};
-
-/* Osmocom internal, not part of any gsm spec */
-enum gsm_chan_t {
- GSM_LCHAN_NONE,
- GSM_LCHAN_SDCCH,
- GSM_LCHAN_TCH_F,
- GSM_LCHAN_TCH_H,
- GSM_LCHAN_UNKNOWN,
- GSM_LCHAN_CCCH,
- GSM_LCHAN_PDTCH,
- _GSM_LCHAN_MAX
-};
-
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/lapd_core.h b/src/shared/libosmocore/include/osmocom/gsm/lapd_core.h
deleted file mode 100644
index 0f4e8899..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/lapd_core.h
+++ /dev/null
@@ -1,171 +0,0 @@
-#ifndef _OSMOCOM_LAPD_H
-#define _OSMOCOM_LAPD_H
-
-#include <stdint.h>
-
-#include <osmocom/core/timer.h>
-#include <osmocom/core/msgb.h>
-#include <osmocom/gsm/prim.h>
-
-/*! \defgroup lapd LAPD implementation common part
- * @{
- */
-
-/*! \file lapd.h */
-
-/* primitive related sutff */
-
-/*! \brief LAPD related primitives (L2<->L3 SAP)*/
-enum osmo_dl_prim {
- PRIM_DL_UNIT_DATA, /*!< \brief DL-UNIT-DATA */
- PRIM_DL_DATA, /*!< \brief DL-DATA */
- PRIM_DL_EST, /*!< \brief DL-ESTABLISH */
- PRIM_DL_REL, /*!< \brief DL-RLEEASE */
- PRIM_DL_SUSP, /*!< \brief DL-SUSPEND */
- PRIM_DL_RES, /*!< \brief DL-RESUME */
- PRIM_DL_RECON, /*!< \brief DL-RECONNECT */
- PRIM_MDL_ERROR, /*!< \brief MDL-ERROR */
-};
-
-/* Uses the same values as RLL, so no conversion for GSM is required. */
-#define MDL_CAUSE_T200_EXPIRED 0x01
-#define MDL_CAUSE_REEST_REQ 0x02
-#define MDL_CAUSE_UNSOL_UA_RESP 0x03
-#define MDL_CAUSE_UNSOL_DM_RESP 0x04
-#define MDL_CAUSE_UNSOL_DM_RESP_MF 0x05
-#define MDL_CAUSE_UNSOL_SPRV_RESP 0x06
-#define MDL_CAUSE_SEQ_ERR 0x07
-#define MDL_CAUSE_UFRM_INC_PARAM 0x08
-#define MDL_CAUSE_SFRM_INC_PARAM 0x09
-#define MDL_CAUSE_IFRM_INC_MBITS 0x0a
-#define MDL_CAUSE_IFRM_INC_LEN 0x0b
-#define MDL_CAUSE_FRM_UNIMPL 0x0c
-#define MDL_CAUSE_SABM_MF 0x0d
-#define MDL_CAUSE_SABM_INFO_NOTALL 0x0e
-#define MDL_CAUSE_FRMR 0x0f
-
-/*! \brief for MDL-ERROR.ind */
-struct mdl_error_ind_param {
- uint8_t cause; /*!< \brief generic cause value */
-};
-
-/*! \brief for DL-REL.req */
-struct dl_rel_req_param {
- uint8_t mode; /*!< \brief release mode */
-};
-
-/*! \brief primitive header for LAPD DL-SAP primitives */
-struct osmo_dlsap_prim {
- struct osmo_prim_hdr oph; /*!< \brief generic primitive header */
- union {
- struct mdl_error_ind_param error_ind;
- struct dl_rel_req_param rel_req;
- } u; /*!< \brief request-specific data */
-};
-
-/*! \brief LAPD mode/role */
-enum lapd_mode {
- LAPD_MODE_USER, /*!< \brief behave like user */
- LAPD_MODE_NETWORK, /*!< \brief behave like network */
-};
-
-/*! \brief LAPD state (Figure B.2/Q.921)*/
-enum lapd_state {
- LAPD_STATE_NULL = 0,
- LAPD_STATE_TEI_UNASS,
- LAPD_STATE_ASS_TEI_WAIT,
- LAPD_STATE_EST_TEI_WAIT,
- LAPD_STATE_IDLE,
- LAPD_STATE_SABM_SENT,
- LAPD_STATE_DISC_SENT,
- LAPD_STATE_MF_EST,
- LAPD_STATE_TIMER_RECOV,
-};
-
-/*! \brief LAPD message format (I / S / U) */
-enum lapd_format {
- LAPD_FORM_UKN = 0,
- LAPD_FORM_I,
- LAPD_FORM_S,
- LAPD_FORM_U,
-};
-
-/*! \brief LAPD message context */
-struct lapd_msg_ctx {
- struct lapd_datalink *dl;
- int n201;
- /* address */
- uint8_t cr;
- uint8_t sapi;
- uint8_t tei;
- uint8_t lpd;
- /* control */
- uint8_t format;
- uint8_t p_f; /* poll / final bit */
- uint8_t n_send;
- uint8_t n_recv;
- uint8_t s_u; /* S or repectivly U function bits */
- /* length */
- int length;
- uint8_t more;
-};
-
-struct lapd_cr_ent {
- uint8_t cmd;
- uint8_t resp;
-};
-
-struct lapd_history {
- struct msgb *msg; /* message to be sent / NULL, if histoy is empty */
- int more; /* if message is fragmented */
-};
-
-/*! \brief LAPD datalink */
-struct lapd_datalink {
- int (*send_dlsap)(struct osmo_dlsap_prim *dp,
- struct lapd_msg_ctx *lctx);
- int (*send_ph_data_req)(struct lapd_msg_ctx *lctx, struct msgb *msg);
- struct {
- /*! \brief filled-in once we set the lapd_mode above */
- struct lapd_cr_ent loc2rem;
- struct lapd_cr_ent rem2loc;
- } cr;
- enum lapd_mode mode; /*!< \brief current mode of link */
- int use_sabme; /*!< \brief use SABME instead of SABM */
- int reestablish; /*!< \brief enable reestablish support */
- int n200, n200_est_rel; /*!< \brief number of retranmissions */
- struct lapd_msg_ctx lctx; /*!< \brief LAPD context */
- int maxf; /*!< \brief maximum frame size (after defragmentation) */
- uint8_t k; /*!< \brief maximum number of unacknowledged frames */
- uint8_t v_range; /*!< \brief range of sequence numbers */
- uint8_t v_send; /*!< \brief seq nr of next I frame to be transmitted */
- uint8_t v_ack; /*!< \brief last frame ACKed by peer */
- uint8_t v_recv; /*!< \brief seq nr of next I frame expected to be received */
- uint32_t state; /*!< \brief LAPD state (\ref lapd_state) */
- int seq_err_cond; /*!< \brief condition of sequence error */
- uint8_t own_busy; /*!< \brief receiver busy on our side */
- uint8_t peer_busy; /*!< \brief receiver busy on remote side */
- int t200_sec, t200_usec; /*!< \brief retry timer (default 1 sec) */
- int t203_sec, t203_usec; /*!< \brief retry timer (default 10 secs) */
- struct osmo_timer_list t200; /*!< \brief T200 timer */
- struct osmo_timer_list t203; /*!< \brief T203 timer */
- uint8_t retrans_ctr; /*!< \brief re-transmission counter */
- struct llist_head tx_queue; /*!< \brief frames to L1 */
- struct llist_head send_queue; /*!< \brief frames from L3 */
- struct msgb *send_buffer; /*!< \brief current frame transmitting */
- int send_out; /*!< \brief how much was sent from send_buffer */
- struct lapd_history *tx_hist; /*!< \brief tx history structure array */
- uint8_t range_hist; /*!< \brief range of history buffer 2..2^n */
- struct msgb *rcv_buffer; /*!< \brief buffer to assemble the received message */
- struct msgb *cont_res; /*!< \brief buffer to store content resolution data on network side, to detect multiple phones on same channel */
-};
-
-void lapd_dl_init(struct lapd_datalink *dl, uint8_t k, uint8_t v_range,
- int maxf);
-void lapd_dl_exit(struct lapd_datalink *dl);
-void lapd_dl_reset(struct lapd_datalink *dl);
-int lapd_set_mode(struct lapd_datalink *dl, enum lapd_mode mode);
-int lapd_ph_data_ind(struct msgb *msg, struct lapd_msg_ctx *lctx);
-int lapd_recv_dlsap(struct osmo_dlsap_prim *dp, struct lapd_msg_ctx *lctx);
-
-#endif /* _OSMOCOM_LAPD_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/lapdm.h b/src/shared/libosmocore/include/osmocom/gsm/lapdm.h
deleted file mode 100644
index 571fd460..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/lapdm.h
+++ /dev/null
@@ -1,162 +0,0 @@
-#ifndef _OSMOCOM_LAPDM_H
-#define _OSMOCOM_LAPDM_H
-
-#include <osmocom/gsm/lapd_core.h>
-
-/*! \defgroup lapdm LAPDm implementation according to GSM TS 04.06
- * @{
- */
-
-/*! \file lapdm.h */
-
-/* primitive related sutff */
-
-/*! \brief LAPDm related primitives (L1<->L2 SAP) */
-enum osmo_ph_prim {
- PRIM_PH_DATA, /*!< \brief PH-DATA */
- PRIM_PH_RACH, /*!< \brief PH-RANDOM_ACCESS */
- PRIM_PH_CONN, /*!< \brief PH-CONNECT */
- PRIM_PH_EMPTY_FRAME, /*!< \brief PH-EMPTY_FRAME */
- PRIM_PH_RTS, /*!< \brief PH-RTS */
-};
-
-/*! \brief for PH-RANDOM_ACCESS.req */
-struct ph_rach_req_param {
- uint8_t ra; /*!< \brief Random Access */
- uint8_t ta; /*!< \brief Timing Advance */
- uint8_t tx_power; /*!< \brief Transmit Power */
- uint8_t is_combined_ccch;/*!< \brief Are we using a combined CCCH? */
- uint16_t offset; /*!< \brief Timing Offset */
-};
-
-/*! \brief for PH-RANDOM_ACCESS.ind */
-struct ph_rach_ind_param {
- uint8_t ra; /*!< \brief Random Access */
- uint8_t acc_delay; /*!< \brief Delay in bit periods */
- uint32_t fn; /*!< \brief GSM Frame Number at time of RA */
-};
-
-/*! \brief for PH-[UNIT]DATA.{req,ind} */
-struct ph_data_param {
- uint8_t link_id; /*!< \brief Link Identifier (Like RSL) */
- uint8_t chan_nr; /*!< \brief Channel Number (Like RSL) */
-};
-
-/*! \brief for PH-CONN.ind */
-struct ph_conn_ind_param {
- uint32_t fn; /*!< \brief GSM Frame Number */
-};
-
-/*! \brief primitive header for LAPDm PH-SAP primitives */
-struct osmo_phsap_prim {
- struct osmo_prim_hdr oph; /*!< \brief generic primitive header */
- union {
- struct ph_data_param data;
- struct ph_rach_req_param rach_req;
- struct ph_rach_ind_param rach_ind;
- struct ph_conn_ind_param conn_ind;
- } u; /*!< \brief request-specific data */
-};
-
-/*! \brief LAPDm mode/role */
-enum lapdm_mode {
- LAPDM_MODE_MS, /*!< \brief behave like a MS (mobile phone) */
- LAPDM_MODE_BTS, /*!< \brief behave like a BTS (network) */
-};
-
-struct lapdm_entity;
-
-/*! \brief LAPDm message context */
-struct lapdm_msg_ctx {
- struct lapdm_datalink *dl;
- int lapdm_fmt;
- uint8_t chan_nr;
- uint8_t link_id;
- uint8_t ta_ind; /* TA indicated by network */
- uint8_t tx_power_ind; /* MS power indicated by network */
-};
-
-/*! \brief LAPDm datalink like TS 04.06 / Section 3.5.2 */
-struct lapdm_datalink {
- struct lapd_datalink dl; /* \brief common LAPD */
- struct lapdm_msg_ctx mctx; /*!< \brief context of established connection */
-
- struct lapdm_entity *entity; /*!< \brief LAPDm entity we are part of */
-};
-
-/*! \brief LAPDm datalink SAPIs */
-enum lapdm_dl_sapi {
- DL_SAPI0 = 0, /*!< \brief SAPI 0 */
- DL_SAPI3 = 1, /*!< \brief SAPI 1 */
- _NR_DL_SAPI
-};
-
-typedef int (*lapdm_cb_t)(struct msgb *msg, struct lapdm_entity *le, void *ctx);
-
-#define LAPDM_ENT_F_EMPTY_FRAME 0x0001
-#define LAPDM_ENT_F_POLLING_ONLY 0x0002
-
-/*! \brief a LAPDm Entity */
-struct lapdm_entity {
- /*! \brief the SAPIs of the LAPDm entity */
- struct lapdm_datalink datalink[_NR_DL_SAPI];
- int last_tx_dequeue; /*!< \brief last entity that was dequeued */
- int tx_pending; /*!< \brief currently a pending frame not confirmed by L1 */
- enum lapdm_mode mode; /*!< \brief are we in BTS mode or MS mode */
- unsigned int flags;
-
- void *l1_ctx; /*!< \brief context for layer1 instance */
- void *l3_ctx; /*!< \brief context for layer3 instance */
-
- osmo_prim_cb l1_prim_cb;/*!< \brief callback for sending prims to L1 */
- lapdm_cb_t l3_cb; /*!< \brief callback for sending stuff to L3 */
-
- /*! \brief pointer to \ref lapdm_channel of which we're part */
- struct lapdm_channel *lapdm_ch;
-
- uint8_t ta; /* TA used and indicated to network */
- uint8_t tx_power; /* MS power used and indicated to network */
-};
-
-/*! \brief the two lapdm_entities that form a GSM logical channel (ACCH + DCCH) */
-struct lapdm_channel {
- struct llist_head list; /*!< \brief internal linked list */
- char *name; /*!< \brief human-readable name */
- struct lapdm_entity lapdm_acch; /*!< \brief Associated Control Channel */
- struct lapdm_entity lapdm_dcch; /*!< \brief Dedicated Control Channel */
-};
-
-const char *get_rsl_name(int value);
-extern const char *lapdm_state_names[];
-
-/* initialize a LAPDm entity */
-void lapdm_entity_init(struct lapdm_entity *le, enum lapdm_mode mode, int t200);
-void lapdm_channel_init(struct lapdm_channel *lc, enum lapdm_mode mode);
-
-/* deinitialize a LAPDm entity */
-void lapdm_entity_exit(struct lapdm_entity *le);
-void lapdm_channel_exit(struct lapdm_channel *lc);
-
-/* input into layer2 (from layer 1) */
-int lapdm_phsap_up(struct osmo_prim_hdr *oph, struct lapdm_entity *le);
-
-/* input into layer2 (from layer 3) */
-int lapdm_rslms_recvmsg(struct msgb *msg, struct lapdm_channel *lc);
-
-void lapdm_channel_set_l3(struct lapdm_channel *lc, lapdm_cb_t cb, void *ctx);
-void lapdm_channel_set_l1(struct lapdm_channel *lc, osmo_prim_cb cb, void *ctx);
-
-int lapdm_entity_set_mode(struct lapdm_entity *le, enum lapdm_mode mode);
-int lapdm_channel_set_mode(struct lapdm_channel *lc, enum lapdm_mode mode);
-
-void lapdm_entity_reset(struct lapdm_entity *le);
-void lapdm_channel_reset(struct lapdm_channel *lc);
-
-void lapdm_entity_set_flags(struct lapdm_entity *le, unsigned int flags);
-void lapdm_channel_set_flags(struct lapdm_channel *lc, unsigned int flags);
-
-int lapdm_phsap_dequeue_prim(struct lapdm_entity *le, struct osmo_phsap_prim *pp);
-
-/*! @} */
-
-#endif /* _OSMOCOM_LAPDM_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/mncc.h b/src/shared/libosmocore/include/osmocom/gsm/mncc.h
deleted file mode 100644
index a51267e0..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/mncc.h
+++ /dev/null
@@ -1,85 +0,0 @@
-#ifndef _OSMOCORE_MNCC_H
-#define _OSMOCORE_MNCC_H
-
-#include <osmocom/gsm/protocol/gsm_04_08.h>
-
-#define GSM_MAX_FACILITY 128
-#define GSM_MAX_SSVERSION 128
-#define GSM_MAX_USERUSER 128
-
-/* Expanded fields from GSM TS 04.08, Table 10.5.102 */
-struct gsm_mncc_bearer_cap {
- int transfer; /* Information Transfer Capability */
- int mode; /* Transfer Mode */
- int coding; /* Coding Standard */
- int radio; /* Radio Channel Requirement */
- int speech_ctm; /* CTM text telephony indication */
- int speech_ver[8]; /* Speech version indication */
- struct {
- enum gsm48_bcap_ra rate_adaption;
- enum gsm48_bcap_sig_access sig_access;
- int async;
- int nr_stop_bits;
- int nr_data_bits;
- enum gsm48_bcap_user_rate user_rate;
- enum gsm48_bcap_parity parity;
- enum gsm48_bcap_interm_rate interm_rate;
- enum gsm48_bcap_transp transp;
- enum gsm48_bcap_modem_type modem_type;
- } data;
-};
-
-struct gsm_mncc_number {
- int type;
- int plan;
- int present;
- int screen;
- char number[33];
-};
-
-struct gsm_mncc_cause {
- int location;
- int coding;
- int rec;
- int rec_val;
- int value;
- int diag_len;
- char diag[32];
-};
-
-struct gsm_mncc_useruser {
- int proto;
- char info[GSM_MAX_USERUSER + 1]; /* + termination char */
-};
-
-struct gsm_mncc_progress {
- int coding;
- int location;
- int descr;
-};
-
-struct gsm_mncc_facility {
- int len;
- char info[GSM_MAX_FACILITY];
-};
-
-struct gsm_mncc_ssversion {
- int len;
- char info[GSM_MAX_SSVERSION];
-};
-
-struct gsm_mncc_cccap {
- int dtmf;
- int pcp;
-};
-
-enum {
- GSM_MNCC_BCAP_SPEECH = 0,
- GSM_MNCC_BCAP_UNR_DIG = 1,
- GSM_MNCC_BCAP_AUDIO = 2,
- GSM_MNCC_BCAP_FAX_G3 = 3,
- GSM_MNCC_BCAP_OTHER_ITC = 5,
- GSM_MNCC_BCAP_RESERVED = 7,
-};
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/prim.h b/src/shared/libosmocore/include/osmocom/gsm/prim.h
deleted file mode 100644
index 5beb2007..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/prim.h
+++ /dev/null
@@ -1,18 +0,0 @@
-#ifndef OSMO_GSM_PRIM_H
-#define OSMO_GSM_PRIM_H
-
-#include <osmocom/core/prim.h>
-
-/* enumeration of GSM related SAPs */
-enum osmo_gsm_sap {
- SAP_GSM_PH = _SAP_GSM_BASE,
- SAP_GSM_DL,
- SAP_GSM_MDL,
-
- SAP_BSSGP_GMM,
- SAP_BSSGP_LL,
- SAP_BSSGP_NM,
- SAP_BSSGP_PFM,
-};
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_03_41.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_03_41.h
deleted file mode 100644
index 54365cbc..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_03_41.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef PROTO_GSM_03_41_H
-#define PROTO_GSM_03_41_H
-
-#include <stdint.h>
-
-/* GSM TS 03.41 definitions also TS 23.041*/
-
-/* Chapter 9.3.2 */
-struct gsm341_ms_message {
- struct {
- uint8_t code_hi:6;
- uint8_t gs:2;
- uint8_t update:4;
- uint8_t code_lo:4;
- } serial;
- uint16_t msg_id;
- struct {
- uint8_t language:4;
- uint8_t group:4;
- } dcs;
- struct {
- uint8_t total:4;
- uint8_t current:4;
- } page;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Chapter 9.4.1.3 */
-struct gsm341_etws_message {
- struct {
- uint8_t code_hi:4;
- uint8_t popup:1;
- uint8_t alert:1;
- uint8_t gs:2;
- uint8_t update:4;
- uint8_t code_lo:4;
- } serial;
- uint16_t msg_id;
- uint16_t warning_type;
- uint8_t data[0];
-} __attribute__((packed));
-
-#define GSM341_MSG_CODE(ms) ((ms)->serial.code_lo | ((ms)->serial.code_hi << 4))
-
-/* Section 9.3.2.1 - Geographical Scope */
-#define GSM341_GS_CELL_WIDE_IMMED 0
-#define GSM341_GS_PLMN_WIDE 1
-#define GSM341_GS_LA_WIDE 2
-#define GSM341_GS_CELL_WIDE 3
-
-#endif /* PROTO_GSM_03_41_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_08.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_08.h
deleted file mode 100644
index 172ef678..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_08.h
+++ /dev/null
@@ -1,1339 +0,0 @@
-#ifndef PROTO_GSM_04_08_H
-#define PROTO_GSM_04_08_H
-
-#include <stdint.h>
-
-/* GSM TS 04.08 definitions */
-struct gsm_lchan;
-
-/* Chapter 10.5.1.5 */
-struct gsm48_classmark1 {
- uint8_t pwr_lev:3,
- a5_1:1,
- es_ind:1,
- rev_lev:2,
- spare:1;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.1.6 */
-struct gsm48_classmark2 {
- uint8_t pwr_lev:3,
- a5_1:1,
- es_ind:1,
- rev_lev:2,
- spare:1;
- uint8_t fc:1,
- vgcs:1,
- vbs:1,
- sm_cap:1,
- ss_scr:2,
- ps_cap:1,
- spare2:1;
- uint8_t a5_2:1,
- a5_3:1,
- cmsp:1,
- solsa:1,
- spare3:1,
- lcsva_cap:1,
- spare4:1,
- cm3:1;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.1b.3 */
-struct gsm48_range_1024 {
- uint8_t w1_hi:2,
- f0:1,
- form_id:5;
- uint8_t w1_lo;
- uint8_t w2_hi;
- uint8_t w3_hi:7,
- w2_lo:1;
- uint8_t w4_hi:6,
- w3_lo:2;
- uint8_t w5_hi:6,
- w4_lo:2;
- uint8_t w6_hi:6,
- w5_lo:2;
- uint8_t w7_hi:6,
- w6_lo:2;
- uint8_t w8_hi:6,
- w7_lo:2;
- uint8_t w9:7,
- w8_lo:1;
- uint8_t w11_hi:1,
- w10:7;
- uint8_t w12_hi:2,
- w11_lo:6;
- uint8_t w13_hi:3,
- w12_lo:5;
- uint8_t w14_hi:4,
- w13_lo:4;
- uint8_t w15_hi:5,
- w14_lo:3;
- uint8_t w16:6,
- w15_lo:2;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.1b.4 */
-struct gsm48_range_512 {
- uint8_t orig_arfcn_hi:1,
- form_id:7;
- uint8_t orig_arfcn_mid;
- uint8_t w1_hi:7,
- orig_arfcn_lo:1;
- uint8_t w2_hi:6,
- w1_lo:2;
- uint8_t w3_hi:6,
- w2_lo:2;
- uint8_t w4_hi:6,
- w3_lo:2;
- uint8_t w5:7,
- w4_lo:1;
- uint8_t w7_hi:1,
- w6:7;
- uint8_t w8_hi:2,
- w7_lo:6;
- uint8_t w9_hi:4,
- w8_lo:4;
- uint8_t w10:6,
- w9_lo:2;
- uint8_t w12_hi:2,
- w11:6;
- uint8_t w13_hi:4,
- w12_lo:4;
- uint8_t w14:6,
- w13_lo:2;
- uint8_t w16_hi:2,
- w15:6;
- uint8_t w17:5,
- w16_lo:3;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.1b.5 */
-struct gsm48_range_256 {
- uint8_t orig_arfcn_hi:1,
- form_id:7;
- uint8_t orig_arfcn_mid;
- uint8_t w1_hi:7,
- orig_arfcn_lo:1;
- uint8_t w2:7,
- w1_lo:1;
- uint8_t w4_hi:1,
- w3:7;
- uint8_t w5_hi:3,
- w4_lo:5;
- uint8_t w6_hi:5,
- w5_lo:3;
- uint8_t w8_hi:1,
- w7:6,
- w6_lo:1;
- uint8_t w9_hi:4,
- w8_lo:4;
- uint8_t w11_hi:2,
- w10:5,
- w9_lo:1;
- uint8_t w12:5,
- w11_lo:3;
- uint8_t w14_hi:3,
- w13:5;
- uint8_t w16_hi:1,
- w15:5,
- w14_lo:2;
- uint8_t w18_hi:1,
- w17:4,
- w16_lo:3;
- uint8_t w20_hi:1,
- w19:4,
- w18_lo:3;
- uint8_t spare:1,
- w21:4,
- w20_lo:3;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.1b.6 */
-struct gsm48_range_128 {
- uint8_t orig_arfcn_hi:1,
- form_id:7;
- uint8_t orig_arfcn_mid;
- uint8_t w1:7,
- orig_arfcn_lo:1;
- uint8_t w3_hi:2,
- w2:6;
- uint8_t w4_hi:4,
- w3_lo:4;
- uint8_t w6_hi:2,
- w5:5,
- w4_lo:1;
- uint8_t w7:5,
- w6_lo:3;
- uint8_t w9:4,
- w8:4;
- uint8_t w11:4,
- w10:4;
- uint8_t w13:4,
- w12:4;
- uint8_t w15:4,
- w14:4;
- uint8_t w18_hi:2,
- w17:3,
- w16:3;
- uint8_t w21_hi:1,
- w20:3,
- w19:3,
- w18_lo:1;
- uint8_t w23:3,
- w22:3,
- w21_lo:2;
- uint8_t w26_hi:2,
- w25:3,
- w24:3;
- uint8_t spare:1,
- w28:3,
- w27:3,
- w26_lo:1;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.1b.7 */
-struct gsm48_var_bit {
- uint8_t orig_arfcn_hi:1,
- form_id:7;
- uint8_t orig_arfcn_mid;
- uint8_t rrfcn1_7:7,
- orig_arfcn_lo:1;
- uint8_t rrfcn8_111[13];
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.5 */
-struct gsm48_chan_desc {
- uint8_t chan_nr;
- union {
- struct {
- uint8_t maio_high:4,
- h:1,
- tsc:3;
- uint8_t hsn:6,
- maio_low:2;
- } __attribute__ ((packed)) h1;
- struct {
- uint8_t arfcn_high:2,
- spare:2,
- h:1,
- tsc:3;
- uint8_t arfcn_low;
- } __attribute__ ((packed)) h0;
- } __attribute__ ((packed));
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.20 */
-struct gsm48_meas_res {
- uint8_t rxlev_full:6,
- dtx_used:1,
- ba_used:1;
- uint8_t rxlev_sub:6,
- meas_valid:1,
- spare:1;
- uint8_t no_nc_n_hi:1,
- rxqual_sub:3,
- rxqual_full:3,
- spare2:1;
- uint8_t rxlev_nc1:6,
- no_nc_n_lo:2;
- uint8_t bsic_nc1_hi:3,
- bcch_f_nc1:5;
- uint8_t rxlev_nc2_hi:5,
- bsic_nc1_lo:3;
- uint8_t bsic_nc2_hi:2,
- bcch_f_nc2:5,
- rxlev_nc2_lo:1;
- uint8_t rxlev_nc3_hi:4,
- bsic_nc2_lo:4;
- uint8_t bsic_nc3_hi:1,
- bcch_f_nc3:5,
- rxlev_nc3_lo:2;
- uint8_t rxlev_nc4_hi:3,
- bsic_nc3_lo:5;
- uint8_t bcch_f_nc4:5,
- rxlev_nc4_lo:3;
- uint8_t rxlev_nc5_hi:2,
- bsic_nc4:6;
- uint8_t bcch_f_nc5_hi:4,
- rxlev_nc5_lo:4;
- uint8_t rxlev_nc6_hi:1,
- bsic_nc5:6,
- bcch_f_nc5_lo:1;
- uint8_t bcch_f_nc6_hi:3,
- rxlev_nc6_lo:5;
- uint8_t bsic_nc6:6,
- bcch_f_nc6_lo:2;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.21aa */
-struct gsm48_multi_rate_conf {
- uint8_t smod : 2,
- spare: 1,
- icmi : 1,
- nscb : 1,
- ver : 3;
- uint8_t m4_75 : 1,
- m5_15 : 1,
- m5_90 : 1,
- m6_70 : 1,
- m7_40 : 1,
- m7_95 : 1,
- m10_2 : 1,
- m12_2 : 1;
-} __attribute__((packed));
-
-/* Chapter 10.5.2.28(a) */
-struct gsm48_power_cmd {
- uint8_t power_level:5,
- spare:2,
- atc:1;
-} __attribute__((packed));
-
-/* Chapter 10.5.2.29 */
-struct gsm48_rach_control {
- uint8_t re :1,
- cell_bar :1,
- tx_integer :4,
- max_trans :2;
- uint8_t t2;
- uint8_t t3;
-} __attribute__ ((packed));
-
-
-/* Chapter 10.5.2.30 */
-struct gsm48_req_ref {
- uint8_t ra;
- uint8_t t3_high:3,
- t1:5;
- uint8_t t2:5,
- t3_low:3;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.38 */
-struct gsm48_start_time {
- uint8_t t3_high:3,
- t1:5;
- uint8_t t2:5,
- t3_low:3;
-} __attribute__ ((packed));
-
-/* Chapter 10.5.2.39 */
-struct gsm48_sync_ind {
- uint8_t si:2,
- rot:1,
- nci:1,
- sync_ie:4;
-} __attribute__((packed));
-
-/*
- * Chapter 9.1.5/9.1.6
- *
- * For 9.1.6 the chan_desc has the meaning of 10.5.2.5a
- */
-struct gsm48_chan_mode_modify {
- struct gsm48_chan_desc chan_desc;
- uint8_t mode;
-} __attribute__ ((packed));
-
-enum gsm48_chan_mode {
- GSM48_CMODE_SIGN = 0x00,
- GSM48_CMODE_SPEECH_V1 = 0x01,
- GSM48_CMODE_SPEECH_EFR = 0x21,
- GSM48_CMODE_SPEECH_AMR = 0x41,
- GSM48_CMODE_DATA_14k5 = 0x0f,
- GSM48_CMODE_DATA_12k0 = 0x03,
- GSM48_CMODE_DATA_6k0 = 0x0b,
- GSM48_CMODE_DATA_3k6 = 0x23,
-};
-
-/* Chapter 9.1.2 */
-struct gsm48_ass_cmd {
- /* Semantic is from 10.5.2.5a */
- struct gsm48_chan_desc chan_desc;
- uint8_t power_command;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Chapter 9.1.13 */
-struct gsm48_frq_redef {
- /* Semantic is from 10.5.2.5a */
- struct gsm48_chan_desc chan_desc;
- uint8_t mob_alloc_len;
- uint8_t mob_alloc[0];
-} __attribute__((packed));
-
-/* Chapter 10.5.2.2 */
-struct gsm48_cell_desc {
- uint8_t bcc:3,
- ncc:3,
- arfcn_hi:2;
- uint8_t arfcn_lo;
-} __attribute__((packed));
-
-/* Chapter 9.1.15 */
-struct gsm48_ho_cmd {
- struct gsm48_cell_desc cell_desc;
- struct gsm48_chan_desc chan_desc;
- uint8_t ho_ref;
- uint8_t power_command;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Chapter 9.1.18 */
-struct gsm48_imm_ass {
- uint8_t l2_plen;
- uint8_t proto_discr;
- uint8_t msg_type;
- uint8_t page_mode;
- struct gsm48_chan_desc chan_desc;
- struct gsm48_req_ref req_ref;
- uint8_t timing_advance;
- uint8_t mob_alloc_len;
- uint8_t mob_alloc[0];
-} __attribute__ ((packed));
-
-/* Chapter 9.1.25 */
-struct gsm48_pag_resp {
- uint8_t spare:4,
- key_seq:4;
- uint32_t classmark2;
- uint8_t mi_len;
- uint8_t mi[0];
-} __attribute__ ((packed));
-
-/* Chapter 10.5.1.3 */
-struct gsm48_loc_area_id {
- uint8_t digits[3]; /* BCD! */
- uint16_t lac;
-} __attribute__ ((packed));
-
-/* Section 9.2.2 */
-struct gsm48_auth_req {
- uint8_t key_seq:4,
- spare:4;
- uint8_t rand[16];
-} __attribute__ ((packed));
-
-/* Section 9.2.3 */
-struct gsm48_auth_resp {
- uint8_t sres[4];
-} __attribute__ ((packed));
-
-/* Section 9.2.15 */
-struct gsm48_loc_upd_req {
- uint8_t type:4,
- key_seq:4;
- struct gsm48_loc_area_id lai;
- struct gsm48_classmark1 classmark1;
- uint8_t mi_len;
- uint8_t mi[0];
-} __attribute__ ((packed));
-
-/* Section 10.1 */
-struct gsm48_hdr {
- uint8_t proto_discr;
- uint8_t msg_type;
- uint8_t data[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.3x System information Type header */
-struct gsm48_system_information_type_header {
- uint8_t l2_plen;
- uint8_t rr_protocol_discriminator :4,
- skip_indicator:4;
- uint8_t system_information;
-} __attribute__ ((packed));
-
-/* Section 10.5.2.4 Cell Selection Parameters */
-struct gsm48_cell_sel_par {
- uint8_t ms_txpwr_max_ccch:5, /* GSM 05.08 MS-TXPWR-MAX-CCCH */
- cell_resel_hyst:3; /* GSM 05.08 CELL-RESELECT-HYSTERESIS */
- uint8_t rxlev_acc_min:6, /* GSM 05.08 RXLEV-ACCESS-MIN */
- neci:1,
- acs:1;
-} __attribute__ ((packed));
-
-/* Section 10.5.2.11 Control Channel Description , Figure 10.5.33 */
-struct gsm48_control_channel_descr {
- uint8_t ccch_conf :3,
- bs_ag_blks_res :3,
- att :1,
- spare1 :1;
- uint8_t bs_pa_mfrms : 3,
- spare2 :5;
- uint8_t t3212;
-} __attribute__ ((packed));
-
-struct gsm48_cell_options {
- uint8_t radio_link_timeout:4,
- dtx:2,
- pwrc:1,
- spare:1;
-} __attribute__ ((packed));
-
-/* Section 9.2.9 CM service request */
-struct gsm48_service_request {
- uint8_t cm_service_type : 4,
- cipher_key_seq : 4;
- /* length + 3 bytes */
- uint32_t classmark;
- uint8_t mi_len;
- uint8_t mi[0];
- /* optional priority level */
-} __attribute__ ((packed));
-
-/* Section 9.1.31 System information Type 1 */
-struct gsm48_system_information_type_1 {
- struct gsm48_system_information_type_header header;
- uint8_t cell_channel_description[16];
- struct gsm48_rach_control rach_control;
- uint8_t rest_octets[0]; /* NCH position on the CCCH */
-} __attribute__ ((packed));
-
-/* Section 9.1.32 System information Type 2 */
-struct gsm48_system_information_type_2 {
- struct gsm48_system_information_type_header header;
- uint8_t bcch_frequency_list[16];
- uint8_t ncc_permitted;
- struct gsm48_rach_control rach_control;
-} __attribute__ ((packed));
-
-/* Section 9.1.33 System information Type 2bis */
-struct gsm48_system_information_type_2bis {
- struct gsm48_system_information_type_header header;
- uint8_t bcch_frequency_list[16];
- struct gsm48_rach_control rach_control;
- uint8_t rest_octets[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.34 System information Type 2ter */
-struct gsm48_system_information_type_2ter {
- struct gsm48_system_information_type_header header;
- uint8_t ext_bcch_frequency_list[16];
- uint8_t rest_octets[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.35 System information Type 3 */
-struct gsm48_system_information_type_3 {
- struct gsm48_system_information_type_header header;
- uint16_t cell_identity;
- struct gsm48_loc_area_id lai;
- struct gsm48_control_channel_descr control_channel_desc;
- struct gsm48_cell_options cell_options;
- struct gsm48_cell_sel_par cell_sel_par;
- struct gsm48_rach_control rach_control;
- uint8_t rest_octets[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.36 System information Type 4 */
-struct gsm48_system_information_type_4 {
- struct gsm48_system_information_type_header header;
- struct gsm48_loc_area_id lai;
- struct gsm48_cell_sel_par cell_sel_par;
- struct gsm48_rach_control rach_control;
- /* optional CBCH conditional CBCH... followed by
- mandantory SI 4 Reset Octets
- */
- uint8_t data[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.37 System information Type 5 */
-struct gsm48_system_information_type_5 {
- uint8_t rr_protocol_discriminator :4,
- skip_indicator:4;
- uint8_t system_information;
- uint8_t bcch_frequency_list[16];
-} __attribute__ ((packed));
-
-/* Section 9.1.38 System information Type 5bis */
-struct gsm48_system_information_type_5bis {
- uint8_t rr_protocol_discriminator :4,
- skip_indicator:4;
- uint8_t system_information;
- uint8_t bcch_frequency_list[16];
-} __attribute__ ((packed));
-
-/* Section 9.1.39 System information Type 5ter */
-struct gsm48_system_information_type_5ter {
- uint8_t rr_protocol_discriminator :4,
- skip_indicator:4;
- uint8_t system_information;
- uint8_t bcch_frequency_list[16];
-} __attribute__ ((packed));
-
-/* Section 9.1.40 System information Type 6 */
-struct gsm48_system_information_type_6 {
- uint8_t rr_protocol_discriminator :4,
- skip_indicator:4;
- uint8_t system_information;
- uint16_t cell_identity;
- struct gsm48_loc_area_id lai;
- struct gsm48_cell_options cell_options;
- uint8_t ncc_permitted;
- uint8_t rest_octets[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.43a System Information type 13 */
-struct gsm48_system_information_type_13 {
- struct gsm48_system_information_type_header header;
- uint8_t rest_octets[0];
-} __attribute__ ((packed));
-
-/* Section 9.2.12 IMSI Detach Indication */
-struct gsm48_imsi_detach_ind {
- struct gsm48_classmark1 classmark1;
- uint8_t mi_len;
- uint8_t mi[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.1 */
-struct gsm48_add_ass {
- /* Semantic is from 10.5.2.5 */
- struct gsm48_chan_desc chan_desc;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Section 9.1.3 */
-struct gsm48_ass_cpl {
- uint8_t rr_cause;
-} __attribute__((packed));
-
-/* Section 9.1.4 */
-struct gsm48_ass_fail {
- uint8_t rr_cause;
-} __attribute__((packed));
-
-/* Section 9.1.3 */
-struct gsm48_ho_cpl {
- uint8_t rr_cause;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Section 9.1.4 */
-struct gsm48_ho_fail {
- uint8_t rr_cause;
-} __attribute__((packed));
-
-/* Section 9.1.7 */
-struct gsm48_chan_rel {
- uint8_t rr_cause;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Section 9.1.9 */
-struct gsm48_cip_mode_cmd {
- uint8_t sc:1,
- alg_id:3,
- cr:1,
- spare:3;
-} __attribute__((packed));
-
-/* Section 9.1.11 */
-struct gsm48_cm_change {
- uint8_t cm2_len;
- struct gsm48_classmark2 cm2;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Section 9.1.19 */
-struct gsm48_imm_ass_ext {
- uint8_t l2_plen;
- uint8_t proto_discr;
- uint8_t msg_type;
- uint8_t page_mode;
- struct gsm48_chan_desc chan_desc1;
- struct gsm48_req_ref req_ref1;
- uint8_t timing_advance1;
- struct gsm48_chan_desc chan_desc2;
- struct gsm48_req_ref req_ref2;
- uint8_t timing_advance2;
- uint8_t mob_alloc_len;
- uint8_t mob_alloc[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.20 */
-struct gsm48_imm_ass_rej {
- uint8_t l2_plen;
- uint8_t proto_discr;
- uint8_t msg_type;
- uint8_t page_mode;
- struct gsm48_req_ref req_ref1;
- uint8_t wait_ind1;
- struct gsm48_req_ref req_ref2;
- uint8_t wait_ind2;
- struct gsm48_req_ref req_ref3;
- uint8_t wait_ind3;
- struct gsm48_req_ref req_ref4;
- uint8_t wait_ind4;
- uint8_t rest[0];
-} __attribute__ ((packed));
-
-/* Section 9.1.22 */
-struct gsm48_paging1 {
- uint8_t l2_plen;
- uint8_t proto_discr;
- uint8_t msg_type;
- uint8_t pag_mode:2,
- spare:2,
- cneed1:2,
- cneed2:2;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Section 9.1.23 */
-struct gsm48_paging2 {
- uint8_t l2_plen;
- uint8_t proto_discr;
- uint8_t msg_type;
- uint8_t pag_mode:2,
- spare:2,
- cneed1:2,
- cneed2:2;
- uint32_t tmsi1;
- uint32_t tmsi2;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Section 9.1.24 */
-struct gsm48_paging3 {
- uint8_t l2_plen;
- uint8_t proto_discr;
- uint8_t msg_type;
- uint8_t pag_mode:2,
- spare:2,
- cneed1:2,
- cneed2:2;
- uint32_t tmsi1;
- uint32_t tmsi2;
- uint32_t tmsi3;
- uint32_t tmsi4;
- uint8_t cneed3:2,
- cneed4:2,
- spare2:4;
- uint8_t rest[0];
-} __attribute__((packed));
-
-/* Section 9.1.25 */
-struct gsm48_pag_rsp {
- uint8_t key_seq:3,
- spare:5;
- uint8_t cm2_len;
- struct gsm48_classmark2 cm2;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* Section 9.1.29 */
-struct gsm48_rr_status {
- uint8_t rr_cause;
-} __attribute__((packed));
-
-/* Section 10.2 + GSM 04.07 12.2.3.1.1 */
-#define GSM48_PDISC_GROUP_CC 0x00
-#define GSM48_PDISC_BCAST_CC 0x01
-#define GSM48_PDISC_PDSS1 0x02
-#define GSM48_PDISC_CC 0x03
-#define GSM48_PDISC_PDSS2 0x04
-#define GSM48_PDISC_MM 0x05
-#define GSM48_PDISC_RR 0x06
-#define GSM48_PDISC_MM_GPRS 0x08
-#define GSM48_PDISC_SMS 0x09
-#define GSM48_PDISC_SM_GPRS 0x0a
-#define GSM48_PDISC_NC_SS 0x0b
-#define GSM48_PDISC_LOC 0x0c
-#define GSM48_PDISC_MASK 0x0f
-#define GSM48_PDISC_USSD 0x11
-
-/* Section 10.4 */
-#define GSM48_MT_RR_INIT_REQ 0x3c
-#define GSM48_MT_RR_ADD_ASS 0x3b
-#define GSM48_MT_RR_IMM_ASS 0x3f
-#define GSM48_MT_RR_IMM_ASS_EXT 0x39
-#define GSM48_MT_RR_IMM_ASS_REJ 0x3a
-
-#define GSM48_MT_RR_CIPH_M_CMD 0x35
-#define GSM48_MT_RR_CIPH_M_COMPL 0x32
-
-#define GSM48_MT_RR_CFG_CHG_CMD 0x30
-#define GSM48_MT_RR_CFG_CHG_ACK 0x31
-#define GSM48_MT_RR_CFG_CHG_REJ 0x33
-
-#define GSM48_MT_RR_ASS_CMD 0x2e
-#define GSM48_MT_RR_ASS_COMPL 0x29
-#define GSM48_MT_RR_ASS_FAIL 0x2f
-#define GSM48_MT_RR_HANDO_CMD 0x2b
-#define GSM48_MT_RR_HANDO_COMPL 0x2c
-#define GSM48_MT_RR_HANDO_FAIL 0x28
-#define GSM48_MT_RR_HANDO_INFO 0x2d
-
-#define GSM48_MT_RR_CELL_CHG_ORDER 0x08
-#define GSM48_MT_RR_PDCH_ASS_CMD 0x23
-
-#define GSM48_MT_RR_CHAN_REL 0x0d
-#define GSM48_MT_RR_PART_REL 0x0a
-#define GSM48_MT_RR_PART_REL_COMP 0x0f
-
-#define GSM48_MT_RR_PAG_REQ_1 0x21
-#define GSM48_MT_RR_PAG_REQ_2 0x22
-#define GSM48_MT_RR_PAG_REQ_3 0x24
-#define GSM48_MT_RR_PAG_RESP 0x27
-#define GSM48_MT_RR_NOTIF_NCH 0x20
-#define GSM48_MT_RR_NOTIF_FACCH 0x25
-#define GSM48_MT_RR_NOTIF_RESP 0x26
-
-#define GSM48_MT_RR_SYSINFO_8 0x18
-#define GSM48_MT_RR_SYSINFO_1 0x19
-#define GSM48_MT_RR_SYSINFO_2 0x1a
-#define GSM48_MT_RR_SYSINFO_3 0x1b
-#define GSM48_MT_RR_SYSINFO_4 0x1c
-#define GSM48_MT_RR_SYSINFO_5 0x1d
-#define GSM48_MT_RR_SYSINFO_6 0x1e
-#define GSM48_MT_RR_SYSINFO_7 0x1f
-
-#define GSM48_MT_RR_SYSINFO_2bis 0x02
-#define GSM48_MT_RR_SYSINFO_2ter 0x03
-#define GSM48_MT_RR_SYSINFO_5bis 0x05
-#define GSM48_MT_RR_SYSINFO_5ter 0x06
-#define GSM48_MT_RR_SYSINFO_9 0x04
-#define GSM48_MT_RR_SYSINFO_13 0x00
-
-#define GSM48_MT_RR_SYSINFO_16 0x3d
-#define GSM48_MT_RR_SYSINFO_17 0x3e
-
-#define GSM48_MT_RR_CHAN_MODE_MODIF 0x10
-#define GSM48_MT_RR_STATUS 0x12
-#define GSM48_MT_RR_CHAN_MODE_MODIF_ACK 0x17
-#define GSM48_MT_RR_FREQ_REDEF 0x14
-#define GSM48_MT_RR_MEAS_REP 0x15
-#define GSM48_MT_RR_CLSM_CHG 0x16
-#define GSM48_MT_RR_CLSM_ENQ 0x13
-#define GSM48_MT_RR_EXT_MEAS_REP 0x36
-#define GSM48_MT_RR_EXT_MEAS_REP_ORD 0x37
-#define GSM48_MT_RR_GPRS_SUSP_REQ 0x34
-
-#define GSM48_MT_RR_VGCS_UPL_GRANT 0x08
-#define GSM48_MT_RR_UPLINK_RELEASE 0x0e
-#define GSM48_MT_RR_UPLINK_FREE 0x0c
-#define GSM48_MT_RR_UPLINK_BUSY 0x2a
-#define GSM48_MT_RR_TALKER_IND 0x11
-
-#define GSM48_MT_RR_APP_INFO 0x38
-
-/* Table 10.2/3GPP TS 04.08 */
-#define GSM48_MT_MM_IMSI_DETACH_IND 0x01
-#define GSM48_MT_MM_LOC_UPD_ACCEPT 0x02
-#define GSM48_MT_MM_LOC_UPD_REJECT 0x04
-#define GSM48_MT_MM_LOC_UPD_REQUEST 0x08
-
-#define GSM48_MT_MM_AUTH_REJ 0x11
-#define GSM48_MT_MM_AUTH_REQ 0x12
-#define GSM48_MT_MM_AUTH_RESP 0x14
-#define GSM48_MT_MM_ID_REQ 0x18
-#define GSM48_MT_MM_ID_RESP 0x19
-#define GSM48_MT_MM_TMSI_REALL_CMD 0x1a
-#define GSM48_MT_MM_TMSI_REALL_COMPL 0x1b
-
-#define GSM48_MT_MM_CM_SERV_ACC 0x21
-#define GSM48_MT_MM_CM_SERV_REJ 0x22
-#define GSM48_MT_MM_CM_SERV_ABORT 0x23
-#define GSM48_MT_MM_CM_SERV_REQ 0x24
-#define GSM48_MT_MM_CM_SERV_PROMPT 0x25
-#define GSM48_MT_MM_CM_REEST_REQ 0x28
-#define GSM48_MT_MM_ABORT 0x29
-
-#define GSM48_MT_MM_NULL 0x30
-#define GSM48_MT_MM_STATUS 0x31
-#define GSM48_MT_MM_INFO 0x32
-
-/* Table 10.3/3GPP TS 04.08 */
-#define GSM48_MT_CC_ALERTING 0x01
-#define GSM48_MT_CC_CALL_CONF 0x08
-#define GSM48_MT_CC_CALL_PROC 0x02
-#define GSM48_MT_CC_CONNECT 0x07
-#define GSM48_MT_CC_CONNECT_ACK 0x0f
-#define GSM48_MT_CC_EMERG_SETUP 0x0e
-#define GSM48_MT_CC_PROGRESS 0x03
-#define GSM48_MT_CC_ESTAB 0x04
-#define GSM48_MT_CC_ESTAB_CONF 0x06
-#define GSM48_MT_CC_RECALL 0x0b
-#define GSM48_MT_CC_START_CC 0x09
-#define GSM48_MT_CC_SETUP 0x05
-
-#define GSM48_MT_CC_MODIFY 0x17
-#define GSM48_MT_CC_MODIFY_COMPL 0x1f
-#define GSM48_MT_CC_MODIFY_REJECT 0x13
-#define GSM48_MT_CC_USER_INFO 0x10
-#define GSM48_MT_CC_HOLD 0x18
-#define GSM48_MT_CC_HOLD_ACK 0x19
-#define GSM48_MT_CC_HOLD_REJ 0x1a
-#define GSM48_MT_CC_RETR 0x1c
-#define GSM48_MT_CC_RETR_ACK 0x1d
-#define GSM48_MT_CC_RETR_REJ 0x1e
-
-#define GSM48_MT_CC_DISCONNECT 0x25
-#define GSM48_MT_CC_RELEASE 0x2d
-#define GSM48_MT_CC_RELEASE_COMPL 0x2a
-
-#define GSM48_MT_CC_CONG_CTRL 0x39
-#define GSM48_MT_CC_NOTIFY 0x3e
-#define GSM48_MT_CC_STATUS 0x3d
-#define GSM48_MT_CC_STATUS_ENQ 0x34
-#define GSM48_MT_CC_START_DTMF 0x35
-#define GSM48_MT_CC_STOP_DTMF 0x31
-#define GSM48_MT_CC_STOP_DTMF_ACK 0x32
-#define GSM48_MT_CC_START_DTMF_ACK 0x36
-#define GSM48_MT_CC_START_DTMF_REJ 0x37
-#define GSM48_MT_CC_FACILITY 0x3a
-
-/* FIXME: Table 10.4 / 10.4a (GPRS) */
-
-/* Section 10.5.3.3 CM service type */
-#define GSM48_CMSERV_MO_CALL_PACKET 1
-#define GSM48_CMSERV_EMERGENCY 2
-#define GSM48_CMSERV_SMS 4
-#define GSM48_CMSERV_SUP_SERV 8
-#define GSM48_CMSERV_VGCS 9
-#define GSM48_CMSERV_VBS 10
-#define GSM48_CMSERV_LOC_SERV 11
-
-/* Section 10.5.2.26, Table 10.5.64 */
-#define GSM48_PM_MASK 0x03
-#define GSM48_PM_NORMAL 0x00
-#define GSM48_PM_EXTENDED 0x01
-#define GSM48_PM_REORG 0x02
-#define GSM48_PM_SAME 0x03
-
-/* Chapter 10.5.3.5 / Table 10.5.93 */
-#define GSM48_LUPD_NORMAL 0x0
-#define GSM48_LUPD_PERIODIC 0x1
-#define GSM48_LUPD_IMSI_ATT 0x2
-#define GSM48_LUPD_RESERVED 0x3
-
-/* Table 10.5.4 */
-#define GSM_MI_TYPE_MASK 0x07
-#define GSM_MI_TYPE_NONE 0x00
-#define GSM_MI_TYPE_IMSI 0x01
-#define GSM_MI_TYPE_IMEI 0x02
-#define GSM_MI_TYPE_IMEISV 0x03
-#define GSM_MI_TYPE_TMSI 0x04
-#define GSM_MI_ODD 0x08
-
-#define GSM48_IE_MOBILE_ID 0x17 /* 10.5.1.4 */
-#define GSM48_IE_NAME_LONG 0x43 /* 10.5.3.5a */
-#define GSM48_IE_NAME_SHORT 0x45 /* 10.5.3.5a */
-#define GSM48_IE_UTC 0x46 /* 10.5.3.8 */
-#define GSM48_IE_NET_TIME_TZ 0x47 /* 10.5.3.9 */
-#define GSM48_IE_LSA_IDENT 0x48 /* 10.5.3.11 */
-
-#define GSM48_IE_BEARER_CAP 0x04 /* 10.5.4.5 */
-#define GSM48_IE_CAUSE 0x08 /* 10.5.4.11 */
-#define GSM48_IE_CC_CAP 0x15 /* 10.5.4.5a */
-#define GSM48_IE_ALERT 0x19 /* 10.5.4.26 */
-#define GSM48_IE_FACILITY 0x1c /* 10.5.4.15 */
-#define GSM48_IE_PROGR_IND 0x1e /* 10.5.4.21 */
-#define GSM48_IE_AUX_STATUS 0x24 /* 10.5.4.4 */
-#define GSM48_IE_NOTIFY 0x27 /* 10.5.4.20 */
-#define GSM48_IE_KPD_FACILITY 0x2c /* 10.5.4.17 */
-#define GSM48_IE_SIGNAL 0x34 /* 10.5.4.23 */
-#define GSM48_IE_CONN_BCD 0x4c /* 10.5.4.13 */
-#define GSM48_IE_CONN_SUB 0x4d /* 10.5.4.14 */
-#define GSM48_IE_CALLING_BCD 0x5c /* 10.5.4.9 */
-#define GSM48_IE_CALLING_SUB 0x5d /* 10.5.4.10 */
-#define GSM48_IE_CALLED_BCD 0x5e /* 10.5.4.7 */
-#define GSM48_IE_CALLED_SUB 0x6d /* 10.5.4.8 */
-#define GSM48_IE_REDIR_BCD 0x74 /* 10.5.4.21a */
-#define GSM48_IE_REDIR_SUB 0x75 /* 10.5.4.21b */
-#define GSM48_IE_LOWL_COMPAT 0x7c /* 10.5.4.18 */
-#define GSM48_IE_HIGHL_COMPAT 0x7d /* 10.5.4.16 */
-#define GSM48_IE_USER_USER 0x7e /* 10.5.4.25 */
-#define GSM48_IE_SS_VERS 0x7f /* 10.5.4.24 */
-#define GSM48_IE_MORE_DATA 0xa0 /* 10.5.4.19 */
-#define GSM48_IE_CLIR_SUPP 0xa1 /* 10.5.4.11a */
-#define GSM48_IE_CLIR_INVOC 0xa2 /* 10.5.4.11b */
-#define GSM48_IE_REV_C_SETUP 0xa3 /* 10.5.4.22a */
-#define GSM48_IE_REPEAT_CIR 0xd1 /* 10.5.4.22 */
-#define GSM48_IE_REPEAT_SEQ 0xd3 /* 10.5.4.22 */
-
-/* Section 10.5.4.11 / Table 10.5.122 */
-#define GSM48_CAUSE_CS_GSM 0x60
-
-/* Section 9.1.2 / Table 9.3 */
-/* RR elements */
-#define GSM48_IE_VGCS_TARGET 0x01
-//#define GSM48_IE_VGCS_T_MODE_I 0x01
-#define GSM48_IE_FRQSHORT_AFTER 0x02
-#define GSM48_IE_MUL_RATE_CFG 0x03 /* 10.5.2.21aa */
-#define GSM48_IE_FREQ_L_AFTER 0x05
-#define GSM48_IE_MSLOT_DESC 0x10
-#define GSM48_IE_CHANMODE_2 0x11
-#define GSM48_IE_FRQSHORT_BEFORE 0x12
-//#define GSM48_IE_FRQSHORT_BEFOR 0x12
-#define GSM48_IE_CHANMODE_3 0x13
-#define GSM48_IE_CHANMODE_4 0x14
-#define GSM48_IE_CHANMODE_5 0x15
-#define GSM48_IE_CHANMODE_6 0x16
-#define GSM48_IE_CHANMODE_7 0x17
-#define GSM48_IE_CHANMODE_8 0x18
-#define GSM48_IE_CHANDESC_2 0x64
-#define GSM48_IE_MA_AFTER 0x72
-#define GSM48_IE_START_TIME 0x7c
-#define GSM48_IE_FREQ_L_BEFORE 0x19
-//#define GSM48_IE_FRQLIST_BEFORE 0x19
-#define GSM48_IE_CH_DESC_1_BEFORE 0x1c
-//#define GSM48_IE_CHDES_1_BEFORE 0x1c
-#define GSM48_IE_CH_DESC_2_BEFORE 0x1d
-//#define GSM48_IE_CHDES_2_BEFORE 0x1d
-#define GSM48_IE_F_CH_SEQ_BEFORE 0x1e
-//#define GSM48_IE_FRQSEQ_BEFORE 0x1e
-#define GSM48_IE_CLASSMARK3 0x20
-#define GSM48_IE_MA_BEFORE 0x21
-#define GSM48_IE_RR_PACKET_UL 0x22
-#define GSM48_IE_RR_PACKET_DL 0x23
-#define GSM48_IE_CELL_CH_DESC 0x62
-#define GSM48_IE_CHANMODE_1 0x63
-#define GSM48_IE_CHDES_2_AFTER 0x64
-#define GSM48_IE_MODE_SEC_CH 0x66
-#define GSM48_IE_F_CH_SEQ_AFTER 0x69
-#define GSM48_IE_MA_AFTER 0x72
-#define GSM48_IE_BA_RANGE 0x73
-#define GSM48_IE_GROUP_CHDES 0x74
-#define GSM48_IE_BA_LIST_PREF 0x75
-#define GSM48_IE_MOB_OVSERV_DIF 0x77
-#define GSM48_IE_REALTIME_DIFF 0x7b
-#define GSM48_IE_START_TIME 0x7c
-#define GSM48_IE_TIMING_ADVANCE 0x7d
-#define GSM48_IE_GROUP_CIP_SEQ 0x80
-#define GSM48_IE_CIP_MODE_SET 0x90
-#define GSM48_IE_GPRS_RESUMPT 0xc0
-#define GSM48_IE_SYNC_IND 0xd0
-/* System Information 4 (types are equal IEs above) */
-#define GSM48_IE_CBCH_CHAN_DESC 0x64
-#define GSM48_IE_CBCH_MOB_AL 0x72
-
-/* Additional MM elements */
-#define GSM48_IE_LOCATION_AREA 0x13
-#define GSM48_IE_PRIORITY_LEV 0x80
-#define GSM48_IE_FOLLOW_ON_PROC 0xa1
-#define GSM48_IE_CTS_PERMISSION 0xa2
-
-/* Section 10.5.4.23 / Table 10.5.130 */
-enum gsm48_signal_val {
- GSM48_SIGNAL_DIALTONE = 0x00,
- GSM48_SIGNAL_RINGBACK = 0x01,
- GSM48_SIGNAL_INTERCEPT = 0x02,
- GSM48_SIGNAL_NET_CONG = 0x03,
- GSM48_SIGNAL_BUSY = 0x04,
- GSM48_SIGNAL_CONFIRM = 0x05,
- GSM48_SIGNAL_ANSWER = 0x06,
- GSM48_SIGNAL_CALL_WAIT = 0x07,
- GSM48_SIGNAL_OFF_HOOK = 0x08,
- GSM48_SIGNAL_OFF = 0x3f,
- GSM48_SIGNAL_ALERT_OFF = 0x4f,
-};
-
-enum gsm48_cause_loc {
- GSM48_CAUSE_LOC_USER = 0x00,
- GSM48_CAUSE_LOC_PRN_S_LU = 0x01,
- GSM48_CAUSE_LOC_PUN_S_LU = 0x02,
- GSM48_CAUSE_LOC_TRANS_NET = 0x03,
- GSM48_CAUSE_LOC_PUN_S_RU = 0x04,
- GSM48_CAUSE_LOC_PRN_S_RU = 0x05,
- /* not defined */
- GSM48_CAUSE_LOC_INN_NET = 0x07,
- GSM48_CAUSE_LOC_NET_BEYOND = 0x0a,
-};
-
-/* Section 10.5.2.31 RR Cause / Table 10.5.70 */
-enum gsm48_rr_cause {
- GSM48_RR_CAUSE_NORMAL = 0x00,
- GSM48_RR_CAUSE_ABNORMAL_UNSPEC = 0x01,
- GSM48_RR_CAUSE_ABNORMAL_UNACCT = 0x02,
- GSM48_RR_CAUSE_ABNORMAL_TIMER = 0x03,
- GSM48_RR_CAUSE_ABNORMAL_NOACT = 0x04,
- GSM48_RR_CAUSE_PREMPTIVE_REL = 0x05,
- GSM48_RR_CAUSE_HNDOVER_IMP = 0x06,
- GSM48_RR_CAUSE_CHAN_MODE_UNACCT = 0x07,
- GSM48_RR_CAUSE_FREQ_NOT_IMPL = 0x08,
- GSM48_RR_CAUSE_CALL_CLEARED = 0x41,
- GSM48_RR_CAUSE_SEMANT_INCORR = 0x5f,
- GSM48_RR_CAUSE_INVALID_MAND_INF = 0x60,
- GSM48_RR_CAUSE_MSG_TYPE_N = 0x61,
- GSM48_RR_CAUSE_MSG_TYPE_N_COMPAT= 0x62,
- GSM48_RR_CAUSE_COND_IE_ERROR = 0x64,
- GSM48_RR_CAUSE_NO_CELL_ALLOC_A = 0x65,
- GSM48_RR_CAUSE_PROT_ERROR_UNSPC = 0x6f,
-};
-
-/* Section 10.5.4.11 CC Cause / Table 10.5.123 */
-enum gsm48_cc_cause {
- GSM48_CC_CAUSE_UNASSIGNED_NR = 1,
- GSM48_CC_CAUSE_NO_ROUTE = 3,
- GSM48_CC_CAUSE_CHAN_UNACCEPT = 6,
- GSM48_CC_CAUSE_OP_DET_BARRING = 8,
- GSM48_CC_CAUSE_NORM_CALL_CLEAR = 16,
- GSM48_CC_CAUSE_USER_BUSY = 17,
- GSM48_CC_CAUSE_USER_NOTRESPOND = 18,
- GSM48_CC_CAUSE_USER_ALERTING_NA = 19,
- GSM48_CC_CAUSE_CALL_REJECTED = 21,
- GSM48_CC_CAUSE_NUMBER_CHANGED = 22,
- GSM48_CC_CAUSE_PRE_EMPTION = 25,
- GSM48_CC_CAUSE_NONSE_USER_CLR = 26,
- GSM48_CC_CAUSE_DEST_OOO = 27,
- GSM48_CC_CAUSE_INV_NR_FORMAT = 28,
- GSM48_CC_CAUSE_FACILITY_REJ = 29,
- GSM48_CC_CAUSE_RESP_STATUS_INQ = 30,
- GSM48_CC_CAUSE_NORMAL_UNSPEC = 31,
- GSM48_CC_CAUSE_NO_CIRCUIT_CHAN = 34,
- GSM48_CC_CAUSE_NETWORK_OOO = 38,
- GSM48_CC_CAUSE_TEMP_FAILURE = 41,
- GSM48_CC_CAUSE_SWITCH_CONG = 42,
- GSM48_CC_CAUSE_ACC_INF_DISCARD = 43,
- GSM48_CC_CAUSE_REQ_CHAN_UNAVAIL = 44,
- GSM48_CC_CAUSE_RESOURCE_UNAVAIL = 47,
- GSM48_CC_CAUSE_QOS_UNAVAIL = 49,
- GSM48_CC_CAUSE_REQ_FAC_NOT_SUBSC= 50,
- GSM48_CC_CAUSE_INC_BARRED_CUG = 55,
- GSM48_CC_CAUSE_BEARER_CAP_UNAUTH= 57,
- GSM48_CC_CAUSE_BEARER_CA_UNAVAIL= 58,
- GSM48_CC_CAUSE_SERV_OPT_UNAVAIL = 63,
- GSM48_CC_CAUSE_BEARERSERV_UNIMPL= 65,
- GSM48_CC_CAUSE_ACM_GE_ACM_MAX = 68,
- GSM48_CC_CAUSE_REQ_FAC_NOTIMPL = 69,
- GSM48_CC_CAUSE_RESTR_BCAP_AVAIL = 70,
- GSM48_CC_CAUSE_SERV_OPT_UNIMPL = 79,
- GSM48_CC_CAUSE_INVAL_TRANS_ID = 81,
- GSM48_CC_CAUSE_USER_NOT_IN_CUG = 87,
- GSM48_CC_CAUSE_INCOMPAT_DEST = 88,
- GSM48_CC_CAUSE_INVAL_TRANS_NET = 91,
- GSM48_CC_CAUSE_SEMANTIC_INCORR = 95,
- GSM48_CC_CAUSE_INVAL_MAND_INF = 96,
- GSM48_CC_CAUSE_MSGTYPE_NOTEXIST = 97,
- GSM48_CC_CAUSE_MSGTYPE_INCOMPAT = 98,
- GSM48_CC_CAUSE_IE_NOTEXIST = 99,
- GSM48_CC_CAUSE_COND_IE_ERR = 100,
- GSM48_CC_CAUSE_MSG_INCOMP_STATE = 101,
- GSM48_CC_CAUSE_RECOVERY_TIMER = 102,
- GSM48_CC_CAUSE_PROTO_ERR = 111,
- GSM48_CC_CAUSE_INTERWORKING = 127,
-};
-
-/* Annex G, GSM specific cause values for mobility management */
-enum gsm48_reject_value {
- GSM48_REJECT_IMSI_UNKNOWN_IN_HLR = 2,
- GSM48_REJECT_ILLEGAL_MS = 3,
- GSM48_REJECT_IMSI_UNKNOWN_IN_VLR = 4,
- GSM48_REJECT_IMEI_NOT_ACCEPTED = 5,
- GSM48_REJECT_ILLEGAL_ME = 6,
- GSM48_REJECT_PLMN_NOT_ALLOWED = 11,
- GSM48_REJECT_LOC_NOT_ALLOWED = 12,
- GSM48_REJECT_ROAMING_NOT_ALLOWED = 13,
- GSM48_REJECT_NETWORK_FAILURE = 17,
- GSM48_REJECT_CONGESTION = 22,
- GSM48_REJECT_SRV_OPT_NOT_SUPPORTED = 32,
- GSM48_REJECT_RQD_SRV_OPT_NOT_SUPPORTED = 33,
- GSM48_REJECT_SRV_OPT_TMP_OUT_OF_ORDER = 34,
- GSM48_REJECT_CALL_CAN_NOT_BE_IDENTIFIED = 38,
- GSM48_REJECT_INCORRECT_MESSAGE = 95,
- GSM48_REJECT_INVALID_MANDANTORY_INF = 96,
- GSM48_REJECT_MSG_TYPE_NOT_IMPLEMENTED = 97,
- GSM48_REJECT_MSG_TYPE_NOT_COMPATIBLE = 98,
- GSM48_REJECT_INF_ELEME_NOT_IMPLEMENTED = 99,
- GSM48_REJECT_CONDTIONAL_IE_ERROR = 100,
- GSM48_REJECT_MSG_NOT_COMPATIBLE = 101,
- GSM48_REJECT_PROTOCOL_ERROR = 111,
-
- /* according to G.6 Additional cause codes for GMM */
- GSM48_REJECT_GPRS_NOT_ALLOWED = 7,
- GSM48_REJECT_SERVICES_NOT_ALLOWED = 8,
- GSM48_REJECT_MS_IDENTITY_NOT_DERVIVABLE = 9,
- GSM48_REJECT_IMPLICITLY_DETACHED = 10,
- GSM48_REJECT_GPRS_NOT_ALLOWED_IN_PLMN = 14,
- GSM48_REJECT_MSC_TMP_NOT_REACHABLE = 16,
-};
-
-enum chreq_type {
- CHREQ_T_EMERG_CALL,
- CHREQ_T_CALL_REEST_TCH_F,
- CHREQ_T_CALL_REEST_TCH_H,
- CHREQ_T_CALL_REEST_TCH_H_DBL,
- CHREQ_T_SDCCH,
- CHREQ_T_TCH_F,
- CHREQ_T_VOICE_CALL_TCH_H,
- CHREQ_T_DATA_CALL_TCH_H,
- CHREQ_T_LOCATION_UPD,
- CHREQ_T_PAG_R_ANY_NECI0,
- CHREQ_T_PAG_R_ANY_NECI1,
- CHREQ_T_PAG_R_TCH_F,
- CHREQ_T_PAG_R_TCH_FH,
- CHREQ_T_LMU,
- CHREQ_T_RESERVED_SDCCH,
- CHREQ_T_RESERVED_IGNORE,
-};
-
-/* Chapter 11.3 */
-#define GSM48_T301 180, 0
-#define GSM48_T303 30, 0
-#define GSM48_T305 30, 0
-#define GSM48_T306 30, 0
-#define GSM48_T308 10, 0
-#define GSM48_T310 180, 0
-#define GSM48_T313 30, 0
-#define GSM48_T323 30, 0
-#define GSM48_T331 30, 0
-#define GSM48_T333 30, 0
-#define GSM48_T334 25, 0 /* min 15 */
-#define GSM48_T338 30, 0
-#define GSM48_T303_MS 30, 0
-#define GSM48_T305_MS 30, 0
-#define GSM48_T308_MS 30, 0
-#define GSM48_T310_MS 30, 0
-#define GSM48_T313_MS 30, 0
-#define GSM48_T323_MS 30, 0
-#define GSM48_T332_MS 30, 0
-#define GSM48_T335_MS 30, 0
-
-/* Chapter 5.1.2.2 */
-#define GSM_CSTATE_NULL 0
-#define GSM_CSTATE_INITIATED 1
-#define GSM_CSTATE_MM_CONNECTION_PEND 2 /* see 10.5.4.6 */
-#define GSM_CSTATE_MO_CALL_PROC 3
-#define GSM_CSTATE_CALL_DELIVERED 4
-#define GSM_CSTATE_CALL_PRESENT 6
-#define GSM_CSTATE_CALL_RECEIVED 7
-#define GSM_CSTATE_CONNECT_REQUEST 8
-#define GSM_CSTATE_MO_TERM_CALL_CONF 9
-#define GSM_CSTATE_ACTIVE 10
-#define GSM_CSTATE_DISCONNECT_REQ 12
-#define GSM_CSTATE_DISCONNECT_IND 12
-#define GSM_CSTATE_RELEASE_REQ 19
-#define GSM_CSTATE_MO_ORIG_MODIFY 26
-#define GSM_CSTATE_MO_TERM_MODIFY 27
-#define GSM_CSTATE_CONNECT_IND 28
-
-#define SBIT(a) (1 << a)
-#define ALL_STATES 0xffffffff
-
-/* Table 10.5.3/3GPP TS 04.08: Location Area Identification information element */
-#define GSM_LAC_RESERVED_DETACHED 0x0
-#define GSM_LAC_RESERVED_ALL_BTS 0xfffe
-
-/* GSM 04.08 Bearer Capability: Information Transfer Capability */
-enum gsm48_bcap_itcap {
- GSM48_BCAP_ITCAP_SPEECH = 0,
- GSM48_BCAP_ITCAP_UNR_DIG_INF = 1,
- GSM48_BCAP_ITCAP_3k1_AUDIO = 2,
- GSM48_BCAP_ITCAP_FAX_G3 = 3,
- GSM48_BCAP_ITCAP_OTHER = 5,
- GSM48_BCAP_ITCAP_RESERVED = 7,
-};
-
-/* GSM 04.08 Bearer Capability: Transfer Mode */
-enum gsm48_bcap_tmod {
- GSM48_BCAP_TMOD_CIRCUIT = 0,
- GSM48_BCAP_TMOD_PACKET = 1,
-};
-
-/* GSM 04.08 Bearer Capability: Coding Standard */
-enum gsm48_bcap_coding {
- GSM48_BCAP_CODING_GSM_STD = 0,
-};
-
-/* GSM 04.08 Bearer Capability: Radio Channel Requirements */
-enum gsm48_bcap_rrq {
- GSM48_BCAP_RRQ_FR_ONLY = 1,
- GSM48_BCAP_RRQ_DUAL_HR = 2,
- GSM48_BCAP_RRQ_DUAL_FR = 3,
-};
-
-/* GSM 04.08 Bearer Capability: Rate Adaption */
-enum gsm48_bcap_ra {
- GSM48_BCAP_RA_NONE = 0,
- GSM48_BCAP_RA_V110_X30 = 1,
- GSM48_BCAP_RA_X31 = 2,
- GSM48_BCAP_RA_OTHER = 3,
-};
-
-/* GSM 04.08 Bearer Capability: Signalling access protocol */
-enum gsm48_bcap_sig_access {
- GSM48_BCAP_SA_I440_I450 = 1,
- GSM48_BCAP_SA_X21 = 2,
- GSM48_BCAP_SA_X28_DP_IN = 3,
- GSM48_BCAP_SA_X28_DP_UN = 4,
- GSM48_BCAP_SA_X28_NDP = 5,
- GSM48_BCAP_SA_X32 = 6,
-};
-
-/* GSM 04.08 Bearer Capability: User Rate */
-enum gsm48_bcap_user_rate {
- GSM48_BCAP_UR_300 = 1,
- GSM48_BCAP_UR_1200 = 2,
- GSM48_BCAP_UR_2400 = 3,
- GSM48_BCAP_UR_4800 = 4,
- GSM48_BCAP_UR_9600 = 5,
- GSM48_BCAP_UR_12000 = 6,
- GSM48_BCAP_UR_1200_75 = 7,
-};
-
-/* GSM 04.08 Bearer Capability: Parity */
-enum gsm48_bcap_parity {
- GSM48_BCAP_PAR_ODD = 0,
- GSM48_BCAP_PAR_EVEN = 2,
- GSM48_BCAP_PAR_NONE = 3,
- GSM48_BCAP_PAR_ZERO = 4,
- GSM48_BCAP_PAR_ONE = 5,
-};
-
-/* GSM 04.08 Bearer Capability: Intermediate Rate */
-enum gsm48_bcap_interm_rate {
- GSM48_BCAP_IR_8k = 2,
- GSM48_BCAP_IR_16k = 3,
-};
-
-/* GSM 04.08 Bearer Capability: Transparency */
-enum gsm48_bcap_transp {
- GSM48_BCAP_TR_TRANSP = 0,
- GSM48_BCAP_TR_RLP = 1,
- GSM48_BCAP_TR_TR_PREF = 2,
- GSM48_BCAP_TR_RLP_PREF = 3,
-};
-
-/* GSM 04.08 Bearer Capability: Modem Type */
-enum gsm48_bcap_modem_type {
- GSM48_BCAP_MT_NONE = 0,
- GSM48_BCAP_MT_V21 = 1,
- GSM48_BCAP_MT_V22 = 2,
- GSM48_BCAP_MT_V22bis = 3,
- GSM48_BCAP_MT_V23 = 4,
- GSM48_BCAP_MT_V26ter = 5,
- GSM48_BCAP_MT_V32 = 6,
- GSM48_BCAP_MT_UNDEF = 7,
- GSM48_BCAP_MT_AUTO_1 = 8,
-};
-
-/* GSM 04.08 Bearer Capability: Speech Version Indication */
-enum gsm48_bcap_speech_ver {
- GSM48_BCAP_SV_FR = 0,
- GSM48_BCAP_SV_HR = 1,
- GSM48_BCAP_SV_EFR = 2,
- GSM48_BCAP_SV_AMR_F = 4,
- GSM48_BCAP_SV_AMR_H = 5,
-};
-
-#define GSM48_TMSI_LEN 5
-#define GSM48_MID_TMSI_LEN (GSM48_TMSI_LEN + 2)
-#define GSM48_MI_SIZE 32
-
-/* Chapter 10.4.4.15 */
-struct gsm48_ra_id {
- uint8_t digits[3]; /* MCC + MNC BCD digits */
- uint16_t lac; /* Location Area Code */
- uint8_t rac; /* Routing Area Code */
-} __attribute__ ((packed));
-
-#define GSM48_CELL_CHAN_DESC_SIZE 16
-
-#define GSM_MACBLOCK_LEN 23
-#define GSM_MACBLOCK_PADDING 0x2b
-
-#endif /* PROTO_GSM_04_08_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_11.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_11.h
deleted file mode 100644
index f37152fe..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_11.h
+++ /dev/null
@@ -1,190 +0,0 @@
-#ifndef PROTO_GSM_04_11_H
-#define PROTO_GSM_04_11_H
-
-#include <stdint.h>
-
-/* GSM TS 04.11 definitions */
-
-/* Chapter 5.2.3: SMC-CS states at the user/network side */
-enum gsm411_cp_state {
- GSM411_CPS_IDLE = 0,
- GSM411_CPS_MM_CONN_PENDING = 1, /* only MT ! */
- GSM411_CPS_WAIT_CP_ACK = 2,
- GSM411_CPS_MM_ESTABLISHED = 3,
-};
-
-/* Chapter 6.2.2: SMR states at the user/network side */
-enum gsm411_rp_state {
- GSM411_RPS_IDLE = 0,
- GSM411_RPS_WAIT_FOR_RP_ACK = 1,
- GSM411_RPS_WAIT_TO_TX_RP_ACK = 3,
- GSM411_RPS_WAIT_FOR_RETRANS_T = 4,
-};
-
-/* Chapter 8.1.2 (refers to GSM 04.07 Chapter 11.2.3.1.1 */
-#define GSM411_PDISC_SMS 0x09
-
-/* Chapter 8.1.3 */
-#define GSM411_MT_CP_DATA 0x01
-#define GSM411_MT_CP_ACK 0x04
-#define GSM411_MT_CP_ERROR 0x10
-
-enum gsm411_cp_ie {
- GSM411_CP_IE_USER_DATA = 0x01, /* 8.1.4.1 */
- GSM411_CP_IE_CAUSE = 0x02, /* 8.1.4.2. */
-};
-
-/* Section 8.1.4.2 / Table 8.2 */
-enum gsm411_cp_cause {
- GSM411_CP_CAUSE_NET_FAIL = 17,
- GSM411_CP_CAUSE_CONGESTION = 22,
- GSM411_CP_CAUSE_INV_TRANS_ID = 81,
- GSM411_CP_CAUSE_SEMANT_INC_MSG = 95,
- GSM411_CP_CAUSE_INV_MAND_INF = 96,
- GSM411_CP_CAUSE_MSGTYPE_NOTEXIST= 97,
- GSM411_CP_CAUSE_MSG_INCOMP_STATE= 98,
- GSM411_CP_CAUSE_IE_NOTEXIST = 99,
- GSM411_CP_CAUSE_PROTOCOL_ERR = 111,
-};
-
-/* Chapter 8.2.2 */
-#define GSM411_MT_RP_DATA_MO 0x00
-#define GSM411_MT_RP_DATA_MT 0x01
-#define GSM411_MT_RP_ACK_MO 0x02
-#define GSM411_MT_RP_ACK_MT 0x03
-#define GSM411_MT_RP_ERROR_MO 0x04
-#define GSM411_MT_RP_ERROR_MT 0x05
-#define GSM411_MT_RP_SMMA_MO 0x06
-
-enum gsm411_rp_ie {
- GSM411_IE_RP_USER_DATA = 0x41, /* 8.2.5.3 */
- GSM411_IE_RP_CAUSE = 0x42, /* 8.2.5.4 */
-};
-
-/* Chapter 8.2.5.4 Table 8.4 */
-enum gsm411_rp_cause {
- /* valid only for MO */
- GSM411_RP_CAUSE_MO_NUM_UNASSIGNED = 1,
- GSM411_RP_CAUSE_MO_OP_DET_BARR = 8,
- GSM411_RP_CAUSE_MO_CALL_BARRED = 10,
- GSM411_RP_CAUSE_MO_SMS_REJECTED = 21,
- GSM411_RP_CAUSE_MO_DEST_OUT_OF_ORDER = 27,
- GSM411_RP_CAUSE_MO_UNIDENTIFIED_SUBSCR = 28,
- GSM411_RP_CAUSE_MO_FACILITY_REJ = 29,
- GSM411_RP_CAUSE_MO_UNKNOWN_SUBSCR = 30,
- GSM411_RP_CAUSE_MO_NET_OUT_OF_ORDER = 38,
- GSM411_RP_CAUSE_MO_TEMP_FAIL = 41,
- GSM411_RP_CAUSE_MO_CONGESTION = 42,
- GSM411_RP_CAUSE_MO_RES_UNAVAIL = 47,
- GSM411_RP_CAUSE_MO_REQ_FAC_NOTSUBSCR = 50,
- GSM411_RP_CAUSE_MO_REQ_FAC_NOTIMPL = 69,
- GSM411_RP_CAUSE_MO_INTERWORKING = 127,
- /* valid only for MT */
- GSM411_RP_CAUSE_MT_MEM_EXCEEDED = 22,
- /* valid for both directions */
- GSM411_RP_CAUSE_INV_TRANS_REF = 81,
- GSM411_RP_CAUSE_SEMANT_INC_MSG = 95,
- GSM411_RP_CAUSE_INV_MAND_INF = 96,
- GSM411_RP_CAUSE_MSGTYPE_NOTEXIST = 97,
- GSM411_RP_CAUSE_MSG_INCOMP_STATE = 98,
- GSM411_RP_CAUSE_IE_NOTEXIST = 99,
- GSM411_RP_CAUSE_PROTOCOL_ERR = 111,
-};
-
-/* Chapter 10: Timers */
-#define GSM411_TMR_TR1M 40, 0 /* 35 < x < 45 seconds */
-#define GSM411_TMR_TRAM 30, 0 /* 25 < x < 35 seconds */
-#define GSM411_TMR_TR2M 15, 0 /* 12 < x < 20 seconds */
-
-#define GSM411_TMR_TC1A 30, 0 /* TR1M - 10 */
-#define GSM411_TMR_TC1A_SEC 30 /* TR1M - 10 */
-
-/* Chapter 8.2.1 */
-struct gsm411_rp_hdr {
- uint8_t len;
- uint8_t msg_type;
- uint8_t msg_ref;
- uint8_t data[0];
-} __attribute__ ((packed));
-
-/* our own enum, not related to on-air protocol */
-enum sms_alphabet {
- DCS_NONE,
- DCS_7BIT_DEFAULT,
- DCS_UCS2,
- DCS_8BIT_DATA,
-};
-
-/* GSM 03.40 / Chapter 9.2.3.1: TP-Message-Type-Indicator */
-#define GSM340_SMS_DELIVER_SC2MS 0x00
-#define GSM340_SMS_DELIVER_REP_MS2SC 0x00
-#define GSM340_SMS_STATUS_REP_SC2MS 0x02
-#define GSM340_SMS_COMMAND_MS2SC 0x02
-#define GSM340_SMS_SUBMIT_MS2SC 0x01
-#define GSM340_SMS_SUBMIT_REP_SC2MS 0x01
-#define GSM340_SMS_RESSERVED 0x03
-
-/* GSM 03.40 / Chapter 9.2.3.2: TP-More-Messages-to-Send */
-#define GSM340_TP_MMS_MORE 0
-#define GSM340_TP_MMS_NO_MORE 1
-
-/* GSM 03.40 / Chapter 9.2.3.3: TP-Validity-Period-Format */
-#define GSM340_TP_VPF_NONE 0
-#define GSM340_TP_VPF_RELATIVE 2
-#define GSM340_TP_VPF_ENHANCED 1
-#define GSM340_TP_VPF_ABSOLUTE 3
-
-/* GSM 03.40 / Chapter 9.2.3.4: TP-Status-Report-Indication */
-#define GSM340_TP_SRI_NONE 0
-#define GSM340_TP_SRI_PRESENT 1
-
-/* GSM 03.40 / Chapter 9.2.3.5: TP-Status-Report-Request */
-#define GSM340_TP_SRR_NONE 0
-#define GSM340_TP_SRR_REQUESTED 1
-
-/* GSM 03.40 / Chapter 9.2.3.9: TP-Protocol-Identifier */
-/* telematic interworking (001 or 111 in bits 7-5) */
-#define GSM340_TP_PID_IMPLICIT 0x00
-#define GSM340_TP_PID_TELEX 0x01
-#define GSM340_TP_PID_FAX_G3 0x02
-#define GSM340_TP_PID_FAX_G4 0x03
-#define GSM340_TP_PID_VOICE 0x04
-#define GSM430_TP_PID_ERMES 0x05
-#define GSM430_TP_PID_NATIONAL_PAGING 0x06
-#define GSM430_TP_PID_VIDEOTEX 0x07
-#define GSM430_TP_PID_TELETEX_UNSPEC 0x08
-#define GSM430_TP_PID_TELETEX_PSPDN 0x09
-#define GSM430_TP_PID_TELETEX_CSPDN 0x0a
-#define GSM430_TP_PID_TELETEX_PSTN 0x0b
-#define GSM430_TP_PID_TELETEX_ISDN 0x0c
-#define GSM430_TP_PID_TELETEX_UCI 0x0d
-#define GSM430_TP_PID_MSG_HANDLING 0x10
-#define GSM430_TP_PID_MSG_X400 0x11
-#define GSM430_TP_PID_EMAIL 0x12
-#define GSM430_TP_PID_GSM_MS 0x1f
-/* if bit 7 = 0 and bit 6 = 1 */
-#define GSM430_TP_PID_SMS_TYPE_0 0
-#define GSM430_TP_PID_SMS_TYPE_1 1
-#define GSM430_TP_PID_SMS_TYPE_2 2
-#define GSM430_TP_PID_SMS_TYPE_3 3
-#define GSM430_TP_PID_SMS_TYPE_4 4
-#define GSM430_TP_PID_SMS_TYPE_5 5
-#define GSM430_TP_PID_SMS_TYPE_6 6
-#define GSM430_TP_PID_SMS_TYPE_7 7
-#define GSM430_TP_PID_RETURN_CALL_MSG 0x1f
-#define GSM430_TP_PID_ME_DATA_DNLOAD 0x3d
-#define GSM430_TP_PID_ME_DE_PERSONAL 0x3e
-#define GSM430_TP_PID_ME_SIM_DNLOAD 0x3f
-
-/* GSM 03.38 Chapter 4: SMS Data Coding Scheme */
-#define GSM338_DCS_00_
-
-#define GSM338_DCS_1110_7BIT (0 << 2)
-#define GSM338_DCS_1111_7BIT (0 << 2)
-#define GSM338_DCS_1111_8BIT_DATA (1 << 2)
-#define GSM338_DCS_1111_CLASS0 0
-#define GSM338_DCS_1111_CLASS1_ME 1
-#define GSM338_DCS_1111_CLASS2_SIM 2
-#define GSM338_DCS_1111_CLASS3_TE 3 /* See TS 07.05 */
-
-#endif /* PROTO_GSM_04_11_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_12.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_12.h
deleted file mode 100644
index 9b1538a5..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_12.h
+++ /dev/null
@@ -1,31 +0,0 @@
-#ifndef PROTO_GSM_04_12_H
-#define PROTO_GSM_04_12_H
-
-#include <stdint.h>
-
-/* GSM TS 04.12 definitions for Short Message Service Cell Broadcast */
-
-#define GSM412_SEQ_FST_BLOCK 0x0
-#define GSM412_SEQ_SND_BLOCK 0x1
-#define GSM412_SEQ_TRD_BLOCK 0x2
-#define GSM412_SEQ_FTH_BLOCK 0x3
-#define GSM412_SEQ_FST_SCHED_BLOCK 0x8
-#define GSM412_SEQ_NULL_MSG 0xf
-
-struct gsm412_block_type {
- uint8_t seq_nr : 4,
- lb : 1,
- lpd : 2,
- spare : 1;
-} __attribute__((packed));
-
-struct gsm412_sched_msg {
- uint8_t beg_slot_nr : 6,
- type : 2;
- uint8_t end_slot_nr : 6,
- spare1 : 1, spare2: 1;
- uint8_t cbsms_msg_map[6];
- uint8_t data[0];
-} __attribute__((packed));
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_80.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_80.h
deleted file mode 100644
index fa5c9451..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_04_80.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef PROTO_GSM_04_80_H
-#define PROTO_GSM_04_80_H
-
-/* GSM TS 04.80 definitions (Supplementary Services Specification, Formats and Coding) */
-
-/* Section 3.4 */
-#define GSM0480_MTYPE_RELEASE_COMPLETE 0x2A
-#define GSM0480_MTYPE_FACILITY 0x3A
-#define GSM0480_MTYPE_REGISTER 0x3B
-
-/* Section 3.5 */
-#define GSM0480_IE_FACILITY 0x1C
-#define GSM0480_IE_SS_VERSION 0x7F
-
-/* Section 3.6.2 */
-#define GSM0480_CTYPE_INVOKE 0xA1
-#define GSM0480_CTYPE_RETURN_RESULT 0xA2
-#define GSM0480_CTYPE_RETURN_ERROR 0xA3
-#define GSM0480_CTYPE_REJECT 0xA4
-
-/* Section 3.6.3 */
-#define GSM0480_COMPIDTAG_INVOKE_ID 0x02
-#define GSM0480_COMPIDTAG_LINKED_ID 0x80
-
-/* Section 3.6.4 */
-#define GSM0480_OPERATION_CODE 0x02
-
-/* Section 3.6.5 */
-#define GSM_0480_SEQUENCE_TAG 0x30
-#define GSM_0480_SET_TAG 0x31
-
-/* Section 3.6.6 */
-#define GSM_0480_ERROR_CODE_TAG 0x02
-
-/* Section 3.6.7 */
-/* Table 3.13 */
-#define GSM_0480_PROBLEM_CODE_TAG_GENERAL 0x80
-#define GSM_0480_PROBLEM_CODE_TAG_INVOKE 0x81
-#define GSM_0480_PROBLEM_CODE_TAG_RETURN_RESULT 0x82
-#define GSM_0480_PROBLEM_CODE_TAG_RETURN_ERROR 0x83
-
-/* Table 3.14 */
-#define GSM_0480_GEN_PROB_CODE_UNRECOGNISED 0x00
-#define GSM_0480_GEN_PROB_CODE_MISTYPED 0x01
-#define GSM_0480_GEN_PROB_CODE_BAD_STRUCTURE 0x02
-
-/* Table 3.15 */
-#define GSM_0480_INVOKE_PROB_CODE_DUPLICATE_INVOKE_ID 0x00
-#define GSM_0480_INVOKE_PROB_CODE_UNRECOGNISED_OPERATION 0x01
-#define GSM_0480_INVOKE_PROB_CODE_MISTYPED_PARAMETER 0x02
-#define GSM_0480_INVOKE_PROB_CODE_RESOURCE_LIMITATION 0x03
-#define GSM_0480_INVOKE_PROB_CODE_INITIATING_RELEASE 0x04
-#define GSM_0480_INVOKE_PROB_CODE_UNRECOGNISED_LINKED_ID 0x05
-#define GSM_0480_INVOKE_PROB_CODE_UNEXPECTED_LINKED_RESPONSE 0x06
-#define GSM_0480_INVOKE_PROB_CODE_UNEXPECTED_LINKED_OPERATION 0x07
-
-/* Table 3.16 */
-#define GSM_0480_RESULT_PROB_CODE_UNRECOGNISED_INVOKE_ID 0x00
-#define GSM_0480_RESULT_PROB_CODE_RETURN_RESULT_UNEXPECTED 0x01
-#define GSM_0480_RESULT_PROB_CODE_MISTYPED_PARAMETER 0x02
-
-/* Table 3.17 */
-#define GSM_0480_ERROR_PROB_CODE_UNRECOGNISED_INVOKE_ID 0x00
-#define GSM_0480_ERROR_PROB_CODE_RETURN_ERROR_UNEXPECTED 0x01
-#define GSM_0480_ERROR_PROB_CODE_UNRECOGNISED_ERROR 0x02
-#define GSM_0480_ERROR_PROB_CODE_UNEXPECTED_ERROR 0x03
-#define GSM_0480_ERROR_PROB_CODE_MISTYPED_PARAMETER 0x04
-
-/* Section 4.5 */
-#define GSM0480_OP_CODE_REGISTER_SS 0x0A
-#define GSM0480_OP_CODE_ERASE_SS 0x0B
-#define GSM0480_OP_CODE_ACTIVATE_SS 0x0C
-#define GSM0480_OP_CODE_DEACTIVATE_SS 0x0D
-#define GSM0480_OP_CODE_INTERROGATE_SS 0x0E
-#define GSM0480_OP_CODE_NOTIFY_SS 0x10
-#define GSM0480_OP_CODE_REGISTER_PASSWORD 0x11
-#define GSM0480_OP_CODE_GET_PASSWORD 0x12
-#define GSM0480_OP_CODE_PROCESS_USS_DATA 0x13
-#define GSM0480_OP_CODE_FORWARD_CHECK_SS_IND 0x26
-#define GSM0480_OP_CODE_PROCESS_USS_REQ 0x3B
-#define GSM0480_OP_CODE_USS_REQUEST 0x3C
-#define GSM0480_OP_CODE_USS_NOTIFY 0x3D
-#define GSM0480_OP_CODE_FORWARD_CUG_INFO 0x78
-#define GSM0480_OP_CODE_SPLIT_MPTY 0x79
-#define GSM0480_OP_CODE_RETRIEVE_MPTY 0x7A
-#define GSM0480_OP_CODE_HOLD_MPTY 0x7B
-#define GSM0480_OP_CODE_BUILD_MPTY 0x7C
-#define GSM0480_OP_CODE_FORWARD_CHARGE_ADVICE 0x7D
-
-#define GSM0480_ERR_CODE_UNKNOWN_SUBSCRIBER 0x01
-#define GSM0480_ERR_CODE_ILLEGAL_SUBSCRIBER 0x09
-#define GSM0480_ERR_CODE_BEARER_SERVICE_NOT_PROVISIONED 0x0A
-#define GSM0480_ERR_CODE_TELESERVICE_NOT_PROVISIONED 0x0B
-#define GSM0480_ERR_CODE_ILLEGAL_EQUIPMENT 0x0C
-#define GSM0480_ERR_CODE_CALL_BARRED 0x0D
-#define GSM0480_ERR_CODE_ILLEGAL_SS_OPERATION 0x10
-#define GSM0480_ERR_CODE_SS_ERROR_STATUS 0x11
-#define GSM0480_ERR_CODE_SS_NOT_AVAILABLE 0x12
-#define GSM0480_ERR_CODE_SS_SUBSCRIPTION_VIOLATION 0x13
-#define GSM0480_ERR_CODE_SS_INCOMPATIBILITY 0x14
-#define GSM0480_ERR_CODE_FACILITY_NOT_SUPPORTED 0x15
-#define GSM0480_ERR_CODE_ABSENT_SUBSCRIBER 0x1B
-#define GSM0480_ERR_CODE_SYSTEM_FAILURE 0x22
-#define GSM0480_ERR_CODE_DATA_MISSING 0x23
-#define GSM0480_ERR_CODE_UNEXPECTED_DATA_VALUE 0x24
-#define GSM0480_ERR_CODE_PW_REGISTRATION_FAILURE 0x25
-#define GSM0480_ERR_CODE_NEGATIVE_PW_CHECK 0x26
-#define GSM0480_ERR_CODE_NUM_PW_ATTEMPTS_VIOLATION 0x2B
-#define GSM0480_ERR_CODE_UNKNOWN_ALPHABET 0x47
-#define GSM0480_ERR_CODE_USSD_BUSY 0x48
-#define GSM0480_ERR_CODE_MAX_MPTY_PARTICIPANTS 0x7E
-#define GSM0480_ERR_CODE_RESOURCES_NOT_AVAILABLE 0x7F
-
-/* ASN.1 type-tags */
-#define ASN1_BOOLEAN_TAG 0x01
-#define ASN1_INTEGER_TAG 0x02
-#define ASN1_BIT_STRING_TAG 0x03
-#define ASN1_OCTET_STRING_TAG 0x04
-#define ASN1_NULL_TYPE_TAG 0x05
-#define ASN1_OBJECT_ID_TAG 0x06
-#define ASN1_UTF8_STRING_TAG 0x0C
-#define ASN1_PRINTABLE_STRING_TAG 0x13
-#define ASN1_IA5_STRING_TAG 0x16
-#define ASN1_UNICODE_STRING_TAG 0x1E
-
-#endif /* PROTO_GSM_04_80_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_08_08.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_08_08.h
deleted file mode 100644
index 6b8f9359..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_08_08.h
+++ /dev/null
@@ -1,303 +0,0 @@
-/* From GSM08.08 */
-
-#ifndef GSM_0808_H
-#define GSM_0808_H
-
-#include <stdlib.h>
-
-/*
- * this is from GSM 03.03 CGI but is copied in GSM 08.08
- * in § 3.2.2.27 for Cell Identifier List
- */
-enum CELL_IDENT {
- CELL_IDENT_WHOLE_GLOBAL = 0,
- CELL_IDENT_LAC_AND_CI = 1,
- CELL_IDENT_CI = 2,
- CELL_IDENT_NO_CELL = 3,
- CELL_IDENT_LAI_AND_LAC = 4,
- CELL_IDENT_LAC = 5,
- CELL_IDENT_BSS = 6,
- CELL_IDENT_UTRAN_PLMN_LAC_RNC = 8,
- CELL_IDENT_UTRAN_RNC = 9,
- CELL_IDENT_UTRAN_LAC_RNC = 10,
-};
-
-
-/* GSM 08.06 § 6.3 */
-enum BSSAP_MSG_TYPE {
- BSSAP_MSG_BSS_MANAGEMENT = 0x0,
- BSSAP_MSG_DTAP = 0x1,
-};
-
-struct bssmap_header {
- uint8_t type;
- uint8_t length;
-} __attribute__((packed));
-
-struct dtap_header {
- uint8_t type;
- uint8_t link_id;
- uint8_t length;
-} __attribute__((packed));
-
-
-enum BSS_MAP_MSG_TYPE {
- BSS_MAP_MSG_RESERVED_0 = 0,
-
- /* ASSIGNMENT MESSAGES */
- BSS_MAP_MSG_ASSIGMENT_RQST = 1,
- BSS_MAP_MSG_ASSIGMENT_COMPLETE = 2,
- BSS_MAP_MSG_ASSIGMENT_FAILURE = 3,
-
- /* HANDOVER MESSAGES */
- BSS_MAP_MSG_HANDOVER_RQST = 16,
- BSS_MAP_MSG_HANDOVER_REQUIRED = 17,
- BSS_MAP_MSG_HANDOVER_RQST_ACKNOWLEDGE= 18,
- BSS_MAP_MSG_HANDOVER_CMD = 19,
- BSS_MAP_MSG_HANDOVER_COMPLETE = 20,
- BSS_MAP_MSG_HANDOVER_SUCCEEDED = 21,
- BSS_MAP_MSG_HANDOVER_FAILURE = 22,
- BSS_MAP_MSG_HANDOVER_PERFORMED = 23,
- BSS_MAP_MSG_HANDOVER_CANDIDATE_ENQUIRE = 24,
- BSS_MAP_MSG_HANDOVER_CANDIDATE_RESPONSE = 25,
- BSS_MAP_MSG_HANDOVER_REQUIRED_REJECT = 26,
- BSS_MAP_MSG_HANDOVER_DETECT = 27,
-
- /* RELEASE MESSAGES */
- BSS_MAP_MSG_CLEAR_CMD = 32,
- BSS_MAP_MSG_CLEAR_COMPLETE = 33,
- BSS_MAP_MSG_CLEAR_RQST = 34,
- BSS_MAP_MSG_RESERVED_1 = 35,
- BSS_MAP_MSG_RESERVED_2 = 36,
- BSS_MAP_MSG_SAPI_N_REJECT = 37,
- BSS_MAP_MSG_CONFUSION = 38,
-
- /* OTHER CONNECTION RELATED MESSAGES */
- BSS_MAP_MSG_SUSPEND = 40,
- BSS_MAP_MSG_RESUME = 41,
- BSS_MAP_MSG_CONNECTION_ORIENTED_INFORMATION = 42,
- BSS_MAP_MSG_PERFORM_LOCATION_RQST = 43,
- BSS_MAP_MSG_LSA_INFORMATION = 44,
- BSS_MAP_MSG_PERFORM_LOCATION_RESPONSE = 45,
- BSS_MAP_MSG_PERFORM_LOCATION_ABORT = 46,
- BSS_MAP_MSG_COMMON_ID = 47,
-
- /* GENERAL MESSAGES */
- BSS_MAP_MSG_RESET = 48,
- BSS_MAP_MSG_RESET_ACKNOWLEDGE = 49,
- BSS_MAP_MSG_OVERLOAD = 50,
- BSS_MAP_MSG_RESERVED_3 = 51,
- BSS_MAP_MSG_RESET_CIRCUIT = 52,
- BSS_MAP_MSG_RESET_CIRCUIT_ACKNOWLEDGE = 53,
- BSS_MAP_MSG_MSC_INVOKE_TRACE = 54,
- BSS_MAP_MSG_BSS_INVOKE_TRACE = 55,
- BSS_MAP_MSG_CONNECTIONLESS_INFORMATION = 58,
-
- /* TERRESTRIAL RESOURCE MESSAGES */
- BSS_MAP_MSG_BLOCK = 64,
- BSS_MAP_MSG_BLOCKING_ACKNOWLEDGE = 65,
- BSS_MAP_MSG_UNBLOCK = 66,
- BSS_MAP_MSG_UNBLOCKING_ACKNOWLEDGE = 67,
- BSS_MAP_MSG_CIRCUIT_GROUP_BLOCK = 68,
- BSS_MAP_MSG_CIRCUIT_GROUP_BLOCKING_ACKNOWLEDGE = 69,
- BSS_MAP_MSG_CIRCUIT_GROUP_UNBLOCK = 70,
- BSS_MAP_MSG_CIRCUIT_GROUP_UNBLOCKING_ACKNOWLEDGE = 71,
- BSS_MAP_MSG_UNEQUIPPED_CIRCUIT = 72,
- BSS_MAP_MSG_CHANGE_CIRCUIT = 78,
- BSS_MAP_MSG_CHANGE_CIRCUIT_ACKNOWLEDGE = 79,
-
- /* RADIO RESOURCE MESSAGES */
- BSS_MAP_MSG_RESOURCE_RQST = 80,
- BSS_MAP_MSG_RESOURCE_INDICATION = 81,
- BSS_MAP_MSG_PAGING = 82,
- BSS_MAP_MSG_CIPHER_MODE_CMD = 83,
- BSS_MAP_MSG_CLASSMARK_UPDATE = 84,
- BSS_MAP_MSG_CIPHER_MODE_COMPLETE = 85,
- BSS_MAP_MSG_QUEUING_INDICATION = 86,
- BSS_MAP_MSG_COMPLETE_LAYER_3 = 87,
- BSS_MAP_MSG_CLASSMARK_RQST = 88,
- BSS_MAP_MSG_CIPHER_MODE_REJECT = 89,
- BSS_MAP_MSG_LOAD_INDICATION = 90,
-
- /* VGCS/VBS */
- BSS_MAP_MSG_VGCS_VBS_SETUP = 4,
- BSS_MAP_MSG_VGCS_VBS_SETUP_ACK = 5,
- BSS_MAP_MSG_VGCS_VBS_SETUP_REFUSE = 6,
- BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_RQST = 7,
- BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_RESULT = 28,
- BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_FAILURE = 29,
- BSS_MAP_MSG_VGCS_VBS_QUEUING_INDICATION = 30,
- BSS_MAP_MSG_UPLINK_RQST = 31,
- BSS_MAP_MSG_UPLINK_RQST_ACKNOWLEDGE = 39,
- BSS_MAP_MSG_UPLINK_RQST_CONFIRMATION = 73,
- BSS_MAP_MSG_UPLINK_RELEASE_INDICATION = 74,
- BSS_MAP_MSG_UPLINK_REJECT_CMD = 75,
- BSS_MAP_MSG_UPLINK_RELEASE_CMD = 76,
- BSS_MAP_MSG_UPLINK_SEIZED_CMD = 77,
-};
-
-enum GSM0808_IE_CODING {
- GSM0808_IE_CIRCUIT_IDENTITY_CODE = 1,
- GSM0808_IE_RESERVED_0 = 2,
- GSM0808_IE_RESOURCE_AVAILABLE = 3,
- GSM0808_IE_CAUSE = 4,
- GSM0808_IE_CELL_IDENTIFIER = 5,
- GSM0808_IE_PRIORITY = 6,
- GSM0808_IE_LAYER_3_HEADER_INFORMATION = 7,
- GSM0808_IE_IMSI = 8,
- GSM0808_IE_TMSI = 9,
- GSM0808_IE_ENCRYPTION_INFORMATION = 10,
- GSM0808_IE_CHANNEL_TYPE = 11,
- GSM0808_IE_PERIODICITY = 12,
- GSM0808_IE_EXTENDED_RESOURCE_INDICATOR = 13,
- GSM0808_IE_NUMBER_OF_MSS = 14,
- GSM0808_IE_RESERVED_1 = 15,
- GSM0808_IE_RESERVED_2 = 16,
- GSM0808_IE_RESERVED_3 = 17,
- GSM0808_IE_CLASSMARK_INFORMATION_T2 = 18,
- GSM0808_IE_CLASSMARK_INFORMATION_T3 = 19,
- GSM0808_IE_INTERFERENCE_BAND_TO_USE = 20,
- GSM0808_IE_RR_CAUSE = 21,
- GSM0808_IE_RESERVED_4 = 22,
- GSM0808_IE_LAYER_3_INFORMATION = 23,
- GSM0808_IE_DLCI = 24,
- GSM0808_IE_DOWNLINK_DTX_FLAG = 25,
- GSM0808_IE_CELL_IDENTIFIER_LIST = 26,
- GSM0808_IE_RESPONSE_RQST = 27,
- GSM0808_IE_RESOURCE_INDICATION_METHOD = 28,
- GSM0808_IE_CLASSMARK_INFORMATION_TYPE_1 = 29,
- GSM0808_IE_CIRCUIT_IDENTITY_CODE_LIST = 30,
- GSM0808_IE_DIAGNOSTIC = 31,
- GSM0808_IE_LAYER_3_MESSAGE_CONTENTS = 32,
- GSM0808_IE_CHOSEN_CHANNEL = 33,
- GSM0808_IE_TOTAL_RESOURCE_ACCESSIBLE = 34,
- GSM0808_IE_CIPHER_RESPONSE_MODE = 35,
- GSM0808_IE_CHANNEL_NEEDED = 36,
- GSM0808_IE_TRACE_TYPE = 37,
- GSM0808_IE_TRIGGERID = 38,
- GSM0808_IE_TRACE_REFERENCE = 39,
- GSM0808_IE_TRANSACTIONID = 40,
- GSM0808_IE_MOBILE_IDENTITY = 41,
- GSM0808_IE_OMCID = 42,
- GSM0808_IE_FORWARD_INDICATOR = 43,
- GSM0808_IE_CHOSEN_ENCR_ALG = 44,
- GSM0808_IE_CIRCUIT_POOL = 45,
- GSM0808_IE_CIRCUIT_POOL_LIST = 46,
- GSM0808_IE_TIME_INDICATION = 47,
- GSM0808_IE_RESOURCE_SITUATION = 48,
- GSM0808_IE_CURRENT_CHANNEL_TYPE_1 = 49,
- GSM0808_IE_QUEUEING_INDICATOR = 50,
- GSM0808_IE_SPEECH_VERSION = 64,
- GSM0808_IE_ASSIGNMENT_REQUIREMENT = 51,
- GSM0808_IE_TALKER_FLAG = 53,
- GSM0808_IE_CONNECTION_RELEASE_RQSTED = 54,
- GSM0808_IE_GROUP_CALL_REFERENCE = 55,
- GSM0808_IE_EMLPP_PRIORITY = 56,
- GSM0808_IE_CONFIG_EVO_INDI = 57,
- GSM0808_IE_OLD_BSS_TO_NEW_BSS_INFORMATION = 58,
- GSM0808_IE_LSA_IDENTIFIER = 59,
- GSM0808_IE_LSA_IDENTIFIER_LIST = 60,
- GSM0808_IE_LSA_INFORMATION = 61,
- GSM0808_IE_LCS_QOS = 62,
- GSM0808_IE_LSA_ACCESS_CTRL_SUPPR = 63,
- GSM0808_IE_LCS_PRIORITY = 67,
- GSM0808_IE_LOCATION_TYPE = 68,
- GSM0808_IE_LOCATION_ESTIMATE = 69,
- GSM0808_IE_POSITIONING_DATA = 70,
- GSM0808_IE_LCS_CAUSE = 71,
- GSM0808_IE_LCS_CLIENT_TYPE = 72,
- GSM0808_IE_APDU = 73,
- GSM0808_IE_NETWORK_ELEMENT_IDENTITY = 74,
- GSM0808_IE_GPS_ASSISTANCE_DATA = 75,
- GSM0808_IE_DECIPHERING_KEYS = 76,
- GSM0808_IE_RETURN_ERROR_RQST = 77,
- GSM0808_IE_RETURN_ERROR_CAUSE = 78,
- GSM0808_IE_SEGMENTATION = 79,
- GSM0808_IE_SERVICE_HANDOVER = 80,
- GSM0808_IE_SOURCE_RNC_TO_TARGET_RNC_TRANSPARENT_UMTS = 81,
- GSM0808_IE_SOURCE_RNC_TO_TARGET_RNC_TRANSPARENT_CDMA2000= 82,
- GSM0808_IE_RESERVED_5 = 65,
- GSM0808_IE_RESERVED_6 = 66,
-};
-
-enum gsm0808_cause {
- GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE = 0,
- GSM0808_CAUSE_RADIO_INTERFACE_FAILURE = 1,
- GSM0808_CAUSE_UPLINK_QUALITY = 2,
- GSM0808_CAUSE_UPLINK_STRENGTH = 3,
- GSM0808_CAUSE_DOWNLINK_QUALITY = 4,
- GSM0808_CAUSE_DOWNLINK_STRENGTH = 5,
- GSM0808_CAUSE_DISTANCE = 6,
- GSM0808_CAUSE_O_AND_M_INTERVENTION = 7,
- GSM0808_CAUSE_RESPONSE_TO_MSC_INVOCATION = 8,
- GSM0808_CAUSE_CALL_CONTROL = 9,
- GSM0808_CAUSE_RADIO_INTERFACE_FAILURE_REVERSION = 10,
- GSM0808_CAUSE_HANDOVER_SUCCESSFUL = 11,
- GSM0808_CAUSE_BETTER_CELL = 12,
- GSM0808_CAUSE_DIRECTED_RETRY = 13,
- GSM0808_CAUSE_JOINED_GROUP_CALL_CHANNEL = 14,
- GSM0808_CAUSE_TRAFFIC = 15,
- GSM0808_CAUSE_EQUIPMENT_FAILURE = 32,
- GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE = 33,
- GSM0808_CAUSE_RQSTED_TERRESTRIAL_RESOURCE_UNAVAILABLE = 34,
- GSM0808_CAUSE_CCCH_OVERLOAD = 35,
- GSM0808_CAUSE_PROCESSOR_OVERLOAD = 36,
- GSM0808_CAUSE_BSS_NOT_EQUIPPED = 37,
- GSM0808_CAUSE_MS_NOT_EQUIPPED = 38,
- GSM0808_CAUSE_INVALID_CELL = 39,
- GSM0808_CAUSE_TRAFFIC_LOAD = 40,
- GSM0808_CAUSE_PREEMPTION = 41,
- GSM0808_CAUSE_RQSTED_TRANSCODING_RATE_ADAPTION_UNAVAILABLE = 48,
- GSM0808_CAUSE_CIRCUIT_POOL_MISMATCH = 49,
- GSM0808_CAUSE_SWITCH_CIRCUIT_POOL = 50,
- GSM0808_CAUSE_RQSTED_SPEECH_VERSION_UNAVAILABLE = 51,
- GSM0808_CAUSE_LSA_NOT_ALLOWED = 52,
- GSM0808_CAUSE_CIPHERING_ALGORITHM_NOT_SUPPORTED = 64,
- GSM0808_CAUSE_TERRESTRIAL_CIRCUIT_ALREADY_ALLOCATED = 80,
- GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS = 81,
- GSM0808_CAUSE_INFORMATION_ELEMENT_OR_FIELD_MISSING = 82,
- GSM0808_CAUSE_INCORRECT_VALUE = 83,
- GSM0808_CAUSE_UNKNOWN_MESSAGE_TYPE = 84,
- GSM0808_CAUSE_UNKNOWN_INFORMATION_ELEMENT = 85,
- GSM0808_CAUSE_PROTOCOL_ERROR_BETWEEN_BSS_AND_MSC = 96,
-};
-
-/* GSM 08.08 3.2.2.11 Channel Type */
-enum gsm0808_chan_indicator {
- GSM0808_CHAN_SPEECH = 1,
- GSM0808_CHAN_DATA = 2,
- GSM0808_CHAN_SIGN = 3,
-};
-
-enum gsm0808_chan_rate_type_data {
- GSM0808_DATA_FULL_BM = 0x8,
- GSM0808_DATA_HALF_LM = 0x9,
- GSM0808_DATA_FULL_RPREF = 0xa,
- GSM0808_DATA_HALF_PREF = 0xb,
- GSM0808_DATA_FULL_PREF_NO_CHANGE = 0x1a,
- GSM0808_DATA_HALF_PREF_NO_CHANGE = 0x1b,
- GSM0808_DATA_MULTI_MASK = 0x20,
- GSM0808_DATA_MULTI_MASK_NO_CHANGE = 0x30,
-};
-
-enum gsm0808_chan_rate_type_speech {
- GSM0808_SPEECH_FULL_BM = 0x8,
- GSM0808_SPEECH_HALF_LM = 0x9,
- GSM0808_SPEECH_FULL_PREF= 0xa,
- GSM0808_SPEECH_HALF_PREF= 0xb,
- GSM0808_SPEECH_FULL_PREF_NO_CHANGE = 0x1a,
- GSM0808_SPEECH_HALF_PREF_NO_CHANGE = 0x1b,
- GSM0808_SPEECH_PERM = 0xf,
- GSM0808_SPEECH_PERM_NO_CHANGE = 0x1f,
-};
-
-enum gsm0808_permitted_speech {
- GSM0808_PERM_FR1 = 0x01,
- GSM0808_PERM_FR2 = 0x11,
- GSM0808_PERM_FR3 = 0x21,
- GSM0808_PERM_HR1 = GSM0808_PERM_FR1 | 0x4,
- GSM0808_PERM_HR2 = GSM0808_PERM_FR2 | 0x4,
- GSM0808_PERM_HR3 = GSM0808_PERM_FR3 | 0x4,
-};
-
-#endif
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_08_58.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_08_58.h
deleted file mode 100644
index 57a8f687..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_08_58.h
+++ /dev/null
@@ -1,577 +0,0 @@
-#ifndef PROTO_GSM_08_58_H
-#define PROTO_GSM_08_58_H
-
-/* GSM Radio Signalling Link messages on the A-bis interface
- * 3GPP TS 08.58 version 8.6.0 Release 1999 / ETSI TS 100 596 V8.6.0 */
-
-/* (C) 2008 by Harald Welte <laforge@gnumonks.org>
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-#include <stdint.h>
-
-/*! \addtogroup rsl
- * @{
- */
-
-/*! \file gsm_08_58.h */
-
-/*! \brief RSL common header */
-struct abis_rsl_common_hdr {
- uint8_t msg_discr; /*!< \brief message discriminator (ABIS_RSL_MDISC_*) */
- uint8_t msg_type; /*!< \brief message type (\ref abis_rsl_msgtype) */
- uint8_t data[0]; /*!< \brief actual payload data */
-} __attribute__ ((packed));
-
-/* \brief RSL RLL header (Chapter 8.3) */
-struct abis_rsl_rll_hdr {
- struct abis_rsl_common_hdr c;
- uint8_t ie_chan; /*!< \brief \ref RSL_IE_CHAN_NR (tag) */
- uint8_t chan_nr; /*!< \brief RSL channel number (value) */
- uint8_t ie_link_id; /*!< \brief \ref RSL_IE_LINK_IDENT (tag) */
- uint8_t link_id; /*!< \brief RSL link identifier (value) */
- uint8_t data[0]; /*!< \brief message payload data */
-} __attribute__ ((packed));
-
-/* \brief RSL Dedicated Channel header (Chapter 8.3 and 8.4) */
-struct abis_rsl_dchan_hdr {
- struct abis_rsl_common_hdr c;
- uint8_t ie_chan; /*!< \brief \ref RSL_IE_CHAN_NR (tag) */
- uint8_t chan_nr; /*!< \brief RSL channel number (value) */
- uint8_t data[0]; /*!< \brief message payload data */
-} __attribute__ ((packed));
-
-/* \brief RSL Common Channel header (Chapter 8.5) */
-struct abis_rsl_cchan_hdr {
- struct abis_rsl_common_hdr c;
- uint8_t ie_chan; /*!< \brief \ref RSL_IE_CHAN_NR (tag) */
- uint8_t chan_nr; /*!< \brief RSL channel number (value) */
- uint8_t data[0]; /*!< \brief message payload data */
-} __attribute__ ((packed));
-
-
-/* Chapter 9.1 */
-/* \brief RSL Message Discriminator: RLL */
-#define ABIS_RSL_MDISC_RLL 0x02
-/* \brief RSL Message Discriminator: Dedicated Channel */
-#define ABIS_RSL_MDISC_DED_CHAN 0x08
-/* \brief RSL Message Discriminator: Common Channel */
-#define ABIS_RSL_MDISC_COM_CHAN 0x0c
-/* \brief RSL Message Discriminator: TRX Management */
-#define ABIS_RSL_MDISC_TRX 0x10
-/* \brief RSL Message Discriminator: Location Service */
-#define ABIS_RSL_MDISC_LOC 0x20
-/* \brief RSL Message Discriminator: ip.access */
-#define ABIS_RSL_MDISC_IPACCESS 0x7e
-#define ABIS_RSL_MDISC_TRANSP 0x01
-
-/* \brief Check if given RSL message discriminator is transparent */
-#define ABIS_RSL_MDISC_IS_TRANSP(x) (x & 0x01)
-
-/* \brief RSL Message Tyoe (Chapter 9.1) */
-enum abis_rsl_msgtype {
- /* Radio Link Layer Management */
- RSL_MT_DATA_REQ = 0x01,
- RSL_MT_DATA_IND,
- RSL_MT_ERROR_IND,
- RSL_MT_EST_REQ,
- RSL_MT_EST_CONF,
- RSL_MT_EST_IND,
- RSL_MT_REL_REQ,
- RSL_MT_REL_CONF,
- RSL_MT_REL_IND,
- RSL_MT_UNIT_DATA_REQ,
- RSL_MT_UNIT_DATA_IND, /* 0x0b */
- RSL_MT_SUSP_REQ, /* non-standard elements */
- RSL_MT_SUSP_CONF,
- RSL_MT_RES_REQ,
- RSL_MT_RECON_REQ, /* 0x0f */
-
- /* Common Channel Management / TRX Management */
- RSL_MT_BCCH_INFO = 0x11,
- RSL_MT_CCCH_LOAD_IND,
- RSL_MT_CHAN_RQD,
- RSL_MT_DELETE_IND,
- RSL_MT_PAGING_CMD,
- RSL_MT_IMMEDIATE_ASSIGN_CMD,
- RSL_MT_SMS_BC_REQ,
- RSL_MT_CHAN_CONF, /* non-standard element */
- /* empty */
- RSL_MT_RF_RES_IND = 0x19,
- RSL_MT_SACCH_FILL,
- RSL_MT_OVERLOAD,
- RSL_MT_ERROR_REPORT,
- RSL_MT_SMS_BC_CMD,
- RSL_MT_CBCH_LOAD_IND,
- RSL_MT_NOT_CMD, /* 0x1f */
-
- /* Dedicate Channel Management */
- RSL_MT_CHAN_ACTIV = 0x21,
- RSL_MT_CHAN_ACTIV_ACK,
- RSL_MT_CHAN_ACTIV_NACK,
- RSL_MT_CONN_FAIL,
- RSL_MT_DEACTIVATE_SACCH,
- RSL_MT_ENCR_CMD,
- RSL_MT_HANDO_DET,
- RSL_MT_MEAS_RES,
- RSL_MT_MODE_MODIFY_REQ,
- RSL_MT_MODE_MODIFY_ACK,
- RSL_MT_MODE_MODIFY_NACK,
- RSL_MT_PHY_CONTEXT_REQ,
- RSL_MT_PHY_CONTEXT_CONF,
- RSL_MT_RF_CHAN_REL,
- RSL_MT_MS_POWER_CONTROL,
- RSL_MT_BS_POWER_CONTROL, /* 0x30 */
- RSL_MT_PREPROC_CONFIG,
- RSL_MT_PREPROC_MEAS_RES,
- RSL_MT_RF_CHAN_REL_ACK,
- RSL_MT_SACCH_INFO_MODIFY,
- RSL_MT_TALKER_DET,
- RSL_MT_LISTENER_DET,
- RSL_MT_REMOTE_CODEC_CONF_REP,
- RSL_MT_RTD_REP,
- RSL_MT_PRE_HANDO_NOTIF,
- RSL_MT_MR_CODEC_MOD_REQ,
- RSL_MT_MR_CODEC_MOD_ACK,
- RSL_MT_MR_CODEC_MOD_NACK,
- RSL_MT_MR_CODEC_MOD_PER,
- RSL_MT_TFO_REP,
- RSL_MT_TFO_MOD_REQ, /* 0x3f */
- RSL_MT_LOCATION_INFO = 0x41,
-
- /* ip.access specific RSL message types */
- RSL_MT_IPAC_DIR_RETR_ENQ = 0x40,
- RSL_MT_IPAC_PDCH_ACT = 0x48,
- RSL_MT_IPAC_PDCH_ACT_ACK,
- RSL_MT_IPAC_PDCH_ACT_NACK,
- RSL_MT_IPAC_PDCH_DEACT = 0x4b,
- RSL_MT_IPAC_PDCH_DEACT_ACK,
- RSL_MT_IPAC_PDCH_DEACT_NACK,
- RSL_MT_IPAC_CONNECT_MUX = 0x50,
- RSL_MT_IPAC_CONNECT_MUX_ACK,
- RSL_MT_IPAC_CONNECT_MUX_NACK,
- RSL_MT_IPAC_BIND_MUX = 0x53,
- RSL_MT_IPAC_BIND_MUX_ACK,
- RSL_MT_IPAC_BIND_MUX_NACK,
- RSL_MT_IPAC_DISC_MUX = 0x56,
- RSL_MT_IPAC_DISC_MUX_ACK,
- RSL_MT_IPAC_DISC_MUX_NACK,
- RSL_MT_IPAC_CRCX = 0x70, /* Bind to local BTS RTP port */
- RSL_MT_IPAC_CRCX_ACK,
- RSL_MT_IPAC_CRCX_NACK,
- RSL_MT_IPAC_MDCX = 0x73,
- RSL_MT_IPAC_MDCX_ACK,
- RSL_MT_IPAC_MDCX_NACK,
- RSL_MT_IPAC_DLCX_IND = 0x76,
- RSL_MT_IPAC_DLCX = 0x77,
- RSL_MT_IPAC_DLCX_ACK,
- RSL_MT_IPAC_DLCX_NACK,
-};
-
-/*! \brief Siemens vendor-specific RSL message types */
-enum abis_rsl_msgtype_siemens {
- RSL_MT_SIEMENS_MRPCI = 0x41,
- RSL_MT_SIEMENS_INTRAC_HO_COND_IND = 0x42,
- RSL_MT_SIEMENS_INTERC_HO_COND_IND = 0x43,
- RSL_MT_SIEMENS_FORCED_HO_REQ = 0x44,
- RSL_MT_SIEMENS_PREF_AREA_REQ = 0x45,
- RSL_MT_SIEMENS_PREF_AREA = 0x46,
- RSL_MT_SIEMENS_START_TRACE = 0x47,
- RSL_MT_SIEMENS_START_TRACE_ACK = 0x48,
- RSL_MT_SIEMENS_STOP_TRACE = 0x49,
- RSL_MT_SIEMENS_TRMR = 0x4a,
- RSL_MT_SIEMENS_HO_FAIL_IND = 0x4b,
- RSL_MT_SIEMENS_STOP_TRACE_ACK = 0x4c,
- RSL_MT_SIEMENS_UPLF = 0x4d,
- RSL_MT_SIEMENS_UPLB = 0x4e,
- RSL_MT_SIEMENS_SET_SYS_INFO_10 = 0x4f,
- RSL_MT_SIEMENS_MODIF_COND_IND = 0x50,
-};
-
-/*! \brief RSL Information Element Identifiers (Chapter 9.3) */
-enum abis_rsl_ie {
- RSL_IE_CHAN_NR = 0x01,
- RSL_IE_LINK_IDENT,
- RSL_IE_ACT_TYPE,
- RSL_IE_BS_POWER,
- RSL_IE_CHAN_IDENT,
- RSL_IE_CHAN_MODE,
- RSL_IE_ENCR_INFO,
- RSL_IE_FRAME_NUMBER,
- RSL_IE_HANDO_REF,
- RSL_IE_L1_INFO,
- RSL_IE_L3_INFO,
- RSL_IE_MS_IDENTITY,
- RSL_IE_MS_POWER,
- RSL_IE_PAGING_GROUP,
- RSL_IE_PAGING_LOAD,
- RSL_IE_PYHS_CONTEXT = 0x10,
- RSL_IE_ACCESS_DELAY,
- RSL_IE_RACH_LOAD,
- RSL_IE_REQ_REFERENCE,
- RSL_IE_RELEASE_MODE,
- RSL_IE_RESOURCE_INFO,
- RSL_IE_RLM_CAUSE,
- RSL_IE_STARTNG_TIME,
- RSL_IE_TIMING_ADVANCE,
- RSL_IE_UPLINK_MEAS,
- RSL_IE_CAUSE,
- RSL_IE_MEAS_RES_NR,
- RSL_IE_MSG_ID,
- /* reserved */
- RSL_IE_SYSINFO_TYPE = 0x1e,
- RSL_IE_MS_POWER_PARAM,
- RSL_IE_BS_POWER_PARAM,
- RSL_IE_PREPROC_PARAM,
- RSL_IE_PREPROC_MEAS,
- RSL_IE_IMM_ASS_INFO, /* Phase 1 (3.6.0), later Full below */
- RSL_IE_SMSCB_INFO = 0x24,
- RSL_IE_MS_TIMING_OFFSET,
- RSL_IE_ERR_MSG,
- RSL_IE_FULL_BCCH_INFO,
- RSL_IE_CHAN_NEEDED,
- RSL_IE_CB_CMD_TYPE,
- RSL_IE_SMSCB_MSG,
- RSL_IE_FULL_IMM_ASS_INFO,
- RSL_IE_SACCH_INFO,
- RSL_IE_CBCH_LOAD_INFO,
- RSL_IE_SMSCB_CHAN_INDICATOR,
- RSL_IE_GROUP_CALL_REF,
- RSL_IE_CHAN_DESC = 0x30,
- RSL_IE_NCH_DRX_INFO,
- RSL_IE_CMD_INDICATOR,
- RSL_IE_EMLPP_PRIO,
- RSL_IE_UIC,
- RSL_IE_MAIN_CHAN_REF,
- RSL_IE_MR_CONFIG,
- RSL_IE_MR_CONTROL,
- RSL_IE_SUP_CODEC_TYPES,
- RSL_IE_CODEC_CONFIG,
- RSL_IE_RTD,
- RSL_IE_TFO_STATUS,
- RSL_IE_LLP_APDU,
- /* Siemens vendor-specific */
- RSL_IE_SIEMENS_MRPCI = 0x40,
- RSL_IE_SIEMENS_PREF_AREA_TYPE = 0x43,
- RSL_IE_SIEMENS_ININ_CELL_HO_PAR = 0x45,
- RSL_IE_SIEMENS_TRACE_REF_NR = 0x46,
- RSL_IE_SIEMENS_INT_TRACE_IDX = 0x47,
- RSL_IE_SIEMENS_L2_HDR_INFO = 0x48,
- RSL_IE_SIEMENS_HIGHEST_RATE = 0x4e,
- RSL_IE_SIEMENS_SUGGESTED_RATE = 0x4f,
-
- /* ip.access */
- RSL_IE_IPAC_SRTP_CONFIG = 0xe0,
- RSL_IE_IPAC_PROXY_UDP = 0xe1,
- RSL_IE_IPAC_BSCMPL_TOUT = 0xe2,
- RSL_IE_IPAC_REMOTE_IP = 0xf0,
- RSL_IE_IPAC_REMOTE_PORT = 0xf1,
- RSL_IE_IPAC_RTP_PAYLOAD = 0xf2,
- RSL_IE_IPAC_LOCAL_PORT = 0xf3,
- RSL_IE_IPAC_SPEECH_MODE = 0xf4,
- RSL_IE_IPAC_LOCAL_IP = 0xf5,
- RSL_IE_IPAC_CONN_STAT = 0xf6,
- RSL_IE_IPAC_HO_C_PARMS = 0xf7,
- RSL_IE_IPAC_CONN_ID = 0xf8,
- RSL_IE_IPAC_RTP_CSD_FMT = 0xf9,
- RSL_IE_IPAC_RTP_JIT_BUF = 0xfa,
- RSL_IE_IPAC_RTP_COMPR = 0xfb,
- RSL_IE_IPAC_RTP_PAYLOAD2= 0xfc,
- RSL_IE_IPAC_RTP_MPLEX = 0xfd,
- RSL_IE_IPAC_RTP_MPLEX_ID= 0xfe,
-};
-
-/* Chapter 9.3.1 */
-#define RSL_CHAN_NR_MASK 0xf8
-#define RSL_CHAN_Bm_ACCHs 0x08
-#define RSL_CHAN_Lm_ACCHs 0x10 /* .. 0x18 */
-#define RSL_CHAN_SDCCH4_ACCH 0x20 /* .. 0x38 */
-#define RSL_CHAN_SDCCH8_ACCH 0x40 /* ...0x78 */
-#define RSL_CHAN_BCCH 0x80
-#define RSL_CHAN_RACH 0x88
-#define RSL_CHAN_PCH_AGCH 0x90
-
-/* Chapter 9.3.3 */
-#define RSL_ACT_TYPE_INITIAL 0x00
-#define RSL_ACT_TYPE_REACT 0x80
-#define RSL_ACT_INTRA_IMM_ASS 0x00
-#define RSL_ACT_INTRA_NORM_ASS 0x01
-#define RSL_ACT_INTER_ASYNC 0x02
-#define RSL_ACT_INTER_SYNC 0x03
-#define RSL_ACT_SECOND_ADD 0x04
-#define RSL_ACT_SECOND_MULTI 0x05
-
-/*! \brief RSL Channel Mode IF (Chapter 9.3.6) */
-struct rsl_ie_chan_mode {
- uint8_t dtx_dtu;
- uint8_t spd_ind;
- uint8_t chan_rt;
- uint8_t chan_rate;
-} __attribute__ ((packed));
-#define RSL_CMOD_DTXu 0x01 /* uplink */
-#define RSL_CMOD_DTXd 0x02 /* downlink */
-enum rsl_cmod_spd {
- RSL_CMOD_SPD_SPEECH = 0x01,
- RSL_CMOD_SPD_DATA = 0x02,
- RSL_CMOD_SPD_SIGN = 0x03,
-};
-#define RSL_CMOD_CRT_SDCCH 0x01
-#define RSL_CMOD_CRT_TCH_Bm 0x08 /* full-rate */
-#define RSL_CMOD_CRT_TCH_Lm 0x09 /* half-rate */
-/* FIXME: More CRT types */
-/* Speech */
-#define RSL_CMOD_SP_GSM1 0x01
-#define RSL_CMOD_SP_GSM2 0x11
-#define RSL_CMOD_SP_GSM3 0x21
-/* non-transparent data */
-#define RSL_CMOD_CSD_NT_43k5 0x74
-#define RSL_CMOD_CSD_NT_28k8 0x71
-#define RSL_CMOD_CSD_NT_14k5 0x58
-#define RSL_CMOD_CSD_NT_12k0 0x50
-#define RSL_CMOD_CSD_NT_6k0 0x51
-/* legacy #defines with wrong name */
-#define RSL_CMOD_SP_NT_14k5 RSL_CMOD_CSD_NT_14k5
-#define RSL_CMOD_SP_NT_12k0 RSL_CMOD_CSD_NT_12k0
-#define RSL_CMOD_SP_NT_6k0 RSL_CMOD_CSD_NT_6k0
-/* transparent data */
-#define RSL_CMOD_CSD_T_32000 0x38
-#define RSL_CMOD_CSD_T_29000 0x39
-#define RSL_CMOD_CSD_T_14400 0x18
-#define RSL_CMOD_CSD_T_9600 0x10
-#define RSL_CMOD_CSD_T_4800 0x11
-#define RSL_CMOD_CSD_T_2400 0x12
-#define RSL_CMOD_CSD_T_1200 0x13
-#define RSL_CMOD_CSD_T_600 0x14
-#define RSL_CMOD_CSD_T_1200_75 0x15
-
-/*! \brief RSL Channel Identification IE (Chapter 9.3.5) */
-struct rsl_ie_chan_ident {
- /* GSM 04.08 10.5.2.5 */
- struct {
- uint8_t iei;
- uint8_t chan_nr; /* enc_chan_nr */
- uint8_t oct3;
- uint8_t oct4;
- } chan_desc;
-#if 0 /* spec says we need this but Abissim doesn't use it */
- struct {
- uint8_t tag;
- uint8_t len;
- } mobile_alloc;
-#endif
-} __attribute__ ((packed));
-
-/* Chapter 9.3.22 */
-#define RLL_CAUSE_T200_EXPIRED 0x01
-#define RLL_CAUSE_REEST_REQ 0x02
-#define RLL_CAUSE_UNSOL_UA_RESP 0x03
-#define RLL_CAUSE_UNSOL_DM_RESP 0x04
-#define RLL_CAUSE_UNSOL_DM_RESP_MF 0x05
-#define RLL_CAUSE_UNSOL_SPRV_RESP 0x06
-#define RLL_CAUSE_SEQ_ERR 0x07
-#define RLL_CAUSE_UFRM_INC_PARAM 0x08
-#define RLL_CAUSE_SFRM_INC_PARAM 0x09
-#define RLL_CAUSE_IFRM_INC_MBITS 0x0a
-#define RLL_CAUSE_IFRM_INC_LEN 0x0b
-#define RLL_CAUSE_FRM_UNIMPL 0x0c
-#define RLL_CAUSE_SABM_MF 0x0d
-#define RLL_CAUSE_SABM_INFO_NOTALL 0x0e
-
-/* Chapter 9.3.26 */
-#define RSL_ERRCLS_NORMAL 0x00
-#define RSL_ERRCLS_RESOURCE_UNAVAIL 0x20
-#define RSL_ERRCLS_SERVICE_UNAVAIL 0x30
-#define RSL_ERRCLS_SERVICE_UNIMPL 0x40
-#define RSL_ERRCLS_INVAL_MSG 0x50
-#define RSL_ERRCLS_PROTO_ERROR 0x60
-#define RSL_ERRCLS_INTERWORKING 0x70
-
-/* normal event */
-#define RSL_ERR_RADIO_IF_FAIL 0x00
-#define RSL_ERR_RADIO_LINK_FAIL 0x01
-#define RSL_ERR_HANDOVER_ACC_FAIL 0x02
-#define RSL_ERR_TALKER_ACC_FAIL 0x03
-#define RSL_ERR_OM_INTERVENTION 0x07
-#define RSL_ERR_NORMAL_UNSPEC 0x0f
-#define RSL_ERR_T_MSRFPCI_EXP 0x18
-/* resource unavailable */
-#define RSL_ERR_EQUIPMENT_FAIL 0x20
-#define RSL_ERR_RR_UNAVAIL 0x21
-#define RSL_ERR_TERR_CH_FAIL 0x22
-#define RSL_ERR_CCCH_OVERLOAD 0x23
-#define RSL_ERR_ACCH_OVERLOAD 0x24
-#define RSL_ERR_PROCESSOR_OVERLOAD 0x25
-#define RSL_ERR_RES_UNAVAIL 0x2f
-/* service or option not available */
-#define RSL_ERR_TRANSC_UNAVAIL 0x30
-#define RSL_ERR_SERV_OPT_UNAVAIL 0x3f
-/* service or option not implemented */
-#define RSL_ERR_ENCR_UNIMPL 0x40
-#define RSL_ERR_SERV_OPT_UNIMPL 0x4f
-/* invalid message */
-#define RSL_ERR_RCH_ALR_ACTV_ALLOC 0x50
-#define RSL_ERR_INVALID_MESSAGE 0x5f
-/* protocol error */
-#define RSL_ERR_MSG_DISCR 0x60
-#define RSL_ERR_MSG_TYPE 0x61
-#define RSL_ERR_MSG_SEQ 0x62
-#define RSL_ERR_IE_ERROR 0x63
-#define RSL_ERR_MAND_IE_ERROR 0x64
-#define RSL_ERR_OPT_IE_ERROR 0x65
-#define RSL_ERR_IE_NONEXIST 0x66
-#define RSL_ERR_IE_LENGTH 0x67
-#define RSL_ERR_IE_CONTENT 0x68
-#define RSL_ERR_PROTO 0x6f
-/* interworking */
-#define RSL_ERR_INTERWORKING 0x7f
-
-/* Chapter 9.3.30 */
-#define RSL_SYSTEM_INFO_8 0x00
-#define RSL_SYSTEM_INFO_1 0x01
-#define RSL_SYSTEM_INFO_2 0x02
-#define RSL_SYSTEM_INFO_3 0x03
-#define RSL_SYSTEM_INFO_4 0x04
-#define RSL_SYSTEM_INFO_5 0x05
-#define RSL_SYSTEM_INFO_6 0x06
-#define RSL_SYSTEM_INFO_7 0x07
-#define RSL_SYSTEM_INFO_16 0x08
-#define RSL_SYSTEM_INFO_17 0x09
-#define RSL_SYSTEM_INFO_2bis 0x0a
-#define RSL_SYSTEM_INFO_2ter 0x0b
-#define RSL_SYSTEM_INFO_5bis 0x0d
-#define RSL_SYSTEM_INFO_5ter 0x0e
-#define RSL_SYSTEM_INFO_10 0x0f
-#define RSL_EXT_MEAS_ORDER 0x47
-#define RSL_MEAS_INFO 0x48
-#define RSL_SYSTEM_INFO_13 0x28
-#define RSL_SYSTEM_INFO_2quater 0x29
-#define RSL_SYSTEM_INFO_9 0x2a
-#define RSL_SYSTEM_INFO_18 0x2b
-#define RSL_SYSTEM_INFO_19 0x2c
-#define RSL_SYSTEM_INFO_20 0x2d
-
-/* Chapter 9.3.40 */
-#define RSL_CHANNEED_ANY 0x00
-#define RSL_CHANNEED_SDCCH 0x01
-#define RSL_CHANNEED_TCH_F 0x02
-#define RSL_CHANNEED_TCH_ForH 0x03
-
-/*! \brief RSL Cell Broadcast Command (Chapter 9.3.45) */
-struct rsl_ie_cb_cmd_type {
- uint8_t last_block:2;
- uint8_t spare:1;
- uint8_t def_bcast:1;
- uint8_t command:4;
-} __attribute__ ((packed));
-/* ->command */
-#define RSL_CB_CMD_TYPE_NORMAL 0x00
-#define RSL_CB_CMD_TYPE_SCHEDULE 0x08
-#define RSL_CB_CMD_TYPE_DEFAULT 0x0e
-#define RSL_CB_CMD_TYPE_NULL 0x0f
-/* ->def_bcast */
-#define RSL_CB_CMD_DEFBCAST_NORMAL 0
-#define RSL_CB_CMD_DEFBCAST_NULL 1
-/* ->last_block */
-#define RSL_CB_CMD_LASTBLOCK_4 0
-#define RSL_CB_CMD_LASTBLOCK_1 1
-#define RSL_CB_CMD_LASTBLOCK_2 2
-#define RSL_CB_CMD_LASTBLOCK_3 3
-
-/* Chapter 3.3.2.3 Brocast control channel */
-/* CCCH-CONF, NC is not combined */
-#define RSL_BCCH_CCCH_CONF_1_NC 0x00
-#define RSL_BCCH_CCCH_CONF_1_C 0x01
-#define RSL_BCCH_CCCH_CONF_2_NC 0x02
-#define RSL_BCCH_CCCH_CONF_3_NC 0x04
-#define RSL_BCCH_CCCH_CONF_4_NC 0x06
-
-/* BS-PA-MFRMS */
-#define RSL_BS_PA_MFRMS_2 0x00
-#define RSL_BS_PA_MFRMS_3 0x01
-#define RSL_BS_PA_MFRMS_4 0x02
-#define RSL_BS_PA_MFRMS_5 0x03
-#define RSL_BS_PA_MFRMS_6 0x04
-#define RSL_BS_PA_MFRMS_7 0x05
-#define RSL_BS_PA_MFRMS_8 0x06
-#define RSL_BS_PA_MFRMS_9 0x07
-
-/* RSL_IE_IPAC_RTP_PAYLOAD[2] */
-enum rsl_ipac_rtp_payload {
- RSL_IPAC_RTP_GSM = 1,
- RSL_IPAC_RTP_EFR,
- RSL_IPAC_RTP_AMR,
- RSL_IPAC_RTP_CSD,
- RSL_IPAC_RTP_MUX,
-};
-
-/* RSL_IE_IPAC_SPEECH_MODE, lower four bits */
-enum rsl_ipac_speech_mode_s {
- RSL_IPAC_SPEECH_GSM_FR = 0, /* GSM FR (Type 1, FS) */
- RSL_IPAC_SPEECH_GSM_EFR = 1, /* GSM EFR (Type 2, FS) */
- RSL_IPAC_SPEECH_GSM_AMR_FR = 2, /* GSM AMR/FR (Type 3, FS) */
- RSL_IPAC_SPEECH_GSM_HR = 3, /* GSM HR (Type 1, HS) */
- RSL_IPAC_SPEECH_GSM_AMR_HR = 5, /* GSM AMR/hr (Type 3, HS) */
- RSL_IPAC_SPEECH_AS_RTP = 0xf, /* As specified by RTP Payload IE */
-};
-/* RSL_IE_IPAC_SPEECH_MODE, upper four bits */
-enum rsl_ipac_speech_mode_m {
- RSL_IPAC_SPEECH_M_RXTX = 0, /* Send and Receive */
- RSL_IPAC_SPEECH_M_RX = 1, /* Receive only */
- RSL_IPAC_SPEECH_M_TX = 2, /* Send only */
-};
-
-/* RSL_IE_IPAC_RTP_CSD_FMT, lower four bits */
-enum rsl_ipac_rtp_csd_format_d {
- RSL_IPAC_RTP_CSD_EXT_TRAU = 0,
- RSL_IPAC_RTP_CSD_NON_TRAU = 1,
- RSL_IPAC_RTP_CSD_TRAU_BTS = 2,
- RSL_IPAC_RTP_CSD_IWF_FREE = 3,
-};
-/* RSL_IE_IPAC_RTP_CSD_FMT, upper four bits */
-enum rsl_ipac_rtp_csd_format_ir {
- RSL_IPAC_RTP_CSD_IR_8k = 0,
- RSL_IPAC_RTP_CSD_IR_16k = 1,
- RSL_IPAC_RTP_CSD_IR_32k = 2,
- RSL_IPAC_RTP_CSD_IR_64k = 3,
-};
-
-/* Siemens vendor-specific RSL extensions */
-struct rsl_mrpci {
- uint8_t power_class:3,
- vgcs_capable:1,
- vbs_capable:1,
- gsm_phase:2;
-} __attribute__ ((packed));
-
-enum rsl_mrpci_pwrclass {
- RSL_MRPCI_PWRC_1 = 0,
- RSL_MRPCI_PWRC_2 = 1,
- RSL_MRPCI_PWRC_3 = 2,
- RSL_MRPCI_PWRC_4 = 3,
- RSL_MRPCI_PWRC_5 = 4,
-};
-enum rsl_mrpci_phase {
- RSL_MRPCI_PHASE_1 = 0,
- /* reserved */
- RSL_MRPCI_PHASE_2 = 2,
- RSL_MRPCI_PHASE_2PLUS = 3,
-};
-
-/*! @} */
-
-#endif /* PROTO_GSM_08_58_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_12_21.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_12_21.h
deleted file mode 100644
index 694df938..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_12_21.h
+++ /dev/null
@@ -1,748 +0,0 @@
-#ifndef PROTO_GSM_12_21_H
-#define PROTO_GSM_12_21_H
-
-/* GSM Network Management messages on the A-bis interface
- * 3GPP TS 12.21 version 8.0.0 Release 1999 / ETSI TS 100 623 V8.0.0 */
-
-/* (C) 2008-2009 by Harald Welte <laforge@gnumonks.org>
- * All Rights Reserved
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- */
-
-/*! \addtogroup oml
- * @{
- */
-
-/*! \file gsm_12_21.h */
-
-#include <stdint.h>
-#include <osmocom/gsm/tlv.h>
-
-/*! \brief generic header in front of every OML message according to TS 08.59 */
-struct abis_om_hdr {
- /*! \brief Message Discriminator \ref abis_oml_mdisc */
- uint8_t mdisc;
- /*! \brief Placement (like \ref ABIS_OM_PLACEMENT_ONLY) */
- uint8_t placement;
- /*! \brief Sequence Number (if \ref ABIS_OM_PLACEMENT_MIDDLE) */
- uint8_t sequence;
- /*! \brief Length in octets */
- uint8_t length;
- /*! \brief actual payload data */
- uint8_t data[0];
-} __attribute__ ((packed));
-
-/*! \brief Message Discriminator for Formatted Object Messages */
-#define ABIS_OM_MDISC_FOM 0x80
-/*! \brief Message Discriminator for Man Machine Interface */
-#define ABIS_OM_MDISC_MMI 0x40
-/*! \brief Message Discriminator for TRAU management */
-#define ABIS_OM_MDISC_TRAU 0x20
-/*! \brief Message Discriminator for Manufacturer Specific Messages */
-#define ABIS_OM_MDISC_MANUF 0x10
-
-/*! \brief Entire OML message is in the L2 frame */
-#define ABIS_OM_PLACEMENT_ONLY 0x80
-/*! \brief First fragment of OML message is in this L2 frame */
-#define ABIS_OM_PLACEMENT_FIRST 0x40
-/*! \brief Middle fragment of OML message is in this L2 frame */
-#define ABIS_OM_PLACEMENT_MIDDLE 0x20
-/*! \brief Last fragment of OML message is in this L2 frame */
-#define ABIS_OM_PLACEMENT_LAST 0x10
-
-/*! \brief OML Object Instance */
-struct abis_om_obj_inst {
- uint8_t bts_nr; /*!< \brief BTS Number */
- uint8_t trx_nr; /*!< \brief TRX Number */
- uint8_t ts_nr; /*!< \brief Timeslot Number */
-} __attribute__ ((packed));
-
-/*! \brief OML Object Instance */
-struct abis_om_fom_hdr {
- uint8_t msg_type; /*!< \brief Message Type (\ref abis_nm_msgtype) */
- uint8_t obj_class; /*!< \brief Object Class (\ref abis_nm_obj_class) */
- struct abis_om_obj_inst obj_inst; /*!< \brief Object Instance */
- uint8_t data[0]; /*!< \brief Data */
-} __attribute__ ((packed));
-
-/*! \brief Size of the OML FOM header in octets */
-#define ABIS_OM_FOM_HDR_SIZE (sizeof(struct abis_om_hdr) + sizeof(struct abis_om_fom_hdr))
-
-/*! \brief OML Message Type (Section 9.1) */
-enum abis_nm_msgtype {
- /* SW Download Management Messages */
- NM_MT_LOAD_INIT = 0x01,
- NM_MT_LOAD_INIT_ACK,
- NM_MT_LOAD_INIT_NACK,
- NM_MT_LOAD_SEG,
- NM_MT_LOAD_SEG_ACK,
- NM_MT_LOAD_ABORT,
- NM_MT_LOAD_END,
- NM_MT_LOAD_END_ACK,
- NM_MT_LOAD_END_NACK,
- NM_MT_SW_ACT_REQ, /* BTS->BSC */
- NM_MT_SW_ACT_REQ_ACK,
- NM_MT_SW_ACT_REQ_NACK,
- NM_MT_ACTIVATE_SW, /* BSC->BTS */
- NM_MT_ACTIVATE_SW_ACK,
- NM_MT_ACTIVATE_SW_NACK,
- NM_MT_SW_ACTIVATED_REP, /* 0x10 */
- /* A-bis Interface Management Messages */
- NM_MT_ESTABLISH_TEI = 0x21,
- NM_MT_ESTABLISH_TEI_ACK,
- NM_MT_ESTABLISH_TEI_NACK,
- NM_MT_CONN_TERR_SIGN,
- NM_MT_CONN_TERR_SIGN_ACK,
- NM_MT_CONN_TERR_SIGN_NACK,
- NM_MT_DISC_TERR_SIGN,
- NM_MT_DISC_TERR_SIGN_ACK,
- NM_MT_DISC_TERR_SIGN_NACK,
- NM_MT_CONN_TERR_TRAF,
- NM_MT_CONN_TERR_TRAF_ACK,
- NM_MT_CONN_TERR_TRAF_NACK,
- NM_MT_DISC_TERR_TRAF,
- NM_MT_DISC_TERR_TRAF_ACK,
- NM_MT_DISC_TERR_TRAF_NACK,
- /* Transmission Management Messages */
- NM_MT_CONN_MDROP_LINK = 0x31,
- NM_MT_CONN_MDROP_LINK_ACK,
- NM_MT_CONN_MDROP_LINK_NACK,
- NM_MT_DISC_MDROP_LINK,
- NM_MT_DISC_MDROP_LINK_ACK,
- NM_MT_DISC_MDROP_LINK_NACK,
- /* Air Interface Management Messages */
- NM_MT_SET_BTS_ATTR = 0x41,
- NM_MT_SET_BTS_ATTR_ACK,
- NM_MT_SET_BTS_ATTR_NACK,
- NM_MT_SET_RADIO_ATTR,
- NM_MT_SET_RADIO_ATTR_ACK,
- NM_MT_SET_RADIO_ATTR_NACK,
- NM_MT_SET_CHAN_ATTR,
- NM_MT_SET_CHAN_ATTR_ACK,
- NM_MT_SET_CHAN_ATTR_NACK,
- /* Test Management Messages */
- NM_MT_PERF_TEST = 0x51,
- NM_MT_PERF_TEST_ACK,
- NM_MT_PERF_TEST_NACK,
- NM_MT_TEST_REP,
- NM_MT_SEND_TEST_REP,
- NM_MT_SEND_TEST_REP_ACK,
- NM_MT_SEND_TEST_REP_NACK,
- NM_MT_STOP_TEST,
- NM_MT_STOP_TEST_ACK,
- NM_MT_STOP_TEST_NACK,
- /* State Management and Event Report Messages */
- NM_MT_STATECHG_EVENT_REP = 0x61,
- NM_MT_FAILURE_EVENT_REP,
- NM_MT_STOP_EVENT_REP,
- NM_MT_STOP_EVENT_REP_ACK,
- NM_MT_STOP_EVENT_REP_NACK,
- NM_MT_REST_EVENT_REP,
- NM_MT_REST_EVENT_REP_ACK,
- NM_MT_REST_EVENT_REP_NACK,
- NM_MT_CHG_ADM_STATE,
- NM_MT_CHG_ADM_STATE_ACK,
- NM_MT_CHG_ADM_STATE_NACK,
- NM_MT_CHG_ADM_STATE_REQ,
- NM_MT_CHG_ADM_STATE_REQ_ACK,
- NM_MT_CHG_ADM_STATE_REQ_NACK,
- NM_MT_REP_OUTST_ALARMS = 0x93,
- NM_MT_REP_OUTST_ALARMS_ACK,
- NM_MT_REP_OUTST_ALARMS_NACK,
- /* Equipment Management Messages */
- NM_MT_CHANGEOVER = 0x71,
- NM_MT_CHANGEOVER_ACK,
- NM_MT_CHANGEOVER_NACK,
- NM_MT_OPSTART,
- NM_MT_OPSTART_ACK,
- NM_MT_OPSTART_NACK,
- NM_MT_REINIT,
- NM_MT_REINIT_ACK,
- NM_MT_REINIT_NACK,
- NM_MT_SET_SITE_OUT, /* BS11: get alarm ?!? */
- NM_MT_SET_SITE_OUT_ACK,
- NM_MT_SET_SITE_OUT_NACK,
- NM_MT_CHG_HW_CONF = 0x90,
- NM_MT_CHG_HW_CONF_ACK,
- NM_MT_CHG_HW_CONF_NACK,
- /* Measurement Management Messages */
- NM_MT_MEAS_RES_REQ = 0x8a,
- NM_MT_MEAS_RES_RESP,
- NM_MT_STOP_MEAS,
- NM_MT_START_MEAS,
- /* Other Messages */
- NM_MT_GET_ATTR = 0x81,
- NM_MT_GET_ATTR_RESP,
- NM_MT_GET_ATTR_NACK,
- NM_MT_SET_ALARM_THRES,
- NM_MT_SET_ALARM_THRES_ACK,
- NM_MT_SET_ALARM_THRES_NACK,
-};
-
-/*! \brief Siemens specific OML Message Types */
-enum abis_nm_msgtype_bs11 {
- NM_MT_BS11_RESET_RESOURCE = 0x74,
-
- NM_MT_BS11_BEGIN_DB_TX = 0xa3,
- NM_MT_BS11_BEGIN_DB_TX_ACK,
- NM_MT_BS11_BEGIN_DB_TX_NACK,
- NM_MT_BS11_END_DB_TX = 0xa6,
- NM_MT_BS11_END_DB_TX_ACK,
- NM_MT_BS11_END_DB_TX_NACK,
- NM_MT_BS11_CREATE_OBJ = 0xa9,
- NM_MT_BS11_CREATE_OBJ_ACK,
- NM_MT_BS11_CREATE_OBJ_NACK,
- NM_MT_BS11_DELETE_OBJ = 0xac,
- NM_MT_BS11_DELETE_OBJ_ACK,
- NM_MT_BS11_DELETE_OBJ_NACK,
-
- NM_MT_BS11_SET_ATTR = 0xd0,
- NM_MT_BS11_SET_ATTR_ACK,
- NM_MT_BS11_SET_ATTR_NACK,
- NM_MT_BS11_LMT_SESSION = 0xdc,
-
- NM_MT_BS11_GET_STATE = 0xe3,
- NM_MT_BS11_GET_STATE_ACK,
- NM_MT_BS11_LMT_LOGON = 0xe5,
- NM_MT_BS11_LMT_LOGON_ACK,
- NM_MT_BS11_RESTART = 0xe7,
- NM_MT_BS11_RESTART_ACK,
- NM_MT_BS11_DISCONNECT = 0xe9,
- NM_MT_BS11_DISCONNECT_ACK,
- NM_MT_BS11_LMT_LOGOFF = 0xec,
- NM_MT_BS11_LMT_LOGOFF_ACK,
- NM_MT_BS11_RECONNECT = 0xf1,
- NM_MT_BS11_RECONNECT_ACK,
-};
-
-/*! \brief ip.access specific OML Message Types */
-enum abis_nm_msgtype_ipacc {
- NM_MT_IPACC_RESTART = 0x87,
- NM_MT_IPACC_RESTART_ACK,
- NM_MT_IPACC_RESTART_NACK,
- NM_MT_IPACC_RSL_CONNECT = 0xe0,
- NM_MT_IPACC_RSL_CONNECT_ACK,
- NM_MT_IPACC_RSL_CONNECT_NACK,
- NM_MT_IPACC_RSL_DISCONNECT = 0xe3,
- NM_MT_IPACC_RSL_DISCONNECT_ACK,
- NM_MT_IPACC_RSL_DISCONNECT_NACK,
- NM_MT_IPACC_CONN_TRAF = 0xe6,
- NM_MT_IPACC_CONN_TRAF_ACK,
- NM_MT_IPACC_CONN_TRAF_NACK,
- NM_MT_IPACC_DEF_BOOT_SW = 0xec,
- NM_MT_IPACC_DEF_BOOT_SW_ACK,
- MN_MT_IPACC_DEF_BOOT_SW_NACK,
- NM_MT_IPACC_SET_NVATTR = 0xef,
- NM_MT_IPACC_SET_NVATTR_ACK,
- NM_MT_IPACC_SET_NVATTR_NACK,
- NM_MT_IPACC_GET_NVATTR = 0xf2,
- NM_MT_IPACC_GET_NVATTR_ACK,
- NM_MT_IPACC_GET_NVATTR_NACK,
- NM_MT_IPACC_SET_ATTR = 0xf5,
- NM_MT_IPACC_SET_ATTR_ACK,
- NM_MT_IPACC_SET_ATTR_NACK,
-};
-
-enum abis_nm_bs11_cell_alloc {
- NM_BS11_CANR_GSM = 0x00,
- NM_BS11_CANR_DCS1800 = 0x01,
-};
-
-/*! \brief OML Object Class (Section 9.2) */
-enum abis_nm_obj_class {
- NM_OC_SITE_MANAGER = 0x00,
- NM_OC_BTS,
- NM_OC_RADIO_CARRIER,
- NM_OC_CHANNEL,
- NM_OC_BASEB_TRANSC,
- /* RFU: 05-FE */
-
- NM_OC_IPAC_E1_TRUNK = 0x0e,
- NM_OC_IPAC_E1_PORT = 0x0f,
- NM_OC_IPAC_E1_CHAN = 0x10,
- NM_OC_IPAC_CLK_MODULE = 0x22,
-
- NM_OC_BS11_ADJC = 0xa0,
- NM_OC_BS11_HANDOVER = 0xa1,
- NM_OC_BS11_PWR_CTRL = 0xa2,
- NM_OC_BS11_BTSE = 0xa3, /* LMT? */
- NM_OC_BS11_RACK = 0xa4,
- NM_OC_BS11 = 0xa5, /* 01: ALCO */
- NM_OC_BS11_TEST = 0xa6,
- NM_OC_BS11_ENVABTSE = 0xa8,
- NM_OC_BS11_BPORT = 0xa9,
-
- NM_OC_GPRS_NSE = 0xf0,
- NM_OC_GPRS_CELL = 0xf1,
- NM_OC_GPRS_NSVC = 0xf2,
-
- NM_OC_NULL = 0xff,
-};
-
-/*! \brief OML Attributes / IEs (Section 9.4) */
-enum abis_nm_attr {
- NM_ATT_ABIS_CHANNEL = 0x01,
- NM_ATT_ADD_INFO,
- NM_ATT_ADD_TEXT,
- NM_ATT_ADM_STATE,
- NM_ATT_ARFCN_LIST,
- NM_ATT_AUTON_REPORT,
- NM_ATT_AVAIL_STATUS,
- NM_ATT_BCCH_ARFCN,
- NM_ATT_BSIC,
- NM_ATT_BTS_AIR_TIMER,
- NM_ATT_CCCH_L_I_P,
- NM_ATT_CCCH_L_T,
- NM_ATT_CHAN_COMB,
- NM_ATT_CONN_FAIL_CRIT,
- NM_ATT_DEST,
- /* res */
- NM_ATT_EVENT_TYPE = 0x11, /* BS11: file data ?!? */
- NM_ATT_FILE_ID,
- NM_ATT_FILE_VERSION,
- NM_ATT_GSM_TIME,
- NM_ATT_HSN,
- NM_ATT_HW_CONFIG,
- NM_ATT_HW_DESC,
- NM_ATT_INTAVE_PARAM,
- NM_ATT_INTERF_BOUND,
- NM_ATT_LIST_REQ_ATTR,
- NM_ATT_MAIO,
- NM_ATT_MANUF_STATE,
- NM_ATT_MANUF_THRESH,
- NM_ATT_MANUF_ID,
- NM_ATT_MAX_TA,
- NM_ATT_MDROP_LINK, /* 0x20 */
- NM_ATT_MDROP_NEXT,
- NM_ATT_NACK_CAUSES,
- NM_ATT_NY1,
- NM_ATT_OPER_STATE,
- NM_ATT_OVERL_PERIOD,
- NM_ATT_PHYS_CONF,
- NM_ATT_POWER_CLASS,
- NM_ATT_POWER_THRESH,
- NM_ATT_PROB_CAUSE,
- NM_ATT_RACH_B_THRESH,
- NM_ATT_LDAVG_SLOTS,
- NM_ATT_RAD_SUBC,
- NM_ATT_RF_MAXPOWR_R,
- NM_ATT_SITE_INPUTS,
- NM_ATT_SITE_OUTPUTS,
- NM_ATT_SOURCE, /* 0x30 */
- NM_ATT_SPEC_PROB,
- NM_ATT_START_TIME,
- NM_ATT_T200,
- NM_ATT_TEI,
- NM_ATT_TEST_DUR,
- NM_ATT_TEST_NO,
- NM_ATT_TEST_REPORT,
- NM_ATT_VSWR_THRESH,
- NM_ATT_WINDOW_SIZE,
- /* Res */
- NM_ATT_BS11_RSSI_OFFS = 0x3d,
- NM_ATT_BS11_TXPWR = 0x3e,
- NM_ATT_BS11_DIVERSITY = 0x3f,
- /* Res */
- NM_ATT_TSC = 0x40,
- NM_ATT_SW_CONFIG,
- NM_ATT_SW_DESCR,
- NM_ATT_SEVERITY,
- NM_ATT_GET_ARI,
- NM_ATT_HW_CONF_CHG,
- NM_ATT_OUTST_ALARM,
- NM_ATT_FILE_DATA,
- NM_ATT_MEAS_RES,
- NM_ATT_MEAS_TYPE,
-
- NM_ATT_BS11_ESN_FW_CODE_NO = 0x4c,
- NM_ATT_BS11_ESN_HW_CODE_NO = 0x4f,
-
- NM_ATT_BS11_ESN_PCB_SERIAL = 0x55,
- NM_ATT_BS11_EXCESSIVE_DISTANCE = 0x58,
-
- NM_ATT_BS11_ALL_TEST_CATG = 0x60,
- NM_ATT_BS11_BTSLS_HOPPING,
- NM_ATT_BS11_CELL_ALLOC_NR,
- NM_ATT_BS11_CELL_GLOBAL_ID,
- NM_ATT_BS11_ENA_INTERF_CLASS = 0x66,
- NM_ATT_BS11_ENA_INT_INTEC_HANDO = 0x67,
- NM_ATT_BS11_ENA_INT_INTRC_HANDO = 0x68,
- NM_ATT_BS11_ENA_MS_PWR_CTRL = 0x69,
- NM_ATT_BS11_ENA_PWR_BDGT_HO = 0x6a,
- NM_ATT_BS11_ENA_PWR_CTRL_RLFW = 0x6b,
- NM_ATT_BS11_ENA_RXLEV_HO = 0x6c,
- NM_ATT_BS11_ENA_RXQUAL_HO = 0x6d,
- NM_ATT_BS11_FACCH_QUAL = 0x6e,
-
- NM_ATT_IPACC_DST_IP = 0x80,
- NM_ATT_IPACC_DST_IP_PORT = 0x81,
- NM_ATT_IPACC_SSRC = 0x82,
- NM_ATT_IPACC_RTP_PAYLD_TYPE = 0x83,
- NM_ATT_IPACC_BASEB_ID = 0x84,
- NM_ATT_IPACC_STREAM_ID = 0x85,
- NM_ATT_IPACC_NV_FLAGS = 0x86,
- NM_ATT_IPACC_FREQ_CTRL = 0x87,
- NM_ATT_IPACC_PRIM_OML_CFG = 0x88,
- NM_ATT_IPACC_SEC_OML_CFG = 0x89,
- NM_ATT_IPACC_IP_IF_CFG = 0x8a, /* IP interface */
- NM_ATT_IPACC_IP_GW_CFG = 0x8b, /* IP gateway */
- NM_ATT_IPACC_IN_SERV_TIME = 0x8c,
- NM_ATT_IPACC_TRX_BTS_ASS = 0x8d,
- NM_ATT_IPACC_LOCATION = 0x8e, /* string describing location */
- NM_ATT_IPACC_PAGING_CFG = 0x8f,
- NM_ATT_IPACC_FILE_DATA = 0x90,
- NM_ATT_IPACC_UNIT_ID = 0x91, /* Site/BTS/TRX */
- NM_ATT_IPACC_PARENT_UNIT_ID = 0x92,
- NM_ATT_IPACC_UNIT_NAME = 0x93, /* default: nbts-<mac-as-string> */
- NM_ATT_IPACC_SNMP_CFG = 0x94,
- NM_ATT_IPACC_PRIM_OML_CFG_LIST = 0x95,
- NM_ATT_IPACC_PRIM_OML_FB_TOUT = 0x96,
- NM_ATT_IPACC_CUR_SW_CFG = 0x97,
- NM_ATT_IPACC_TIMING_BUS = 0x98,
- NM_ATT_IPACC_CGI = 0x99,
- NM_ATT_IPACC_RAC = 0x9a,
- NM_ATT_IPACC_OBJ_VERSION = 0x9b,
- NM_ATT_IPACC_GPRS_PAGING_CFG = 0x9c,
- NM_ATT_IPACC_NSEI = 0x9d,
- NM_ATT_IPACC_BVCI = 0x9e,
- NM_ATT_IPACC_NSVCI = 0x9f,
- NM_ATT_IPACC_NS_CFG = 0xa0,
- NM_ATT_IPACC_BSSGP_CFG = 0xa1,
- NM_ATT_IPACC_NS_LINK_CFG = 0xa2,
- NM_ATT_IPACC_RLC_CFG = 0xa3,
- NM_ATT_IPACC_ALM_THRESH_LIST = 0xa4,
- NM_ATT_IPACC_MONIT_VAL_LIST = 0xa5,
- NM_ATT_IPACC_TIB_CONTROL = 0xa6,
- NM_ATT_IPACC_SUPP_FEATURES = 0xa7,
- NM_ATT_IPACC_CODING_SCHEMES = 0xa8,
- NM_ATT_IPACC_RLC_CFG_2 = 0xa9,
- NM_ATT_IPACC_HEARTB_TOUT = 0xaa,
- NM_ATT_IPACC_UPTIME = 0xab,
- NM_ATT_IPACC_RLC_CFG_3 = 0xac,
- NM_ATT_IPACC_SSL_CFG = 0xad,
- NM_ATT_IPACC_SEC_POSSIBLE = 0xae,
- NM_ATT_IPACC_IML_SSL_STATE = 0xaf,
- NM_ATT_IPACC_REVOC_DATE = 0xb0,
-
-
- NM_ATT_BS11_RF_RES_IND_PER = 0x8f,
-
- NM_ATT_BS11_RX_LEV_MIN_CELL = 0x90,
- NM_ATT_BS11_ABIS_EXT_TIME = 0x91,
- NM_ATT_BS11_TIMER_HO_REQUEST = 0x92,
- NM_ATT_BS11_TIMER_NCELL = 0x93,
- NM_ATT_BS11_TSYNC = 0x94,
- NM_ATT_BS11_TTRAU = 0x95,
- NM_ATT_BS11_EMRG_CFG_MEMBER = 0x9b,
- NM_ATT_BS11_TRX_AREA = 0x9f,
-
- NM_ATT_BS11_BCCH_RECONF = 0xd7,
- NM_ATT_BS11_BIT_ERR_THESH = 0xa0,
- NM_ATT_BS11_BOOT_SW_VERS = 0xa1,
- NM_ATT_BS11_CCLK_ACCURACY = 0xa3,
- NM_ATT_BS11_CCLK_TYPE = 0xa4,
- NM_ATT_BS11_INP_IMPEDANCE = 0xaa,
- NM_ATT_BS11_L1_PROT_TYPE = 0xab,
- NM_ATT_BS11_LINE_CFG = 0xac,
- NM_ATT_BS11_LI_PORT_1 = 0xad,
- NM_ATT_BS11_LI_PORT_2 = 0xae,
-
- NM_ATT_BS11_L1_REM_ALM_TYPE = 0xb0,
- NM_ATT_BS11_SW_LOAD_INTENDED = 0xbb,
- NM_ATT_BS11_SW_LOAD_SAFETY = 0xbc,
- NM_ATT_BS11_SW_LOAD_STORED = 0xbd,
-
- NM_ATT_BS11_VENDOR_NAME = 0xc1,
- NM_ATT_BS11_HOPPING_MODE = 0xc5,
- NM_ATT_BS11_LMT_LOGON_SESSION = 0xc6,
- NM_ATT_BS11_LMT_LOGIN_TIME = 0xc7,
- NM_ATT_BS11_LMT_USER_ACC_LEV = 0xc8,
- NM_ATT_BS11_LMT_USER_NAME = 0xc9,
-
- NM_ATT_BS11_L1_CONTROL_TS = 0xd8,
- NM_ATT_BS11_RADIO_MEAS_GRAN = 0xdc, /* in SACCH multiframes */
- NM_ATT_BS11_RADIO_MEAS_REP = 0xdd,
-
- NM_ATT_BS11_SH_LAPD_INT_TIMER = 0xe8,
-
- NM_ATT_BS11_BTS_STATE = 0xf0,
- NM_ATT_BS11_E1_STATE = 0xf1,
- NM_ATT_BS11_PLL = 0xf2,
- NM_ATT_BS11_RX_OFFSET = 0xf3,
- NM_ATT_BS11_ANT_TYPE = 0xf4,
- NM_ATT_BS11_PLL_MODE = 0xfc,
- NM_ATT_BS11_PASSWORD = 0xfd,
-};
-#define NM_ATT_BS11_FILE_DATA NM_ATT_EVENT_TYPE
-
-/*! \brief OML Administrative State (Section 9.4.4) */
-enum abis_nm_adm_state {
- NM_STATE_LOCKED = 0x01,
- NM_STATE_UNLOCKED = 0x02,
- NM_STATE_SHUTDOWN = 0x03,
- NM_STATE_NULL = 0xff,
-};
-
-/*! \brief OML Availability State (Section 9.4.7) */
-enum abis_nm_avail_state {
- NM_AVSTATE_IN_TEST = 1,
- NM_AVSTATE_POWER_OFF = 2,
- NM_AVSTATE_OFF_LINE = 3,
- NM_AVSTATE_DEPENDENCY = 5,
- NM_AVSTATE_DEGRADED = 6,
- NM_AVSTATE_NOT_INSTALLED= 7,
- NM_AVSTATE_OK = 0xff,
-};
-
-/*! \brief OML Operational State */
-enum abis_nm_op_state {
- NM_OPSTATE_DISABLED = 1,
- NM_OPSTATE_ENABLED = 2,
- NM_OPSTATE_NULL = 0xff,
-};
-
-/* \brief Channel Combination (Section 9.4.13) */
-enum abis_nm_chan_comb {
- NM_CHANC_TCHFull = 0x00, /* TCH/F + TCH/H + SACCH/TF */
- NM_CHANC_TCHHalf = 0x01, /* TCH/H(0,1) + FACCH/H(0,1) +
- SACCH/TH(0,1) */
- NM_CHANC_TCHHalf2 = 0x02, /* TCH/H(0) + FACCH/H(0) + SACCH/TH(0) +
- TCH/H(1) */
- NM_CHANC_SDCCH = 0x03, /* SDCCH/8 + SACCH/8 */
- NM_CHANC_mainBCCH = 0x04, /* FCCH + SCH + BCCH + CCCH */
- NM_CHANC_BCCHComb = 0x05, /* FCCH + SCH + BCCH + CCCH + SDCCH/4 +
- SACCH/C4 */
- NM_CHANC_BCCH = 0x06, /* BCCH + CCCH */
- NM_CHANC_BCCH_CBCH = 0x07, /* CHANC_BCCHComb + CBCH */
- NM_CHANC_SDCCH_CBCH = 0x08, /* CHANC_SDCCH8 + CBCH */
- /* ip.access */
- NM_CHANC_IPAC_bPDCH = 0x0b, /* PBCCH + PCCCH + PDTCH/F + PACCH/F +
- PTCCH/F */
- NM_CHANC_IPAC_cPDCH = 0x0c, /* PBCCH + PDTCH/F + PACCH/F + PTCCH/F */
- NM_CHANC_IPAC_PDCH = 0x0d, /* PDTCH/F + PACCH/F + PTCCH/F */
- NM_CHANC_IPAC_TCHFull_PDCH = 0x80,
- NM_CHANC_IPAC_TCHFull_TCHHalf = 0x81,
-};
-
-/*! \brief Event Type (Section 9.4.16) */
-enum abis_nm_event_type {
- NM_EVT_COMM_FAIL = 0x00,
- NM_EVT_QOS_FAIL = 0x01,
- NM_EVT_PROC_FAIL = 0x02,
- NM_EVT_EQUIP_FAIL = 0x03,
- NM_EVT_ENV_FAIL = 0x04,
-};
-
-/*! \brief Perceived Severity (Section: 9.4.63) */
-enum abis_nm_severity {
- NM_SEVER_CEASED = 0x00,
- NM_SEVER_CRITICAL = 0x01,
- NM_SEVER_MAJOR = 0x02,
- NM_SEVER_MINOR = 0x03,
- NM_SEVER_WARNING = 0x04,
- NM_SEVER_INDETERMINATE = 0x05,
-};
-
-/*! \brief Probable Cause Type (Section 9.4.43) */
-enum abis_nm_pcause_type {
- NM_PCAUSE_T_X721 = 0x01,
- NM_PCAUSE_T_GSM = 0x02,
- NM_PCAUSE_T_MANUF = 0x03,
-};
-
-/*! \brief NACK causes (Section 9.4.36) */
-enum abis_nm_nack_cause {
- /* General Nack Causes */
- NM_NACK_INCORR_STRUCT = 0x01,
- NM_NACK_MSGTYPE_INVAL = 0x02,
- NM_NACK_OBJCLASS_INVAL = 0x05,
- NM_NACK_OBJCLASS_NOTSUPP = 0x06,
- NM_NACK_BTSNR_UNKN = 0x07,
- NM_NACK_TRXNR_UNKN = 0x08,
- NM_NACK_OBJINST_UNKN = 0x09,
- NM_NACK_ATTRID_INVAL = 0x0c,
- NM_NACK_ATTRID_NOTSUPP = 0x0d,
- NM_NACK_PARAM_RANGE = 0x0e,
- NM_NACK_ATTRLIST_INCONSISTENT = 0x0f,
- NM_NACK_SPEC_IMPL_NOTSUPP = 0x10,
- NM_NACK_CANT_PERFORM = 0x11,
- /* Specific Nack Causes */
- NM_NACK_RES_NOTIMPL = 0x19,
- NM_NACK_RES_NOTAVAIL = 0x1a,
- NM_NACK_FREQ_NOTAVAIL = 0x1b,
- NM_NACK_TEST_NOTSUPP = 0x1c,
- NM_NACK_CAPACITY_RESTR = 0x1d,
- NM_NACK_PHYSCFG_NOTPERFORM = 0x1e,
- NM_NACK_TEST_NOTINIT = 0x1f,
- NM_NACK_PHYSCFG_NOTRESTORE = 0x20,
- NM_NACK_TEST_NOSUCH = 0x21,
- NM_NACK_TEST_NOSTOP = 0x22,
- NM_NACK_MSGINCONSIST_PHYSCFG = 0x23,
- NM_NACK_FILE_INCOMPLETE = 0x25,
- NM_NACK_FILE_NOTAVAIL = 0x26,
- NM_NACK_FILE_NOTACTIVATE = 0x27,
- NM_NACK_REQ_NOT_GRANT = 0x28,
- NM_NACK_WAIT = 0x29,
- NM_NACK_NOTH_REPORT_EXIST = 0x2a,
- NM_NACK_MEAS_NOTSUPP = 0x2b,
- NM_NACK_MEAS_NOTSTART = 0x2c,
-};
-
-/*! \brief Abis OML Channel (Section 9.4.1) */
-struct abis_nm_channel {
- uint8_t attrib;
- uint8_t bts_port; /*!< \brief BTS port number */
- uint8_t timeslot; /*!< \brief E1 timeslot */
- uint8_t subslot; /*!< \brief E1 sub-slot */
-} __attribute__ ((packed));
-
-/*! \brief Siemens BS-11 specific objects in the SienemsHW (0xA5) object class */
-enum abis_bs11_objtype {
- BS11_OBJ_ALCO = 0x01,
- BS11_OBJ_BBSIG = 0x02, /* obj_class: 0,1 */
- BS11_OBJ_TRX1 = 0x03, /* only DEACTIVATE TRX1 */
- BS11_OBJ_CCLK = 0x04,
- BS11_OBJ_GPSU = 0x06,
- BS11_OBJ_LI = 0x07,
- BS11_OBJ_PA = 0x09, /* obj_class: 0, 1*/
-};
-
-/*! \brief Siemens BS11 TRX power */
-enum abis_bs11_trx_power {
- BS11_TRX_POWER_GSM_2W = 0x06,
- BS11_TRX_POWER_GSM_250mW= 0x07,
- BS11_TRX_POWER_GSM_80mW = 0x08,
- BS11_TRX_POWER_GSM_30mW = 0x09,
- BS11_TRX_POWER_DCS_3W = 0x0a,
- BS11_TRX_POWER_DCS_1W6 = 0x0b,
- BS11_TRX_POWER_DCS_500mW= 0x0c,
- BS11_TRX_POWER_DCS_160mW= 0x0d,
-};
-
-/*! \brief Siemens BS11 PLL mode */
-enum abis_bs11_li_pll_mode {
- BS11_LI_PLL_LOCKED = 2,
- BS11_LI_PLL_STANDALONE = 3,
-};
-
-/*! \brief Siemens BS11 E1 line configuration */
-enum abis_bs11_line_cfg {
- BS11_LINE_CFG_STAR = 0x00,
- BS11_LINE_CFG_MULTIDROP = 0x01,
- BS11_LINE_CFG_LOOP = 0x02,
-};
-
-/*! \brief Siemens BS11 boot phase */
-enum abis_bs11_phase {
- BS11_STATE_SOFTWARE_RQD = 0x01,
- BS11_STATE_LOAD_SMU_INTENDED = 0x11,
- BS11_STATE_LOAD_SMU_SAFETY = 0x21,
- BS11_STATE_LOAD_FAILED = 0x31,
- BS11_STATE_LOAD_DIAGNOSTIC = 0x41,
- BS11_STATE_WARM_UP = 0x51,
- BS11_STATE_WARM_UP_2 = 0x52,
- BS11_STATE_WAIT_MIN_CFG = 0x62,
- BS11_STATE_MAINTENANCE = 0x72,
- BS11_STATE_LOAD_MBCCU = 0x92,
- BS11_STATE_WAIT_MIN_CFG_2 = 0xA2,
- BS11_STATE_NORMAL = 0x03,
- BS11_STATE_ABIS_LOAD = 0x13,
-};
-
-/*! \brief ip.access test number */
-enum abis_nm_ipacc_test_no {
- NM_IPACC_TESTNO_RLOOP_ANT = 0x01,
- NM_IPACC_TESTNO_RLOOP_XCVR = 0x02,
- NM_IPACC_TESTNO_FUNC_OBJ = 0x03,
- NM_IPACC_TESTNO_CHAN_USAGE = 0x40,
- NM_IPACC_TESTNO_BCCH_CHAN_USAGE = 0x41,
- NM_IPACC_TESTNO_FREQ_SYNC = 0x42,
- NM_IPACC_TESTNO_BCCH_INFO = 0x43,
- NM_IPACC_TESTNO_TX_BEACON = 0x44,
- NM_IPACC_TESTNO_SYSINFO_MONITOR = 0x45,
- NM_IPACC_TESTNO_BCCCH_MONITOR = 0x46,
-};
-
-/*! \brief first byte after length inside NM_ATT_TEST_REPORT */
-enum abis_nm_ipacc_test_res {
- NM_IPACC_TESTRES_SUCCESS = 0,
- NM_IPACC_TESTRES_TIMEOUT = 1,
- NM_IPACC_TESTRES_NO_CHANS = 2,
- NM_IPACC_TESTRES_PARTIAL = 3,
- NM_IPACC_TESTRES_STOPPED = 4,
-};
-
-/*! \brief internal IE inside NM_ATT_TEST_REPORT */
-enum abis_nm_ipacc_testres_ie {
- NM_IPACC_TR_IE_FREQ_ERR_LIST = 3,
- NM_IPACC_TR_IE_CHAN_USAGE = 4,
- NM_IPACC_TR_IE_BCCH_INFO = 6,
- NM_IPACC_TR_IE_RESULT_DETAILS = 8,
- NM_IPACC_TR_IE_FREQ_ERR = 18,
-};
-
-/*! \brief ip.access IEI */
-enum ipac_eie {
- NM_IPAC_EIE_ARFCN_WHITE = 0x01,
- NM_IPAC_EIE_ARFCH_BLACK = 0x02,
- NM_IPAC_EIE_FREQ_ERR_LIST = 0x03,
- NM_IPAC_EIE_CHAN_USE_LIST = 0x04,
- NM_IPAC_EIE_BCCH_INFO_TYPE = 0x05,
- NM_IPAC_EIE_BCCH_INFO = 0x06,
- NM_IPAC_EIE_CONFIG = 0x07,
- NM_IPAC_EIE_RES_DETAILS = 0x08,
- NM_IPAC_EIE_RXLEV_THRESH = 0x09,
- NM_IPAC_EIE_FREQ_SYNC_OPTS = 0x0a,
- NM_IPAC_EIE_MAC_ADDR = 0x0b,
- NM_IPAC_EIE_HW_SW_COMPAT_NR = 0x0c,
- NM_IPAC_EIE_MANUF_SER_NR = 0x0d,
- NM_IPAC_EIE_OEM_ID = 0x0e,
- NM_IPAC_EIE_DATE_TIME_MANUF = 0x0f,
- NM_IPAC_EIE_DATE_TIME_CALIB = 0x10,
- NM_IPAC_EIE_BEACON_INFO = 0x11,
- NM_IPAC_EIE_FREQ_ERR = 0x12,
- /* FIXME */
- NM_IPAC_EIE_FREQ_BANDS = 0x1c,
- NM_IPAC_EIE_MAX_TA = 0x1d,
- NM_IPAC_EIE_CIPH_ALGOS = 0x1e,
- NM_IPAC_EIE_CHAN_TYPES = 0x1f,
- NM_IPAC_EIE_CHAN_MODES = 0x20,
- NM_IPAC_EIE_GPRS_CODING = 0x21,
- NM_IPAC_EIE_RTP_FEATURES = 0x22,
- NM_IPAC_EIE_RSL_FEATURES = 0x23,
- NM_IPAC_EIE_BTS_HW_CLASS = 0x24,
- NM_IPAC_EIE_BTS_ID = 0x25,
-};
-
-/*! \brief ip.access NWL BCCH information type */
-enum ipac_bcch_info_type {
- IPAC_BINF_RXLEV = (1 << 8),
- IPAC_BINF_RXQUAL = (1 << 9),
- IPAC_BINF_FREQ_ERR_QUAL = (1 << 10),
- IPAC_BINF_FRAME_OFFSET = (1 << 11),
- IPAC_BINF_FRAME_NR_OFFSET = (1 << 12),
- IPAC_BINF_BSIC = (1 << 13),
- IPAC_BINF_CGI = (1 << 14),
- IPAC_BINF_NEIGH_BA_SI2 = (1 << 15),
- IPAC_BINF_NEIGH_BA_SI2bis = (1 << 0),
- IPAC_BINF_NEIGH_BA_SI2ter = (1 << 1),
- IPAC_BINF_CELL_ALLOC = (1 << 2),
-};
-
-/*! @} */
-
-#endif /* PROTO_GSM_12_21_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_44_318.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_44_318.h
deleted file mode 100644
index cd5ec05a..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/gsm_44_318.h
+++ /dev/null
@@ -1,200 +0,0 @@
-#ifndef PROTO_GSM_44_318_H
-#define PROTO_GSM_44_318_H
-
-#include <stdint.h>
-
-/* Definitions according to 3GPP TS 44.318 6.8.0 Release 6 */
-
-/* Table 11.1.1.2.1: Protocol Discriminator */
-enum gan_pdisc {
- GA_PDISC_RC = 0,
- GA_PDISC_CSR = 1,
- GA_PDISC_PSR = 2,
-};
-
-/* Table 11.1.1.4.1: Message types for URR */
-
-enum gan_msg_type {
- GA_MT_RC_DISCOVERY_REQUEST = 0x01,
- GA_MT_RC_DISCOVERY_ACCEPT = 0x02,
- GA_MT_RC_DISCOVERY_REJECT = 0x03,
-
- GA_MT_RC_REGISTER_REQUEST = 0x10,
- GA_MT_RC_REGISTER_ACCEPT = 0x11,
- GA_MT_RC_REGISTER_REDIRECT = 0x12,
- GA_MT_RC_REGISTER_REJECT = 0x13,
- GA_MT_RC_DEREGISTER = 0x14,
- GA_MT_RC_REGISTER_UPDATE_UL = 0x15,
- GA_MT_RC_REGISTER_UPDATE_DL = 0x16,
- GA_MT_RC_CELL_BCAST_INFO = 0x17,
-
- GA_MT_CSR_CIPH_MODE_CMD = 0x20,
- GA_MT_CSR_CIPH_MODE_COMPL = 0x21,
-
- GA_MT_CSR_ACT_CHAN = 0x30,
- GA_MT_CSR_ACT_CHAN_ACK = 0x31,
- GA_MT_CSR_ACT_CHAN_COMPL = 0x32,
- GA_MT_CSR_ACT_CHAN_FAIL = 0x33,
- GA_MT_CSR_CHAN_MODE_MOD = 0x34,
- GA_MT_CSR_CHAN_MODE_MOD_ACK = 0x35,
-
- GA_MT_CSR_RELEASE = 0x40,
- GA_MT_CSR_RELEASE_COMPL = 0x41,
- GA_MT_CSR_CLEAR_REQ = 0x42,
-
- GA_MT_CSR_HO_ACCESS = 0x50,
- GA_MT_CSR_HO_COMPL = 0x51,
- GA_MT_CSR_UL_QUAL_IND = 0x52,
- GA_MT_CSR_HO_INFO = 0x53,
- GA_MT_CSR_HO_CMD = 0x54,
- GA_MT_CSR_HO_FAIL = 0x55,
-
- GA_MT_CSR_PAGING_REQ = 0x60,
- GA_MT_CSR_PAGING_RESP = 0x61,
-
- GA_MT_CSR_UL_DIRECT_XFER = 0x70,
- GA_MT_CSR_DL_DIRECT_XFER = 0x72,
- GA_MT_CSR_STATUS = 0x73,
- GA_MT_RC_KEEPALIVE = 0x74,
- GA_MT_CSR_CM_ENQ = 0x75,
- GA_MT_CSR_CM_CHANGE = 0x76,
- GA_MT_PSR_GPRS_SUSPEND_REQ = 0x77,
- GA_RC_SYNC_INFO = 0x78,
- GA_CSR_UTRAN_CM_CHG = 0x79,
-
- GA_MT_CSR_REQUEST = 0x80,
- GA_MT_CSR_REQUEST_ACCEPT = 0x81,
- GA_MT_CSR_REQUEST_REJECT = 0x82,
-};
-
-/* All tables in 10.1.x and 10.2.x / Table 11.2.1 */
-enum gan_iei {
- GA_IE_MI = 1,
- GA_IE_GAN_RELEASE_IND = 2,
- GA_IE_RADIO_IE = 3,
- GA_IE_GERAN_CELL_ID = 4,
- GA_IE_LAC = 5,
- GA_IE_GERAN_COV_IND = 6,
- GA_IE_GAN_CM = 7,
- GA_IE_GEO_LOC = 8,
- GA_IE_DEF_SEGW_IP = 9,
- GA_IE_DEF_SEGW_FQDN = 10,
- GA_IE_REDIR_CTR = 11,
- GA_IE_DISCOV_REJ_CAUSE = 12,
- GA_IE_GANC_CELL_DESC = 13,
- GA_IE_GANC_CTRL_CH_DESC = 14,
- GA_IE_GERAN_CELL_ID_LIST= 15,
- GA_IE_TU3907_TIMER = 16,
- GA_IE_RR_STATE = 17,
- GA_IE_RAI = 18,
- GA_IE_GAN_BAND = 19,
- GA_IE_GARC_GACSR_STATE = 20,
- GA_IE_REG_REJ_CAUSE = 21,
- GA_IE_TU3906_TIMER = 22,
- GA_IE_TU3910_TIMER = 23,
- GA_IE_TU3902_TIMER = 24,
- GA_IE_L3_MSG = 26,
- GA_IE_CHAN_MODE = 27,
- GA_IE_MS_CLASSMARK2 = 28,
- GA_IE_RR_CAUSE = 29,
- GA_EI_CIPH_MODE_SET = 30,
- GA_IE_GPRS_RESUMPTION = 31,
- GA_IE_HO_FROM_GAN_CMD = 32,
- GA_IE_UL_QUAL_IND = 33,
- GA_IE_TLLI = 34,
- GA_IE_PFI = 35,
- GA_IE_SUSP_CAUSE = 36,
- GA_IE_TU3920_TIMER = 37,
- GA_IE_REQD_QOS = 38,
- GA_IE_P_DEACT_CAUSE = 39,
- GA_IE_REQD_UL_RATE = 40,
- GA_IE_RAC = 41,
- GA_IE_AP_LOCATION = 42,
- GA_IE_TU4001_TIMER = 43,
- GA_IE_LOC_STATUS = 44,
- GA_IE_CIPH_RESP = 45,
- GA_IE_CIPH_RAND = 46,
- GA_IE_CIPH_MAC = 47,
- GA_IE_CKSN = 48,
- GA_IE_SAPI_ID = 49,
- GA_IE_EST_CAUSE = 50,
- GA_IE_CHAN_NEEDED = 51,
- GA_IE_PDU_IN_ERROR = 52,
- GA_IE_SAMPLE_SIZE = 53,
- GA_IE_PAYLOAD_TYPE = 54,
- GA_IE_MULTIRATE_CONF = 55,
- GA_IE_MS_CLASSMARK3 = 56,
- GA_IE_LLC_PDU = 57,
- GA_IE_LOC_BLACKL_IND = 58,
- GA_IE_RESET_IND = 59,
- GA_IE_TU4003_TIMER = 60,
- GA_IE_AP_SERV_NAME = 61,
- GA_IE_SERV_ZONE_INFO = 62,
- GA_IE_RTP_RED_CONF = 63,
- GA_IE_UTRAN_CLASSMARK = 64,
- GA_IE_CM_ENQ_MASK = 65,
- GA_IE_UTRAN_CELLID_LIST = 66,
- GA_IE_SERV_GANC_TBL_IND = 67,
- GA_IE_AP_REG_IND = 68,
- GA_IE_GAN_PLMN_LIST = 69,
- GA_IE_REQD_GAN_SERV = 71,
- GA_IE_BCAST_CONTAINER = 72,
- GA_IE_3G_CELL_ID = 73,
- GA_IE_MS_RADIO_ID = 96,
- GA_IE_DEF_GANC_IP = 97,
- GA_IE_DEF_GANC_FQDN = 98,
- GA_IE_GPRS_IP_ADDR = 99,
- GA_IE_GPRS_UDP_PORT = 100,
- GA_IE_GANC_TCP_PORT = 103,
- GA_IE_RTP_UDP_PORT = 104,
- GA_IE_RTCP_UDP_PORT = 105,
- GA_IE_GERAN_RCV_SIGL_LIST = 106,
- GA_IE_UTRAN_RCV_SIGL_LIST = 107,
-};
-
-/* 11.1.1 GA-RC and GA-CSR Message header IE */
-struct gan_rc_csr_hdr {
- uint16_t len;
- uint8_t pdisc:4,
- skip_ind:4;
- uint8_t msg_type;
- uint8_t data[0];
-} __attribute__((packed));
-
-/* 11.2.14.1: GAN Control Channel Description IE */
-struct gan_cch_desc_ie {
- uint8_t spare:1,
- ecmc:1,
- nmo:2,
- gprs:1,
- dtm:1,
- att:1,
- mscr:1;
-#if 0
- uint8_t mscr:1,
- att:1,
- dtm:1,
- gprs:1,
- nmo:2,
- ecmc:1,
- spare:1;
-#endif
- uint8_t t3212;
- uint8_t rac;
- uint8_t sgsnr:1,
- ecmp:1,
- re:1,
- pfcfm:1,
- tgecs:2,
- spare2:2;
-#if 0
- uint8_t spare2:2,
- tgecs:2,
- pfcfm:1,
- re:1,
- ecmp:1,
- sgsnr:1;
-#endif
- uint8_t access_class[2];
-} __attribute__((packed));
-#endif /* PROTO_GSM_44_318_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h
deleted file mode 100644
index 5d98a21f..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef _OSMO_PROTO_IPACCESS_H
-#define _OSMO_PROTO_IPACCESS_H
-
-#include <stdint.h>
-
-#define IPA_TCP_PORT_OML 3002
-#define IPA_TCP_PORT_RSL 3003
-
-struct ipaccess_head {
- uint16_t len; /* network byte order */
- uint8_t proto;
- uint8_t data[0];
-} __attribute__ ((packed));
-
-struct ipaccess_head_ext {
- uint8_t proto;
- uint8_t data[0];
-} __attribute__ ((packed));
-
-enum ipaccess_proto {
- IPAC_PROTO_RSL = 0x00,
- IPAC_PROTO_IPACCESS = 0xfe,
- IPAC_PROTO_SCCP = 0xfd,
- IPAC_PROTO_OML = 0xff,
-
-
- /* OpenBSC extensions */
- IPAC_PROTO_OSMO = 0xee,
- IPAC_PROTO_MGCP_OLD = 0xfc,
-};
-
-enum ipaccess_proto_ext {
- IPAC_PROTO_EXT_CTRL = 0x00,
- IPAC_PROTO_EXT_MGCP = 0x01,
- IPAC_PROTO_EXT_LAC = 0x02,
- IPAC_PROTO_EXT_SMSC = 0x03,
-};
-
-enum ipaccess_msgtype {
- IPAC_MSGT_PING = 0x00,
- IPAC_MSGT_PONG = 0x01,
- IPAC_MSGT_ID_GET = 0x04,
- IPAC_MSGT_ID_RESP = 0x05,
- IPAC_MSGT_ID_ACK = 0x06,
-
- /* OpenBSC extension */
- IPAC_MSGT_SCCP_OLD = 0xff,
-};
-
-enum ipaccess_id_tags {
- IPAC_IDTAG_SERNR = 0x00,
- IPAC_IDTAG_UNITNAME = 0x01,
- IPAC_IDTAG_LOCATION1 = 0x02,
- IPAC_IDTAG_LOCATION2 = 0x03,
- IPAC_IDTAG_EQUIPVERS = 0x04,
- IPAC_IDTAG_SWVERSION = 0x05,
- IPAC_IDTAG_IPADDR = 0x06,
- IPAC_IDTAG_MACADDR = 0x07,
- IPAC_IDTAG_UNIT = 0x08,
-};
-
-/*
- * Firmware specific header
- */
-struct sdp_firmware {
- char magic[4];
- char more_magic[2];
- uint16_t more_more_magic;
- uint32_t header_length;
- uint32_t file_length;
- char sw_part[20];
- char text1[64];
- char time[12];
- char date[14];
- char text2[10];
- char version[20];
- uint16_t table_offset;
- /* stuff i don't know */
-} __attribute__((packed));
-
-struct sdp_header_entry {
- uint16_t something1;
- char text1[64];
- char time[12];
- char date[14];
- char text2[10];
- char version[20];
- uint32_t length;
- uint32_t addr1;
- uint32_t addr2;
- uint32_t start;
-} __attribute__((packed));
-
-#endif /* _OSMO_PROTO_IPACCESS_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/rsl.h b/src/shared/libosmocore/include/osmocom/gsm/rsl.h
deleted file mode 100644
index b8e4157a..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/rsl.h
+++ /dev/null
@@ -1,55 +0,0 @@
-#ifndef _OSMOCORE_RSL_H
-#define _OSMOCORE_RSL_H
-
-#include <stdint.h>
-#include <osmocom/core/utils.h>
-#include <osmocom/core/msgb.h>
-#include <osmocom/gsm/protocol/gsm_08_58.h>
-
-/*! \defgroup rsl RSL
- * @{
- */
-
-/*! \file rsl.h */
-
-void rsl_init_rll_hdr(struct abis_rsl_rll_hdr *dh, uint8_t msg_type);
-
-void rsl_init_cchan_hdr(struct abis_rsl_cchan_hdr *ch, uint8_t msg_type);
-
-extern const struct tlv_definition rsl_att_tlvdef;
-
-/*! \brief Parse RSL TLV structure using \ref tlv_parse */
-#define rsl_tlv_parse(dec, buf, len) \
- tlv_parse(dec, &rsl_att_tlvdef, buf, len, 0, 0)
-
-/* encode channel number as per Section 9.3.1 */
-uint8_t rsl_enc_chan_nr(uint8_t type, uint8_t subch, uint8_t timeslot);
-/* decode channel number as per Section 9.3.1 */
-int rsl_dec_chan_nr(uint8_t chan_nr, uint8_t *type, uint8_t *subch, uint8_t *timeslot);
-/* Turns channel number into a string */
-const char *rsl_chan_nr_str(uint8_t chan_nr);
-
-
-const char *rsl_err_name(uint8_t err);
-const char *rsl_rlm_cause_name(uint8_t err);
-const char *rsl_msg_name(uint8_t err);
-const char *rsl_ipac_msg_name(uint8_t msg_type);
-
-/* Section 3.3.2.3 TS 05.02. I think this looks like a table */
-int rsl_ccch_conf_to_bs_cc_chans(int ccch_conf);
-
-/* Push a RSL RLL header */
-void rsl_rll_push_hdr(struct msgb *msg, uint8_t msg_type, uint8_t chan_nr,
- uint8_t link_id, int transparent);
-
-/* Push a RSL RLL header with L3_INFO IE */
-void rsl_rll_push_l3(struct msgb *msg, uint8_t msg_type, uint8_t chan_nr,
- uint8_t link_id, int transparent);
-
-/* Allocate msgb and fill with simple RSL RLL header */
-struct msgb *rsl_rll_simple(uint8_t msg_type, uint8_t chan_nr,
- uint8_t link_id, int transparent);
-
-/*! @} */
-
-#endif /* _OSMOCORE_RSL_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/rxlev_stat.h b/src/shared/libosmocore/include/osmocom/gsm/rxlev_stat.h
deleted file mode 100644
index 415509dc..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/rxlev_stat.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef _OSMOCORE_RXLEV_STATS_H
-#define _OSMOCORE_RXLEV_STATS_H
-
-#define NUM_RXLEVS 32
-#define NUM_ARFCNS 1024
-
-struct rxlev_stats {
- /* the maximum number of ARFCN's is 1024, and there are 32 RxLevels,
- * so in we keep one 1024bit-bitvec for each RxLev */
- uint8_t rxlev_buckets[NUM_RXLEVS][NUM_ARFCNS/8];
-};
-
-void rxlev_stat_input(struct rxlev_stats *st, uint16_t arfcn, uint8_t rxlev);
-
-/* get the next ARFCN that has the specified Rxlev */
-int16_t rxlev_stat_get_next(const struct rxlev_stats *st, uint8_t rxlev, int16_t arfcn);
-
-void rxlev_stat_reset(struct rxlev_stats *st);
-
-void rxlev_stat_dump(const struct rxlev_stats *st);
-
-#endif /* _OSMOCORE_RXLEV_STATS_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/sysinfo.h b/src/shared/libosmocore/include/osmocom/gsm/sysinfo.h
deleted file mode 100644
index 06feb1de..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/sysinfo.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef _OSMO_GSM_SYSINFO_H
-#define _OSMO_GSM_SYSINFO_H
-
-#include <osmocom/core/utils.h>
-#include <osmocom/gsm/protocol/gsm_04_08.h>
-
-enum osmo_sysinfo_type {
- SYSINFO_TYPE_NONE,
- SYSINFO_TYPE_1,
- SYSINFO_TYPE_2,
- SYSINFO_TYPE_3,
- SYSINFO_TYPE_4,
- SYSINFO_TYPE_5,
- SYSINFO_TYPE_6,
- SYSINFO_TYPE_7,
- SYSINFO_TYPE_8,
- SYSINFO_TYPE_9,
- SYSINFO_TYPE_10,
- SYSINFO_TYPE_13,
- SYSINFO_TYPE_16,
- SYSINFO_TYPE_17,
- SYSINFO_TYPE_18,
- SYSINFO_TYPE_19,
- SYSINFO_TYPE_20,
- SYSINFO_TYPE_2bis,
- SYSINFO_TYPE_2ter,
- SYSINFO_TYPE_2quater,
- SYSINFO_TYPE_5bis,
- SYSINFO_TYPE_5ter,
- SYSINFO_TYPE_EMO,
- SYSINFO_TYPE_MEAS_INFO,
- /* FIXME all the various bis and ter */
- _MAX_SYSINFO_TYPE
-};
-
-typedef uint8_t sysinfo_buf_t[GSM_MACBLOCK_LEN];
-
-extern const struct value_string osmo_sitype_strs[_MAX_SYSINFO_TYPE];
-
-uint8_t osmo_sitype2rsl(enum osmo_sysinfo_type si_type);
-enum osmo_sysinfo_type osmo_rsl2sitype(uint8_t rsl_si);
-
-#endif /* _OSMO_GSM_SYSINFO_H */
diff --git a/src/shared/libosmocore/include/osmocom/gsm/tlv.h b/src/shared/libosmocore/include/osmocom/gsm/tlv.h
deleted file mode 100644
index 9c0319d9..00000000
--- a/src/shared/libosmocore/include/osmocom/gsm/tlv.h
+++ /dev/null
@@ -1,415 +0,0 @@
-#ifndef _TLV_H
-#define _TLV_H
-
-#include <stdint.h>
-#include <string.h>
-
-#include <osmocom/core/msgb.h>
-
-/*! \defgroup tlv GSM L3 compatible TLV parser
- * @{
- */
-/*! \file tlv.h */
-
-/* Terminology / wording
- tag length value (in bits)
-
- V - - 8
- LV - 8 N * 8
- TLV 8 8 N * 8
- TL16V 8 16 N * 8
- TLV16 8 8 N * 16
- TvLV 8 8/16 N * 8
- vTvLV 8/16 8/16 N * 8
-
-*/
-
-/*! \brief gross length of a LV type field */
-#define LV_GROSS_LEN(x) (x+1)
-/*! \brief gross length of a TLV type field */
-#define TLV_GROSS_LEN(x) (x+2)
-/*! \brief gross length of a TLV16 type field */
-#define TLV16_GROSS_LEN(x) ((2*x)+2)
-/*! \brief gross length of a TL16V type field */
-#define TL16V_GROSS_LEN(x) (x+3)
-/*! \brief gross length of a L16TV type field */
-#define L16TV_GROSS_LEN(x) (x+3)
-
-/*! \brief maximum length of TLV of one byte length */
-#define TVLV_MAX_ONEBYTE 0x7f
-
-/*! \brief gross length of a TVLV type field */
-static inline uint16_t TVLV_GROSS_LEN(uint16_t len)
-{
- if (len <= TVLV_MAX_ONEBYTE)
- return TLV_GROSS_LEN(len);
- else
- return TL16V_GROSS_LEN(len);
-}
-
-/*! \brief gross length of vTvL header (tag+len) */
-static inline uint16_t VTVL_GAN_GROSS_LEN(uint16_t tag, uint16_t len)
-{
- uint16_t ret = 2;
-
- if (tag > TVLV_MAX_ONEBYTE)
- ret++;
-
- if (len > TVLV_MAX_ONEBYTE)
- ret++;
-
- return ret;
-}
-
-/*! \brief gross length of vTvLV (tag+len+val) */
-static inline uint16_t VTVLV_GAN_GROSS_LEN(uint16_t tag, uint16_t len)
-{
- uint16_t ret;
-
- if (len <= TVLV_MAX_ONEBYTE)
- return TLV_GROSS_LEN(len);
- else
- return TL16V_GROSS_LEN(len);
-
- if (tag > TVLV_MAX_ONEBYTE)
- ret += 1;
-
- return ret;
-}
-
-/* TLV generation */
-
-/*! \brief put (append) a LV field */
-static inline uint8_t *lv_put(uint8_t *buf, uint8_t len,
- const uint8_t *val)
-{
- *buf++ = len;
- memcpy(buf, val, len);
- return buf + len;
-}
-
-/*! \brief put (append) a TLV field */
-static inline uint8_t *tlv_put(uint8_t *buf, uint8_t tag, uint8_t len,
- const uint8_t *val)
-{
- *buf++ = tag;
- *buf++ = len;
- memcpy(buf, val, len);
- return buf + len;
-}
-
-/*! \brief put (append) a TLV16 field */
-static inline uint8_t *tlv16_put(uint8_t *buf, uint8_t tag, uint8_t len,
- const uint16_t *val)
-{
- *buf++ = tag;
- *buf++ = len;
- memcpy(buf, val, len*2);
- return buf + len*2;
-}
-
-/*! \brief put (append) a TL16V field */
-static inline uint8_t *tl16v_put(uint8_t *buf, uint8_t tag, uint16_t len,
- const uint8_t *val)
-{
- *buf++ = tag;
- *buf++ = len >> 8;
- *buf++ = len & 0xff;
- memcpy(buf, val, len);
- return buf + len*2;
-}
-
-/*! \brief put (append) a TvLV field */
-static inline uint8_t *tvlv_put(uint8_t *buf, uint8_t tag, uint16_t len,
- const uint8_t *val)
-{
- uint8_t *ret;
-
- if (len <= TVLV_MAX_ONEBYTE) {
- ret = tlv_put(buf, tag, len, val);
- buf[1] |= 0x80;
- } else
- ret = tl16v_put(buf, tag, len, val);
-
- return ret;
-}
-
-/*! \brief put (append) a variable-length tag or variable-length length * */
-static inline uint8_t *vt_gan_put(uint8_t *buf, uint16_t tag)
-{
- if (tag > TVLV_MAX_ONEBYTE) {
- /* two-byte TAG */
- *buf++ = 0x80 | (tag >> 8);
- *buf++ = (tag & 0xff);
- } else
- *buf++ = tag;
-
- return buf;
-}
-
-/* \brief put (append) vTvL (GAN) field (tag + length)*/
-static inline uint8_t *vtvl_gan_put(uint8_t *buf, uint16_t tag, uint16_t len)
-{
- uint8_t *ret;
-
- ret = vt_gan_put(buf, tag);
- return vt_gan_put(ret, len);
-}
-
-/* \brief put (append) vTvLV (GAN) field (tag + length + val) */
-static inline uint8_t *vtvlv_gan_put(uint8_t *buf, uint16_t tag, uint16_t len,
- const uint8_t *val)
-{
- uint8_t *ret;
-
- ret = vtvl_gan_put(buf, tag, len );
-
- memcpy(ret, val, len);
- ret = buf + len;
-
- return ret;
-}
-
-/*! \brief put (append) a TLV16 field to \ref msgb */
-static inline uint8_t *msgb_tlv16_put(struct msgb *msg, uint8_t tag, uint8_t len, const uint16_t *val)
-{
- uint8_t *buf = msgb_put(msg, TLV16_GROSS_LEN(len));
- return tlv16_put(buf, tag, len, val);
-}
-
-/*! \brief put (append) a TL16V field to \ref msgb */
-static inline uint8_t *msgb_tl16v_put(struct msgb *msg, uint8_t tag, uint16_t len,
- const uint8_t *val)
-{
- uint8_t *buf = msgb_put(msg, TL16V_GROSS_LEN(len));
- return tl16v_put(buf, tag, len, val);
-}
-
-/*! \brief put (append) a TvLV field to \ref msgb */
-static inline uint8_t *msgb_tvlv_put(struct msgb *msg, uint8_t tag, uint16_t len,
- const uint8_t *val)
-{
- uint8_t *buf = msgb_put(msg, TVLV_GROSS_LEN(len));
- return tvlv_put(buf, tag, len, val);
-}
-
-/*! \brief put (append) a vTvLV field to \ref msgb */
-static inline uint8_t *msgb_vtvlv_gan_put(struct msgb *msg, uint16_t tag,
- uint16_t len, const uint8_t *val)
-{
- uint8_t *buf = msgb_put(msg, VTVLV_GAN_GROSS_LEN(tag, len));
- return vtvlv_gan_put(buf, tag, len, val);
-}
-
-/*! \brief put (append) a L16TV field to \ref msgb */
-static inline uint8_t *msgb_l16tv_put(struct msgb *msg, uint16_t len, uint8_t tag,
- const uint8_t *val)
-{
- uint8_t *buf = msgb_put(msg, L16TV_GROSS_LEN(len));
-
- *buf++ = len >> 8;
- *buf++ = len & 0xff;
- *buf++ = tag;
- memcpy(buf, val, len);
- return buf + len;
-}
-
-/*! \brief put (append) a V field */
-static inline uint8_t *v_put(uint8_t *buf, uint8_t val)
-{
- *buf++ = val;
- return buf;
-}
-
-/*! \brief put (append) a TV field */
-static inline uint8_t *tv_put(uint8_t *buf, uint8_t tag,
- uint8_t val)
-{
- *buf++ = tag;
- *buf++ = val;
- return buf;
-}
-
-/*! \brief put (append) a TVfixed field */
-static inline uint8_t *tv_fixed_put(uint8_t *buf, uint8_t tag,
- unsigned int len, const uint8_t *val)
-{
- *buf++ = tag;
- memcpy(buf, val, len);
- return buf + len;
-}
-
-/*! \brief put (append) a TV16 field
- * \param[in,out] buf data buffer
- * \param[in] tag Tag value
- * \param[in] val Value (in host byte order!)
- */
-static inline uint8_t *tv16_put(uint8_t *buf, uint8_t tag,
- uint16_t val)
-{
- *buf++ = tag;
- *buf++ = val >> 8;
- *buf++ = val & 0xff;
- return buf;
-}
-
-/*! \brief put (append) a LV field to a \ref msgb
- * \returns pointer to first byte after newly-put information */
-static inline uint8_t *msgb_lv_put(struct msgb *msg, uint8_t len, const uint8_t *val)
-{
- uint8_t *buf = msgb_put(msg, LV_GROSS_LEN(len));
- return lv_put(buf, len, val);
-}
-
-/*! \brief put (append) a TLV field to a \ref msgb
- * \returns pointer to first byte after newly-put information */
-static inline uint8_t *msgb_tlv_put(struct msgb *msg, uint8_t tag, uint8_t len, const uint8_t *val)
-{
- uint8_t *buf = msgb_put(msg, TLV_GROSS_LEN(len));
- return tlv_put(buf, tag, len, val);
-}
-
-/*! \brief put (append) a TV field to a \ref msgb
- * \returns pointer to first byte after newly-put information */
-static inline uint8_t *msgb_tv_put(struct msgb *msg, uint8_t tag, uint8_t val)
-{
- uint8_t *buf = msgb_put(msg, 2);
- return tv_put(buf, tag, val);
-}
-
-/*! \brief put (append) a TVfixed field to a \ref msgb
- * \returns pointer to first byte after newly-put information */
-static inline uint8_t *msgb_tv_fixed_put(struct msgb *msg, uint8_t tag,
- unsigned int len, const uint8_t *val)
-{
- uint8_t *buf = msgb_put(msg, 1+len);
- return tv_fixed_put(buf, tag, len, val);
-}
-
-/*! \brief put (append) a V field to a \ref msgb
- * \returns pointer to first byte after newly-put information */
-static inline uint8_t *msgb_v_put(struct msgb *msg, uint8_t val)
-{
- uint8_t *buf = msgb_put(msg, 1);
- return v_put(buf, val);
-}
-
-/*! \brief put (append) a TV16 field to a \ref msgb
- * \returns pointer to first byte after newly-put information */
-static inline uint8_t *msgb_tv16_put(struct msgb *msg, uint8_t tag, uint16_t val)
-{
- uint8_t *buf = msgb_put(msg, 3);
- return tv16_put(buf, tag, val);
-}
-
-/*! \brief push (prepend) a TLV field to a \ref msgb
- * \returns pointer to first byte of newly-pushed information */
-static inline uint8_t *msgb_tlv_push(struct msgb *msg, uint8_t tag, uint8_t len, const uint8_t *val)
-{
- uint8_t *buf = msgb_push(msg, TLV_GROSS_LEN(len));
- tlv_put(buf, tag, len, val);
- return buf;
-}
-
-/*! \brief push (prepend) a TV field to a \ref msgb
- * \returns pointer to first byte of newly-pushed information */
-static inline uint8_t *msgb_tv_push(struct msgb *msg, uint8_t tag, uint8_t val)
-{
- uint8_t *buf = msgb_push(msg, 2);
- tv_put(buf, tag, val);
- return buf;
-}
-
-/*! \brief push (prepend) a TV16 field to a \ref msgb
- * \returns pointer to first byte of newly-pushed information */
-static inline uint8_t *msgb_tv16_push(struct msgb *msg, uint8_t tag, uint16_t val)
-{
- uint8_t *buf = msgb_push(msg, 3);
- tv16_put(buf, tag, val);
- return buf;
-}
-
-/*! \brief push (prepend) a TvLV field to a \ref msgb
- * \returns pointer to first byte of newly-pushed information */
-static inline uint8_t *msgb_tvlv_push(struct msgb *msg, uint8_t tag, uint16_t len,
- const uint8_t *val)
-{
- uint8_t *buf = msgb_push(msg, TVLV_GROSS_LEN(len));
- tvlv_put(buf, tag, len, val);
- return buf;
-}
-
-/* \brief push (prepend) a vTvL header to a \ref msgb
- */
-static inline uint8_t *msgb_vtvl_gan_push(struct msgb *msg, uint16_t tag,
- uint16_t len)
-{
- uint8_t *buf = msgb_push(msg, VTVL_GAN_GROSS_LEN(tag, len));
- vtvl_gan_put(buf, tag, len);
- return buf;
-}
-
-
-static inline uint8_t *msgb_vtvlv_gan_push(struct msgb *msg, uint16_t tag,
- uint16_t len, const uint8_t *val)
-{
- uint8_t *buf = msgb_push(msg, VTVLV_GAN_GROSS_LEN(tag, len));
- vtvlv_gan_put(buf, tag, len, val);
- return buf;
-}
-
-/* TLV parsing */
-
-/*! \brief Entry in a TLV parser array */
-struct tlv_p_entry {
- uint16_t len; /*!< \brief length */
- const uint8_t *val; /*!< \brief pointer to value */
-};
-
-/*! \brief TLV type */
-enum tlv_type {
- TLV_TYPE_NONE, /*!< \brief no type */
- TLV_TYPE_FIXED, /*!< \brief fixed-length value-only */
- TLV_TYPE_T, /*!< \brief tag-only */
- TLV_TYPE_TV, /*!< \brief tag-value (8bit) */
- TLV_TYPE_TLV, /*!< \brief tag-length-value */
- TLV_TYPE_TL16V, /*!< \brief tag, 16 bit length, value */
- TLV_TYPE_TvLV, /*!< \brief tag, variable length, value */
- TLV_TYPE_SINGLE_TV, /*!< \brief tag and value (both 4 bit) in 1 byte */
- TLV_TYPE_vTvLV_GAN, /*!< \brief variable-length tag, variable-length length */
-};
-
-/*! \brief Definition of a single IE (Information Element) */
-struct tlv_def {
- enum tlv_type type; /*!< \brief TLV type */
- uint8_t fixed_len; /*!< \brief length in case of \ref TLV_TYPE_FIXED */
-};
-
-/*! \brief Definition of All 256 IE / TLV */
-struct tlv_definition {
- struct tlv_def def[256];
-};
-
-/*! \brief result of the TLV parser */
-struct tlv_parsed {
- struct tlv_p_entry lv[256];
-};
-
-extern struct tlv_definition tvlv_att_def;
-extern struct tlv_definition vtvlv_gan_att_def;
-
-int tlv_parse_one(uint8_t *o_tag, uint16_t *o_len, const uint8_t **o_val,
- const struct tlv_definition *def,
- const uint8_t *buf, int buf_len);
-int tlv_parse(struct tlv_parsed *dec, const struct tlv_definition *def,
- const uint8_t *buf, int buf_len, uint8_t lv_tag, uint8_t lv_tag2);
-/* take a master (src) tlvdev and fill up all empty slots in 'dst' */
-void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src);
-
-#define TLVP_PRESENT(x, y) ((x)->lv[y].val)
-#define TLVP_LEN(x, y) (x)->lv[y].len
-#define TLVP_VAL(x, y) (x)->lv[y].val
-
-/*! @} */
-
-#endif /* _TLV_H */