From 70aba3ffe2e6dbff4b8bf17c0f1273d8b4387109 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Tue, 13 Mar 2018 03:40:53 +0100 Subject: add support for gsm0808 HANDOVER REQUIRED message Related: OS#2283 (inter-BSC Handover, BSC side, MO) Change-Id: Idb6dc3eab0282158a17091d97ed77c1e2e3eb3c2 --- include/osmocom/gsm/gsm0808.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'include/osmocom/gsm/gsm0808.h') diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 369d713c..4f239e66 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -25,6 +25,7 @@ #include "tlv.h" #include +#include #include struct sockaddr_storage; @@ -80,6 +81,42 @@ struct msgb *gsm0808_create_paging(const char *imsi, const uint32_t *tmsi, const uint8_t *chan_needed) OSMO_DEPRECATED("use gsm0808_create_paging2 instead"); +/*! 3GPP TS 48.008 §3.2.2.5.8 Old BSS to New BSS information */ +struct gsm0808_old_bss_to_new_bss_info { + bool extra_information_present; + struct { + bool prec; + bool lcs; + bool ue_prob; + } extra_information; + + bool current_channel_type_2_present; + struct { + uint8_t mode; + uint8_t field; + } current_channel_type_2; + + /* more items are defined in the spec and may be added later */ +}; + +/*! 3GPP TS 48.008 §3.2.1.9 HANDOVER REQUIRED */ +struct gsm0808_handover_required { + uint16_t cause; + struct gsm0808_cell_id_list2 cil; + + bool current_channel_type_1_present; + uint8_t current_channel_type_1; + + bool speech_version_used_present; + uint8_t speech_version_used; + + bool old_bss_to_new_bss_info_present; + struct gsm0808_old_bss_to_new_bss_info old_bss_to_new_bss_info; + + /* more items are defined in the spec and may be added later */ +}; +struct msgb *gsm0808_create_handover_required(const struct gsm0808_handover_required *params); + struct msgb *gsm0808_create_dtap(struct msgb *msg, uint8_t link_id); void gsm0808_prepend_dtap_header(struct msgb *msg, uint8_t link_id); -- cgit v1.2.3