aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/msc/Makefile.am1
-rw-r--r--include/osmocom/msc/a_iface.h1
-rw-r--r--include/osmocom/msc/gsm_data.h3
-rw-r--r--include/osmocom/msc/gsm_data_shared.h3
-rw-r--r--include/osmocom/msc/msc_ifaces.h1
-rw-r--r--include/osmocom/msc/rest_octets.h139
-rw-r--r--src/libcommon-cs/common_cs.c1
-rw-r--r--src/libcommon/gsm_subscriber_base.c1
-rw-r--r--src/libmsc/a_iface.c2
-rw-r--r--src/libmsc/a_iface_bssap.c4
-rw-r--r--src/libmsc/mncc_sock.c1
-rw-r--r--src/libmsc/msc_ifaces.c1
-rw-r--r--src/libmsc/osmo_msc.c2
-rw-r--r--src/libmsc/ussd.c1
-rw-r--r--src/libvlr/vlr.c2
-rw-r--r--src/libvlr/vlr_access_req_fsm.c1
-rw-r--r--src/libvlr/vlr_lu_fsm.c1
-rw-r--r--tests/msc_vlr/msc_vlr_tests.c1
18 files changed, 21 insertions, 145 deletions
diff --git a/include/osmocom/msc/Makefile.am b/include/osmocom/msc/Makefile.am
index 6e7aa384b..03896b5c3 100644
--- a/include/osmocom/msc/Makefile.am
+++ b/include/osmocom/msc/Makefile.am
@@ -52,7 +52,6 @@ noinst_HEADERS = \
bsc_msc_data.h \
osmux.h \
paging.h \
- rest_octets.h \
rrlp.h \
rs232.h \
rtp_proxy.h \
diff --git a/include/osmocom/msc/a_iface.h b/include/osmocom/msc/a_iface.h
index 32003ebdb..40ad9c8d1 100644
--- a/include/osmocom/msc/a_iface.h
+++ b/include/osmocom/msc/a_iface.h
@@ -21,6 +21,7 @@
#pragma once
#include <osmocom/msc/a_reset.h>
+#include <osmocom/msc/transaction.h>
/* A struct to keep a context information about the BSCs we are associated with */
struct bsc_context {
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 5d3d5cacd..1a3fa018d 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -10,12 +10,11 @@
#include <osmocom/core/rate_ctr.h>
#include <osmocom/core/select.h>
#include <osmocom/core/stats.h>
-
+#include <osmocom/gsm/gsm48.h>
#include <osmocom/crypt/auth.h>
#include <osmocom/sigtran/sccp_sap.h>
#include <osmocom/msc/common.h>
-#include <osmocom/msc/rest_octets.h>
#include <osmocom/msc/common_cs.h>
#include <osmocom/mgcp_client/mgcp_client.h>
diff --git a/include/osmocom/msc/gsm_data_shared.h b/include/osmocom/msc/gsm_data_shared.h
index 5028a269d..4f4778660 100644
--- a/include/osmocom/msc/gsm_data_shared.h
+++ b/include/osmocom/msc/gsm_data_shared.h
@@ -17,7 +17,7 @@
#include <osmocom/gsm/protocol/gsm_04_08.h>
#include <osmocom/gsm/protocol/gsm_08_58.h>
#include <osmocom/gsm/protocol/gsm_12_21.h>
-
+#include <osmocom/msc/meas_rep.h>
#include <osmocom/abis/e1_input.h>
#ifndef ROLE_BSC
@@ -860,7 +860,6 @@ struct gsm_bts {
struct gsm48_rach_control rach_control;
uint8_t ncc_permitted;
struct gsm48_cell_sel_par cell_sel_par;
- struct gsm48_si_selection_params cell_ro_sel_par; /* rest octet */
struct gsm48_cell_options cell_options;
struct gsm48_control_channel_descr chan_desc;
struct bitvec neigh_list;
diff --git a/include/osmocom/msc/msc_ifaces.h b/include/osmocom/msc/msc_ifaces.h
index d46dfe9b3..0592c0701 100644
--- a/include/osmocom/msc/msc_ifaces.h
+++ b/include/osmocom/msc/msc_ifaces.h
@@ -2,6 +2,7 @@
#include <osmocom/core/msgb.h>
#include <osmocom/msc/gsm_data.h>
+#include <osmocom/msc/transaction.h>
/* These are the interfaces of the MSC layer towards (from?) the BSC and RNC,
* i.e. in the direction towards the mobile device (MS aka UE).
diff --git a/include/osmocom/msc/rest_octets.h b/include/osmocom/msc/rest_octets.h
deleted file mode 100644
index 49857b7c5..000000000
--- a/include/osmocom/msc/rest_octets.h
+++ /dev/null
@@ -1,139 +0,0 @@
-#ifndef _REST_OCTETS_H
-#define _REST_OCTETS_H
-
-#include <stdbool.h>
-#include <osmocom/msc/gsm_04_08.h>
-#include <osmocom/gsm/sysinfo.h>
-
-/* generate SI1 rest octets */
-int rest_octets_si1(uint8_t *data, uint8_t *nch_pos, int is1800_net);
-int rest_octets_si2quater(uint8_t *data, struct gsm_bts *bts);
-int rest_octets_si6(uint8_t *data, bool is1800_net);
-
-struct gsm48_si_selection_params {
- uint16_t penalty_time:5,
- temp_offs:3,
- cell_resel_off:6,
- cbq:1,
- present:1;
-};
-
-struct gsm48_si_power_offset {
- uint8_t power_offset:2,
- present:1;
-};
-
-struct gsm48_si3_gprs_ind {
- uint8_t si13_position:1,
- ra_colour:3,
- present:1;
-};
-
-struct gsm48_lsa_params {
- uint32_t prio_thr:3,
- lsa_offset:3,
- mcc:12,
- mnc:12;
- unsigned int present;
-};
-
-struct gsm48_si_ro_info {
- struct gsm48_si_selection_params selection_params;
- struct gsm48_si_power_offset power_offset;
- uint8_t si2ter_indicator;
- uint8_t early_cm_ctrl;
- struct {
- uint8_t where:3,
- present:1;
- } scheduling;
- struct gsm48_si3_gprs_ind gprs_ind;
- /* SI 3 specific */
- uint8_t si2quater_indicator;
- /* SI 4 specific */
- struct gsm48_lsa_params lsa_params;
- uint16_t cell_id;
- uint8_t break_ind; /* do we have SI7 + SI8 ? */
-};
-
-
-/* Generate SI3 Rest Octests (Chapter 10.5.2.34 / Table 10.4.72) */
-int rest_octets_si3(uint8_t *data, const struct gsm48_si_ro_info *si3);
-
-/* Generate SI4 Rest Octets (Chapter 10.5.2.35) */
-int rest_octets_si4(uint8_t *data, const struct gsm48_si_ro_info *si4, int len);
-
-enum pbcch_carrier_type {
- PBCCH_BCCH,
- PBCCH_ARFCN,
- PBCCH_MAIO
-};
-
-/* TS 03.60 Chapter 6.3.3.1: Network Mode of Operation */
-enum gprs_nmo {
- GPRS_NMO_I = 0, /* CS pagin on GPRS paging or traffic channel */
- GPRS_NMO_II = 1, /* all paging on CCCH */
- GPRS_NMO_III = 2, /* no paging coordination */
-};
-
-/* TS 04.60 12.24 */
-struct gprs_cell_options {
- enum gprs_nmo nmo;
- /* T3168: wait for packet uplink assignment message */
- uint32_t t3168; /* in milliseconds */
- /* T3192: wait for release of the TBF after reception of the final block */
- uint32_t t3192; /* in milliseconds */
- uint32_t drx_timer_max;/* in seconds */
- uint32_t bs_cv_max;
- uint8_t supports_egprs_11bit_rach;
- bool ctrl_ack_type_use_block; /* use PACKET CONTROL ACKNOWLEDGMENT */
-
- uint8_t ext_info_present;
- struct {
- uint8_t egprs_supported;
- uint8_t use_egprs_p_ch_req;
- uint8_t bep_period;
- uint8_t pfc_supported;
- uint8_t dtm_supported;
- uint8_t bss_paging_coordination;
- } ext_info;
-};
-
-/* TS 04.60 Table 12.9.2 */
-struct gprs_power_ctrl_pars {
- uint8_t alpha;
- uint8_t t_avg_w;
- uint8_t t_avg_t;
- uint8_t pc_meas_chan;
- uint8_t n_avg_i;
-};
-
-struct gsm48_si13_info {
- struct gprs_cell_options cell_opts;
- struct gprs_power_ctrl_pars pwr_ctrl_pars;
- uint8_t bcch_change_mark;
- uint8_t si_change_field;
- uint8_t pbcch_present;
-
- union {
- struct {
- uint8_t rac;
- uint8_t spgc_ccch_sup;
- uint8_t net_ctrl_ord;
- uint8_t prio_acc_thr;
- } no_pbcch;
- struct {
- uint8_t psi1_rep_per;
- uint8_t pb;
- uint8_t tsc;
- uint8_t tn;
- enum pbcch_carrier_type carrier_type;
- uint16_t arfcn;
- uint8_t maio;
- } pbcch;
- };
-};
-
-/* Generate SI13 Rest Octests (Chapter 10.5.2.37b) */
-int rest_octets_si13(uint8_t *data, const struct gsm48_si13_info *si13);
-
-#endif /* _REST_OCTETS_H */
diff --git a/src/libcommon-cs/common_cs.c b/src/libcommon-cs/common_cs.c
index 8a28b7235..bad826264 100644
--- a/src/libcommon-cs/common_cs.c
+++ b/src/libcommon-cs/common_cs.c
@@ -29,6 +29,7 @@
#include <osmocom/msc/gsm_subscriber.h>
#include <osmocom/msc/gsm_data.h>
#include <osmocom/msc/gsm_04_11.h>
+#include <osmocom/msc/gsm_04_08.h>
/* Warning: if bsc_network_init() is not called, some of the members of
* gsm_network are not initialized properly and must not be used! (In
diff --git a/src/libcommon/gsm_subscriber_base.c b/src/libcommon/gsm_subscriber_base.c
index 58a6ff089..20147a3c3 100644
--- a/src/libcommon/gsm_subscriber_base.c
+++ b/src/libcommon/gsm_subscriber_base.c
@@ -29,6 +29,7 @@
#include <osmocom/core/talloc.h>
#include <osmocom/core/utils.h>
+#include <osmocom/gsm/gsm48.h>
#include <osmocom/msc/gsm_subscriber.h>
#include <osmocom/msc/debug.h>
#include <osmocom/msc/vlr.h>
diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c
index 3e8649435..4892fb8c5 100644
--- a/src/libmsc/a_iface.c
+++ b/src/libmsc/a_iface.c
@@ -40,6 +40,8 @@
#include <osmocom/msc/a_reset.h>
#include <osmocom/msc/osmo_msc.h>
+#include <errno.h>
+
/* A pointer to the GSM network we work with. By the current paradigm,
* there can only be one gsm_network per MSC. The pointer is set once
* when calling a_init() */
diff --git a/src/libmsc/a_iface_bssap.c b/src/libmsc/a_iface_bssap.c
index 3d5755a4c..922dca955 100644
--- a/src/libmsc/a_iface_bssap.c
+++ b/src/libmsc/a_iface_bssap.c
@@ -24,6 +24,7 @@
#include <osmocom/sigtran/sccp_helpers.h>
#include <osmocom/sccp/sccp_types.h>
#include <osmocom/gsm/gsm0808.h>
+#include <osmocom/gsm/gsm48.h>
#include <osmocom/gsm/gsm0808_utils.h>
#include <osmocom/msc/debug.h>
#include <osmocom/msc/gsm_data.h>
@@ -32,6 +33,9 @@
#include <osmocom/msc/osmo_msc.h>
#include <osmocom/core/byteswap.h>
#include <osmocom/msc/a_reset.h>
+#include <osmocom/msc/transaction.h>
+
+#include <errno.h>
#define IP_V4_ADDR_LEN 4
diff --git a/src/libmsc/mncc_sock.c b/src/libmsc/mncc_sock.c
index 05c943985..b6b1bc9d9 100644
--- a/src/libmsc/mncc_sock.c
+++ b/src/libmsc/mncc_sock.c
@@ -38,6 +38,7 @@
#include <osmocom/msc/debug.h>
#include <osmocom/msc/mncc.h>
#include <osmocom/msc/gsm_data.h>
+#include <osmocom/msc/gsm_04_08.h>
struct mncc_sock_state {
struct gsm_network *net;
diff --git a/src/libmsc/msc_ifaces.c b/src/libmsc/msc_ifaces.c
index f54426e18..1c8e5efa0 100644
--- a/src/libmsc/msc_ifaces.c
+++ b/src/libmsc/msc_ifaces.c
@@ -29,6 +29,7 @@
#include <osmocom/mgcp_client/mgcp_client.h>
#include <osmocom/msc/vlr.h>
#include <osmocom/msc/a_iface.h>
+#include <osmocom/msc/gsm_04_08.h>
#include "../../bscconfig.h"
diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c
index db247579f..f807f2aee 100644
--- a/src/libmsc/osmo_msc.c
+++ b/src/libmsc/osmo_msc.c
@@ -29,7 +29,7 @@
#include <osmocom/msc/vlr.h>
#include <osmocom/msc/osmo_msc.h>
#include <osmocom/msc/a_iface.h>
-
+#include <osmocom/msc/gsm_04_08.h>
#include <osmocom/msc/gsm_04_11.h>
#include "../../bscconfig.h"
diff --git a/src/libmsc/ussd.c b/src/libmsc/ussd.c
index e3263d2c8..7b450a2df 100644
--- a/src/libmsc/ussd.c
+++ b/src/libmsc/ussd.c
@@ -34,6 +34,7 @@
#include <osmocom/msc/debug.h>
#include <osmocom/msc/osmo_msc.h>
#include <osmocom/msc/vlr.h>
+#include <osmocom/msc/gsm_04_08.h>
/* Declarations of USSD strings to be recognised */
const char USSD_TEXT_OWN_NUMBER[] = "*#100#";
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c
index a9aacbd6f..6094c9c43 100644
--- a/src/libvlr/vlr.c
+++ b/src/libvlr/vlr.c
@@ -25,6 +25,7 @@
#include <osmocom/gsm/protocol/gsm_04_08_gprs.h>
#include <osmocom/gsm/gsup.h>
#include <osmocom/gsm/apn.h>
+#include <osmocom/gsm/gsm48.h>
#include <osmocom/msc/gsm_subscriber.h>
#include <osmocom/msc/gsup_client.h>
#include <osmocom/msc/vlr.h>
@@ -35,6 +36,7 @@
#include <netinet/in.h>
#include <arpa/inet.h>
#include <limits.h>
+#include <errno.h>
#include "vlr_core.h"
#include "vlr_auth_fsm.h"
diff --git a/src/libvlr/vlr_access_req_fsm.c b/src/libvlr/vlr_access_req_fsm.c
index 9d9e4c1c3..41620b90d 100644
--- a/src/libvlr/vlr_access_req_fsm.c
+++ b/src/libvlr/vlr_access_req_fsm.c
@@ -21,6 +21,7 @@
#include <osmocom/core/fsm.h>
#include <osmocom/gsm/gsup.h>
+#include <osmocom/gsm/gsm48.h>
#include <osmocom/msc/vlr.h>
#include <osmocom/msc/debug.h>
diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c
index c9223f854..ea7529eb3 100644
--- a/src/libvlr/vlr_lu_fsm.c
+++ b/src/libvlr/vlr_lu_fsm.c
@@ -20,6 +20,7 @@
*/
#include <osmocom/core/fsm.h>
+#include <osmocom/gsm/gsm48.h>
#include <osmocom/gsm/gsup.h>
#include <osmocom/msc/vlr.h>
#include <osmocom/msc/debug.h>
diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c
index d05aa29f4..a6e0f29a0 100644
--- a/tests/msc_vlr/msc_vlr_tests.c
+++ b/tests/msc_vlr/msc_vlr_tests.c
@@ -33,6 +33,7 @@
#include <osmocom/msc/gsup_client.h>
#include <osmocom/msc/gsm_04_11.h>
#include <osmocom/msc/debug.h>
+#include <osmocom/msc/gsm_04_08.h>
#if BUILD_IU
#include <osmocom/msc/iucs_ranap.h>