libosmogsm  1.5.1
Osmocom GSM library
gsm_49_031.h
Go to the documentation of this file.
1 
5 /*
6  * (C) 2020 by sysmocom - s.f.m.c. GmbH <info@sysmocom.de>
7  * All Rights Reserved
8  *
9  * Author: Neels Hofmeyr <neels@hofmeyr.de>
10  *
11  * SPDX-License-Identifier: GPL-2.0+
12  *
13  * This program is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License as published by
15  * the Free Software Foundation; either version 2 of the License, or
16  * (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License along
24  * with this program; if not, write to the Free Software Foundation, Inc.,
25  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26  *
27  */
28 #pragma once
29 
30 #include <stdint.h>
31 #include <stdbool.h>
35 #include <osmocom/gsm/gsm48.h>
36 
38 enum lcs_cause {
55 };
56 
58 struct lcs_cause_ie {
59  bool present;
62  uint8_t diag_val;
63 };
64 
67 };
68 
80 };
81 
123 };
124 
130 };
131 
136 };
137 
143 };
144 
148 };
149 
159 };
160 
164 
167 
168  struct osmo_mobile_identity imsi;
169  struct osmo_mobile_identity imei;
170 
172  struct bsslap_pdu apdu;
173 
174  bool more_items;
175 };
176 
180 
182 
183  bool more_items;
184 };
185 
187  struct bsslap_pdu apdu;
188 
189  bool more_items;
190 };
191 
194  union {
196  /* reset_ack consists only of the message type */
201  };
202 };
203 
204 struct bssap_le_pdu {
206  union {
208  /* future: add DTAP PDU, currently not implemented */
209  };
210 };
211 
bssmap_le_perform_loc_req::lcs_client_type
enum bssmap_le_lcs_client_type lcs_client_type
Definition: gsm_49_031.h:166
BSSMAP_LE_IEI_RET_ERR_CAUSE
@ BSSMAP_LE_IEI_RET_ERR_CAUSE
Definition: gsm_49_031.h:99
BSSMAP_LE_IEI_CELL_ID
@ BSSMAP_LE_IEI_CELL_ID
Definition: gsm_49_031.h:103
BSSMAP_LE_MSGT_RESET_ACK
@ BSSMAP_LE_MSGT_RESET_ACK
Definition: gsm_49_031.h:79
BSSMAP_LE_IEI_MS_SYNC_ACC
@ BSSMAP_LE_IEI_MS_SYNC_ACC
Definition: gsm_49_031.h:115
bssmap_le_perform_loc_req::imei
struct osmo_mobile_identity imei
Definition: gsm_49_031.h:169
gsm_23_032.h
BSSMAP_LE_IEI_RANDOM_ID
@ BSSMAP_LE_IEI_RANDOM_ID
Definition: gsm_49_031.h:119
bssmap_le_conn_oriented_info
Definition: gsm_49_031.h:186
BSSMAP_LE_IEI_MLAT_TA
@ BSSMAP_LE_IEI_MLAT_TA
Definition: gsm_49_031.h:114
LCS_CAUSE_PTMSI_REALLOC
@ LCS_CAUSE_PTMSI_REALLOC
Definition: gsm_49_031.h:53
BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC
@ BSSMAP_LE_LOC_INFO_CURRENT_GEOGRAPHIC
Definition: gsm_49_031.h:133
BSSMAP_LE_IEI_CLASSMARK3_INFO
@ BSSMAP_LE_IEI_CLASSMARK3_INFO
Definition: gsm_49_031.h:101
bssmap_le_msgt
bssmap_le_msgt
Definition: gsm_49_031.h:69
BSSMAP_LE_IEI_LCS_CLIENT_TYPE
@ BSSMAP_LE_IEI_LCS_CLIENT_TYPE
Definition: gsm_49_031.h:92
BSSMAP_LE_IEI_COVERAGE_CLASS
@ BSSMAP_LE_IEI_COVERAGE_CLASS
Definition: gsm_49_031.h:121
BSSMAP_LE_LCS_CTYPE_EMERG_SVC_UNSPECIFIED
@ BSSMAP_LE_LCS_CTYPE_EMERG_SVC_UNSPECIFIED
Definition: gsm_49_031.h:157
bssmap_le_perform_loc_req::more_items
bool more_items
always set this to false
Definition: gsm_49_031.h:174
bssap_le_pdu
Definition: gsm_49_031.h:204
gsm_48_071.h
LCS_CAUSE_FACILITY_NOTSUPP
@ LCS_CAUSE_FACILITY_NOTSUPP
Definition: gsm_49_031.h:47
BSSMAP_LE_IEI_LCS_PRIORITY
@ BSSMAP_LE_IEI_LCS_PRIORITY
Definition: gsm_49_031.h:84
BSSMAP_LE_LCS_CTYPE_VALUE_ADDED_UNSPECIFIED
@ BSSMAP_LE_LCS_CTYPE_VALUE_ADDED_UNSPECIFIED
Definition: gsm_49_031.h:151
gad_raw
GAD PDU in network-byte-order according to 3GPP TS 23.032 GAD: Universal Geographical Area Descriptio...
Definition: gsm_23_032.h:239
BSSMAP_LE_IEI_RET_ERR_REQ
@ BSSMAP_LE_IEI_RET_ERR_REQ
Definition: gsm_49_031.h:98
LCS_CAUSE_GPRS_SUSPENSION
@ LCS_CAUSE_GPRS_SUSPENSION
Definition: gsm_49_031.h:54
BSSMAP_LE_IEI_SHORT_BSS_ID
@ BSSMAP_LE_IEI_SHORT_BSS_ID
Definition: gsm_49_031.h:118
bssmap_le_perform_loc_req::apdu_present
bool apdu_present
Definition: gsm_49_031.h:171
bsslap_pdu
Definition: gsm_48_071.h:110
BSSMAP_LE_IEI_GEO_LOCATION
@ BSSMAP_LE_IEI_GEO_LOCATION
Definition: gsm_49_031.h:87
BSSMAP_LE_IEI_LCS_CAPABILITY
@ BSSMAP_LE_IEI_LCS_CAPABILITY
Definition: gsm_49_031.h:106
lcs_cause
lcs_cause
3GPP TS 49.031 10.13 LCS Cause, also in 3GPP TS 48.008 3.2.2.66, which simply refers to the former.
Definition: gsm_49_031.h:38
BSSMAP_LE_IEI_IMEI
@ BSSMAP_LE_IEI_IMEI
Definition: gsm_49_031.h:109
lcs_cause_ie::cause_val
enum lcs_cause cause_val
Definition: gsm_49_031.h:60
BSSMAP_LE_MSGT_PERFORM_LOC_ABORT
@ BSSMAP_LE_MSGT_PERFORM_LOC_ABORT
Definition: gsm_49_031.h:72
BSSMAP_LE_APDU_PROT_SMLCPP
@ BSSMAP_LE_APDU_PROT_SMLCPP
Definition: gsm_49_031.h:129
LCS_CAUSE_INTER_NSE_CHG
@ LCS_CAUSE_INTER_NSE_CHG
Definition: gsm_49_031.h:51
bssmap_le_location_type
Definition: gsm_49_031.h:145
BSSMAP_LE_IEI_REQ_GANSS_ASS_D
@ BSSMAP_LE_IEI_REQ_GANSS_ASS_D
Definition: gsm_49_031.h:96
LCS_CAUSE_TGT_MS_UNREACHABLE
@ LCS_CAUSE_TGT_MS_UNREACHABLE
Definition: gsm_49_031.h:45
BSSMAP_LE_POS_METHOD_MOBILE_ASSISTED_E_OTD
@ BSSMAP_LE_POS_METHOD_MOBILE_ASSISTED_E_OTD
Definition: gsm_49_031.h:140
bssmap_le_conn_oriented_info::more_items
bool more_items
always set this to false
Definition: gsm_49_031.h:189
LCS_CAUSE_SYSTEM_FAILURE
@ LCS_CAUSE_SYSTEM_FAILURE
Definition: gsm_49_031.h:40
BSSMAP_LE_LCS_CTYPE_PLMN_OPER_UNSPECIFIED
@ BSSMAP_LE_LCS_CTYPE_PLMN_OPER_UNSPECIFIED
Definition: gsm_49_031.h:152
bssmap_le_perform_loc_resp::location_estimate
union gad_raw location_estimate
Definition: gsm_49_031.h:179
gsm0808_cause
gsm0808_cause
Definition: gsm_08_08.h:359
BSSMAP_LE_LCS_CTYPE_PLMN_OPER_TGT_MS_SVC
@ BSSMAP_LE_LCS_CTYPE_PLMN_OPER_TGT_MS_SVC
Definition: gsm_49_031.h:156
BSSMAP_LE_IEI_POSITIONING_DATA
@ BSSMAP_LE_IEI_POSITIONING_DATA
Definition: gsm_49_031.h:88
BSSMAP_LE_LCS_CTYPE_LI_UNSPECIFIED
@ BSSMAP_LE_LCS_CTYPE_LI_UNSPECIFIED
Definition: gsm_49_031.h:158
bssmap_le_perform_loc_req::location_type
struct bssmap_le_location_type location_type
Definition: gsm_49_031.h:162
BSSMAP_LE_IEI_REQ_GPS_ASS_D
@ BSSMAP_LE_IEI_REQ_GPS_ASS_D
Definition: gsm_49_031.h:95
gsm0808_utils.h
BSSMAP_LE_LOC_INFO_ASSIST_TARGET_MS
@ BSSMAP_LE_LOC_INFO_ASSIST_TARGET_MS
Definition: gsm_49_031.h:134
gsm48.h
bssmap_le_perform_loc_resp::more_items
bool more_items
always set this to false
Definition: gsm_49_031.h:183
BSSMAP_LE_MSGT_PERFORM_LOC_RESP
@ BSSMAP_LE_MSGT_PERFORM_LOC_RESP
Definition: gsm_49_031.h:71
BSSMAP_LE_IEI_GANSS_LOCATION_TYPE
@ BSSMAP_LE_IEI_GANSS_LOCATION_TYPE
Definition: gsm_49_031.h:86
LCS_CAUSE_UNSPECIFIED
@ LCS_CAUSE_UNSPECIFIED
Definition: gsm_49_031.h:39
bssmap_le_perform_loc_req::lcs_client_type_present
bool lcs_client_type_present
Definition: gsm_49_031.h:165
BSSMAP_LE_IEI_MLAT_METHOD
@ BSSMAP_LE_IEI_MLAT_METHOD
Definition: gsm_49_031.h:113
lcs_cause_ie
3GPP TS 49.031 10.13 LCS Cause, also in 3GPP TS 48.008 3.2.2.66, which simply refers to the former.
Definition: gsm_49_031.h:58
BSSMAP_LE_IEI_PKT_MEAS_REP
@ BSSMAP_LE_IEI_PKT_MEAS_REP
Definition: gsm_49_031.h:107
BSSMAP_LE_LCS_CTYPE_PLMN_OPER_ANON_STATS
@ BSSMAP_LE_LCS_CTYPE_PLMN_OPER_ANON_STATS
Definition: gsm_49_031.h:155
BSSMAP_LE_IEI_LCS_QoS
@ BSSMAP_LE_IEI_LCS_QoS
Definition: gsm_49_031.h:83
LCS_CAUSE_PROTOCOL_ERROR
@ LCS_CAUSE_PROTOCOL_ERROR
Definition: gsm_49_031.h:41
BSSMAP_LE_LCS_CTYPE_PLMN_OPER_OAM
@ BSSMAP_LE_LCS_CTYPE_PLMN_OPER_OAM
Definition: gsm_49_031.h:154
BSSMAP_LE_POS_METHOD_OMITTED
@ BSSMAP_LE_POS_METHOD_OMITTED
Definition: gsm_49_031.h:139
BSSMAP_LE_IEI_SHORT_ID_SET
@ BSSMAP_LE_IEI_SHORT_ID_SET
Definition: gsm_49_031.h:116
BSSMAP_LE_MSGT_CONN_ORIENTED_INFO
@ BSSMAP_LE_MSGT_CONN_ORIENTED_INFO
Definition: gsm_49_031.h:76
bssmap_le_pdu::perform_loc_resp
struct bssmap_le_perform_loc_resp perform_loc_resp
Definition: gsm_49_031.h:198
BSSMAP_LE_IEI_RANDOM_ID_SET
@ BSSMAP_LE_IEI_RANDOM_ID_SET
Definition: gsm_49_031.h:117
BSSMAP_LE_MSGT_PERFORM_LOC_INFO
@ BSSMAP_LE_MSGT_PERFORM_LOC_INFO
Definition: gsm_49_031.h:73
bssmap_le_lcs_client_type
bssmap_le_lcs_client_type
Definition: gsm_49_031.h:150
gsm0808_cell_id
Parsed representation of Cell Identifier IE (3GPP TS 48.008 3.2.2.17)
Definition: gsm0808_utils.h:51
BSSMAP_LE_IEI_LCS_CAUSE
@ BSSMAP_LE_IEI_LCS_CAUSE
Definition: gsm_49_031.h:91
LCS_CAUSE_CONGESTION
@ LCS_CAUSE_CONGESTION
Definition: gsm_49_031.h:50
BSSAP_LE_MSG_DISCR_BSSMAP_LE
@ BSSAP_LE_MSG_DISCR_BSSMAP_LE
Definition: gsm_49_031.h:66
LCS_CAUSE_INTRA_BSC_HO
@ LCS_CAUSE_INTRA_BSC_HO
Definition: gsm_49_031.h:49
bssmap_le_pdu::perform_loc_req
struct bssmap_le_perform_loc_req perform_loc_req
Definition: gsm_49_031.h:197
bssmap_le_pdu::conn_oriented_info
struct bssmap_le_conn_oriented_info conn_oriented_info
Definition: gsm_49_031.h:200
BSSMAP_LE_IEI_APDU
@ BSSMAP_LE_IEI_APDU
Definition: gsm_49_031.h:93
bssmap_le_location_type::positioning_method
enum bssmap_le_positioning_method positioning_method
Definition: gsm_49_031.h:147
BSSMAP_LE_IEI_NET_ELEM_ID
@ BSSMAP_LE_IEI_NET_ELEM_ID
Definition: gsm_49_031.h:94
BSSMAP_LE_MSGT_CONN_LESS_INFO
@ BSSMAP_LE_MSGT_CONN_LESS_INFO
Definition: gsm_49_031.h:77
BSSMAP_LE_MSGT_RESET
@ BSSMAP_LE_MSGT_RESET
Definition: gsm_49_031.h:78
BSSMAP_LE_POS_METHOD_MOBILE_BASED_E_OTD
@ BSSMAP_LE_POS_METHOD_MOBILE_BASED_E_OTD
Definition: gsm_49_031.h:141
bssmap_le_location_type::location_information
enum bssmap_le_location_information location_information
Definition: gsm_49_031.h:146
BSSMAP_LE_IEI_SEGMENTATION
@ BSSMAP_LE_IEI_SEGMENTATION
Definition: gsm_49_031.h:100
bssmap_le_pdu
Definition: gsm_49_031.h:192
bssmap_le_perform_loc_req::apdu
struct bsslap_pdu apdu
Definition: gsm_49_031.h:172
BSSMAP_LE_IEI_IMSI
@ BSSMAP_LE_IEI_IMSI
Definition: gsm_49_031.h:105
BSSMAP_LE_MSGT_ASSIST_INFO_RESP
@ BSSMAP_LE_MSGT_ASSIST_INFO_RESP
Definition: gsm_49_031.h:75
bssmap_le_pdu::msg_type
enum bssmap_le_msgt msg_type
Definition: gsm_49_031.h:193
bssmap_le_apdu_proto
bssmap_le_apdu_proto
Definition: gsm_49_031.h:125
BSSMAP_LE_IEI_SHORT_ID
@ BSSMAP_LE_IEI_SHORT_ID
Definition: gsm_49_031.h:120
BSSMAP_LE_APDU_PROT_BSSLAP
@ BSSMAP_LE_APDU_PROT_BSSLAP
Definition: gsm_49_031.h:127
BSSMAP_LE_IEI_CAUSE
@ BSSMAP_LE_IEI_CAUSE
Definition: gsm_49_031.h:102
BSSMAP_LE_IEI_MTA_ACC_SEC_RQD
@ BSSMAP_LE_IEI_MTA_ACC_SEC_RQD
Definition: gsm_49_031.h:122
BSSMAP_LE_IEI_CHOSEN_CHAN
@ BSSMAP_LE_IEI_CHOSEN_CHAN
Definition: gsm_49_031.h:104
bssmap_le_pdu::reset
enum gsm0808_cause reset
Definition: gsm_49_031.h:195
lcs_cause_ie::present
bool present
Definition: gsm_49_031.h:59
lcs_cause_ie::diag_val_present
bool diag_val_present
Definition: gsm_49_031.h:61
bssmap_le_positioning_method
bssmap_le_positioning_method
Definition: gsm_49_031.h:138
bssap_le_msg_discr
bssap_le_msg_discr
Definition: gsm_49_031.h:65
BSSMAP_LE_LOC_INFO_BC_DECIPHER_KEYS
@ BSSMAP_LE_LOC_INFO_BC_DECIPHER_KEYS
Definition: gsm_49_031.h:135
bssmap_le_perform_loc_req
Definition: gsm_49_031.h:161
LCS_CAUSE_REQUEST_ABORTED
@ LCS_CAUSE_REQUEST_ABORTED
Definition: gsm_49_031.h:46
LCS_CAUSE_RA_UPDAT
@ LCS_CAUSE_RA_UPDAT
Definition: gsm_49_031.h:52
bssap_le_pdu::bssmap_le
struct bssmap_le_pdu bssmap_le
Definition: gsm_49_031.h:207
LCS_CAUSE_POS_METH_FAILURE
@ LCS_CAUSE_POS_METH_FAILURE
Definition: gsm_49_031.h:44
bssmap_le_pdu::perform_loc_abort
struct lcs_cause_ie perform_loc_abort
Definition: gsm_49_031.h:199
BSSMAP_LE_IEI_CELL_ID_LIST
@ BSSMAP_LE_IEI_CELL_ID_LIST
Definition: gsm_49_031.h:108
bssap_le_pdu::discr
enum bssap_le_msg_discr discr
Definition: gsm_49_031.h:205
BSSMAP_LE_APDU_PROT_RESERVED
@ BSSMAP_LE_APDU_PROT_RESERVED
Definition: gsm_49_031.h:126
LCS_CAUSE_UNEXP_DATA_IN_REQ
@ LCS_CAUSE_UNEXP_DATA_IN_REQ
Definition: gsm_49_031.h:43
BSSMAP_LE_MSGT_PERFORM_LOC_REQ
@ BSSMAP_LE_MSGT_PERFORM_LOC_REQ
Definition: gsm_49_031.h:70
BSSMAP_LE_MSGT_ASSIST_INFO_REQ
@ BSSMAP_LE_MSGT_ASSIST_INFO_REQ
Definition: gsm_49_031.h:74
bssmap_le_perform_loc_req::imsi
struct osmo_mobile_identity imsi
Definition: gsm_49_031.h:168
BSSMAP_LE_IEI_LOCATION_TYPE
@ BSSMAP_LE_IEI_LOCATION_TYPE
Definition: gsm_49_031.h:85
bssmap_le_conn_oriented_info::apdu
struct bsslap_pdu apdu
Definition: gsm_49_031.h:187
LCS_CAUSE_DATA_MISSING_IN_REQ
@ LCS_CAUSE_DATA_MISSING_IN_REQ
Definition: gsm_49_031.h:42
BSSMAP_LE_POS_METHOD_ASSISTED_GPS
@ BSSMAP_LE_POS_METHOD_ASSISTED_GPS
Definition: gsm_49_031.h:142
bssmap_le_perform_loc_req::cell_id
struct gsm0808_cell_id cell_id
Definition: gsm_49_031.h:163
BSSMAP_LE_APDU_PROT_LLP
@ BSSMAP_LE_APDU_PROT_LLP
Definition: gsm_49_031.h:128
BSSMAP_LE_LCS_CTYPE_PLMN_OPER_BCAST_SERVICE
@ BSSMAP_LE_LCS_CTYPE_PLMN_OPER_BCAST_SERVICE
Definition: gsm_49_031.h:153
BSSMAP_LE_IEI_BSS_MLAT_CAP
@ BSSMAP_LE_IEI_BSS_MLAT_CAP
Definition: gsm_49_031.h:110
lcs_cause_ie::diag_val
uint8_t diag_val
Definition: gsm_49_031.h:62
bssmap_le_location_information
bssmap_le_location_information
Definition: gsm_49_031.h:132
BSSMAP_LE_IEI_GANSS_POS_DATA
@ BSSMAP_LE_IEI_GANSS_POS_DATA
Definition: gsm_49_031.h:89
BSSMAP_LE_IEI_BTS_RX_ACC_LVL
@ BSSMAP_LE_IEI_BTS_RX_ACC_LVL
Definition: gsm_49_031.h:112
BSSMAP_LE_IEI_CELL_INFO_LIST
@ BSSMAP_LE_IEI_CELL_INFO_LIST
Definition: gsm_49_031.h:111
BSSMAP_LE_IEI_DECIPH_KEYS
@ BSSMAP_LE_IEI_DECIPH_KEYS
Definition: gsm_49_031.h:97
LCS_CAUSE_INTER_BSC_HO
@ LCS_CAUSE_INTER_BSC_HO
Definition: gsm_49_031.h:48
bssmap_le_perform_loc_resp::location_estimate_present
bool location_estimate_present
Definition: gsm_49_031.h:178
bssmap_le_perform_loc_resp
Definition: gsm_49_031.h:177
BSSMAP_LE_IEI_VELOCITY_DATA
@ BSSMAP_LE_IEI_VELOCITY_DATA
Definition: gsm_49_031.h:90
bssmap_le_iei
bssmap_le_iei
Definition: gsm_49_031.h:82