\doxysection{include/osmocom/gsm/protocol/gsm\+\_\+49\+\_\+031.h File Reference}
\label{gsm__49__031_8h}\index{include/osmocom/gsm/protocol/gsm\_49\_031.h@{include/osmocom/gsm/protocol/gsm\_49\_031.h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/endian.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/protocol/gsm\+\_\+48\+\_\+071.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/protocol/gsm\+\_\+23\+\_\+032.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/gsm0808\+\_\+utils.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/gsm48.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ lcs\+\_\+cause\+\_\+ie}
\begin{DoxyCompactList}\small\item\em 3GPP TS 49.\+031 10.\+13 LCS Cause, also in 3GPP TS 48.\+008 3.\+2.\+2.\+66, which simply refers to the former. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+bssmap\+\_\+le\+\_\+lcs\+\_\+qos}
\item 
struct \textbf{ bssmap\+\_\+le\+\_\+location\+\_\+type}
\item 
struct \textbf{ bssmap\+\_\+le\+\_\+perform\+\_\+loc\+\_\+req}
\item 
struct \textbf{ bssmap\+\_\+le\+\_\+perform\+\_\+loc\+\_\+resp}
\item 
struct \textbf{ bssmap\+\_\+le\+\_\+conn\+\_\+oriented\+\_\+info}
\item 
struct \textbf{ bssmap\+\_\+le\+\_\+pdu}
\item 
struct \textbf{ bssap\+\_\+le\+\_\+pdu}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ lcs\+\_\+cause} \{ \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+UNSPECIFIED} = 0
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+SYSTEM\+\_\+\+FAILURE} = 1
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+PROTOCOL\+\_\+\+ERROR} = 2
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+DATA\+\_\+\+MISSING\+\_\+\+IN\+\_\+\+REQ} = 3
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+UNEXP\+\_\+\+DATA\+\_\+\+IN\+\_\+\+REQ} = 4
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+POS\+\_\+\+METH\+\_\+\+FAILURE} = 5
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+TGT\+\_\+\+MS\+\_\+\+UNREACHABLE} = 6
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+REQUEST\+\_\+\+ABORTED} = 7
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+FACILITY\+\_\+\+NOTSUPP} = 8
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+INTER\+\_\+\+BSC\+\_\+\+HO} = 9
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+INTRA\+\_\+\+BSC\+\_\+\+HO} = 10
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+CONGESTION} = 11
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+INTER\+\_\+\+NSE\+\_\+\+CHG} = 12
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+RA\+\_\+\+UPDAT} = 13
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+PTMSI\+\_\+\+REALLOC} = 14
, \newline
\textbf{ LCS\+\_\+\+CAUSE\+\_\+\+GPRS\+\_\+\+SUSPENSION} = 15
 \}
\begin{DoxyCompactList}\small\item\em 3GPP TS 49.\+031 10.\+13 LCS Cause, also in 3GPP TS 48.\+008 3.\+2.\+2.\+66, which simply refers to the former. \end{DoxyCompactList}\item 
enum \textbf{ bssap\+\_\+le\+\_\+msg\+\_\+discr} \{ \textbf{ BSSAP\+\_\+\+LE\+\_\+\+MSG\+\_\+\+DISCR\+\_\+\+BSSMAP\+\_\+\+LE} = 0
 \}
\item 
enum \textbf{ bssmap\+\_\+le\+\_\+msgt} \{ \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+PERFORM\+\_\+\+LOC\+\_\+\+REQ} = 0x2b
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+PERFORM\+\_\+\+LOC\+\_\+\+RESP} = 0x2d
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+PERFORM\+\_\+\+LOC\+\_\+\+ABORT} = 0x2e
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+PERFORM\+\_\+\+LOC\+\_\+\+INFO} = 0x2f
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+ASSIST\+\_\+\+INFO\+\_\+\+REQ} = 0x20
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+ASSIST\+\_\+\+INFO\+\_\+\+RESP} = 0x21
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+CONN\+\_\+\+ORIENTED\+\_\+\+INFO} = 0x2a
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+CONN\+\_\+\+LESS\+\_\+\+INFO} = 0x3a
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+RESET} = 0x30
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+ACK} = 0x31
 \}
\item 
enum \textbf{ bssmap\+\_\+le\+\_\+iei} \{ \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+LCS\+\_\+\+QoS} = 0x3e
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+LCS\+\_\+\+PRIORITY} = 0x43
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+LOCATION\+\_\+\+TYPE} = 0x44
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+GANSS\+\_\+\+LOCATION\+\_\+\+TYPE} = 0x82
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+GEO\+\_\+\+LOCATION} = 0x45
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+POSITIONING\+\_\+\+DATA} = 0x46
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+GANSS\+\_\+\+POS\+\_\+\+DATA} = 0x83
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+VELOCITY\+\_\+\+DATA} = 0x55
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+LCS\+\_\+\+CAUSE} = 0x47
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+LCS\+\_\+\+CLIENT\+\_\+\+TYPE} = 0x48
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+APDU} = 0x49
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+NET\+\_\+\+ELEM\+\_\+\+ID} = 0x4a
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+REQ\+\_\+\+GPS\+\_\+\+ASS\+\_\+D} = 0x4b
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+REQ\+\_\+\+GANSS\+\_\+\+ASS\+\_\+D} = 0x41
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+DECIPH\+\_\+\+KEYS} = 0x4c
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+RET\+\_\+\+ERR\+\_\+\+REQ} = 0x4d
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+RET\+\_\+\+ERR\+\_\+\+CAUSE} = 0x4e
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+SEGMENTATION} = 0x4f
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+CLASSMARK3\+\_\+\+INFO} = 0x13
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+CAUSE} = 0x4
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+CELL\+\_\+\+ID} = 0x5
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+CHOSEN\+\_\+\+CHAN} = 0x21
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+IMSI} = 0x0
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+LCS\+\_\+\+CAPABILITY} = 0x50
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+PKT\+\_\+\+MEAS\+\_\+\+REP} = 0x51
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST} = 0x52
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+IMEI} = 0x80
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+BSS\+\_\+\+MLAT\+\_\+\+CAP} = 0x84
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+CELL\+\_\+\+INFO\+\_\+\+LIST} = 0x85
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+BTS\+\_\+\+RX\+\_\+\+ACC\+\_\+\+LVL} = 0x86
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+MLAT\+\_\+\+METHOD} = 0x87
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+MLAT\+\_\+\+TA} = 0x88
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+MS\+\_\+\+SYNC\+\_\+\+ACC} = 0x89
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+SHORT\+\_\+\+ID\+\_\+\+SET} = 0x8a
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+RANDOM\+\_\+\+ID\+\_\+\+SET} = 0x8b
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+SHORT\+\_\+\+BSS\+\_\+\+ID} = 0x8c
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+RANDOM\+\_\+\+ID} = 0x8d
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+SHORT\+\_\+\+ID} = 0x8e
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+COVERAGE\+\_\+\+CLASS} = 0x8f
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+IEI\+\_\+\+MTA\+\_\+\+ACC\+\_\+\+SEC\+\_\+\+RQD} = 0x90
 \}
\item 
enum \textbf{ bssmap\+\_\+le\+\_\+apdu\+\_\+proto} \{ \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+APDU\+\_\+\+PROT\+\_\+\+RESERVED} = 0
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+APDU\+\_\+\+PROT\+\_\+\+BSSLAP} = 1
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+APDU\+\_\+\+PROT\+\_\+\+LLP} = 2
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+APDU\+\_\+\+PROT\+\_\+\+SMLCPP} = 3
 \}
\item 
enum \textbf{ bssmap\+\_\+le\+\_\+location\+\_\+information} \{ \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LOC\+\_\+\+INFO\+\_\+\+CURRENT\+\_\+\+GEOGRAPHIC} = 0x0
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LOC\+\_\+\+INFO\+\_\+\+ASSIST\+\_\+\+TARGET\+\_\+\+MS} = 0x1
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LOC\+\_\+\+INFO\+\_\+\+BC\+\_\+\+DECIPHER\+\_\+\+KEYS} = 0x2
 \}
\item 
enum \textbf{ bssmap\+\_\+le\+\_\+positioning\+\_\+method} \{ \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+POS\+\_\+\+METHOD\+\_\+\+OMITTED} = 0x0
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+POS\+\_\+\+METHOD\+\_\+\+MOBILE\+\_\+\+ASSISTED\+\_\+\+E\+\_\+\+OTD} = 0x1
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+POS\+\_\+\+METHOD\+\_\+\+MOBILE\+\_\+\+BASED\+\_\+\+E\+\_\+\+OTD} = 0x2
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+POS\+\_\+\+METHOD\+\_\+\+ASSISTED\+\_\+\+GPS} = 0x3
 \}
\item 
enum \textbf{ bssmap\+\_\+le\+\_\+lcs\+\_\+client\+\_\+type} \{ \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LCS\+\_\+\+CTYPE\+\_\+\+VALUE\+\_\+\+ADDED\+\_\+\+UNSPECIFIED} = 0x0
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LCS\+\_\+\+CTYPE\+\_\+\+PLMN\+\_\+\+OPER\+\_\+\+UNSPECIFIED} = 0x20
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LCS\+\_\+\+CTYPE\+\_\+\+PLMN\+\_\+\+OPER\+\_\+\+BCAST\+\_\+\+SERVICE} = 0x21
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LCS\+\_\+\+CTYPE\+\_\+\+PLMN\+\_\+\+OPER\+\_\+\+OAM} = 0x22
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LCS\+\_\+\+CTYPE\+\_\+\+PLMN\+\_\+\+OPER\+\_\+\+ANON\+\_\+\+STATS} = 0x23
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LCS\+\_\+\+CTYPE\+\_\+\+PLMN\+\_\+\+OPER\+\_\+\+TGT\+\_\+\+MS\+\_\+\+SVC} = 0x24
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LCS\+\_\+\+CTYPE\+\_\+\+EMERG\+\_\+\+SVC\+\_\+\+UNSPECIFIED} = 0x30
, \newline
\textbf{ BSSMAP\+\_\+\+LE\+\_\+\+LCS\+\_\+\+CTYPE\+\_\+\+LI\+\_\+\+UNSPECIFIED} = 0x40
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+bssmap\+\_\+le\+\_\+lcs\+\_\+qos} \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+} ((packed))
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ bssap\+\_\+le\+\_\+msg\+\_\+discr} \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+}
\end{DoxyCompactItemize}
