libosmogsm
1.0.1.85-9f28
Osmocom GSM library
Main Page
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
oap.h
Go to the documentation of this file.
1
10
/*
11
* (C) 2015-2016 by sysmocom - s.f.m.c. GmbH
12
* Author: Neels Hofmeyr
13
* All Rights Reserved
14
*
15
* SPDX-License-Identifier: GPL-2.0+
16
*
17
* This program is free software; you can redistribute it and/or modify
18
* it under the terms of the GNU General Public License as published by
19
* the Free Software Foundation; either version 2 of the License, or
20
* (at your option) any later version.
21
*
22
* This program is distributed in the hope that it will be useful,
23
* but WITHOUT ANY WARRANTY; without even the implied warranty of
24
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25
* GNU General Public License for more details.
26
*
27
* You should have received a copy of the GNU General Public License
28
* along with this program. If not, see <http://www.gnu.org/licenses/>.
29
*
30
*/
31
32
#pragma once
33
34
#include <stdint.h>
35
#include <
osmocom/core/msgb.h
>
36
#include <
osmocom/gsm/protocol/gsm_04_08_gprs.h
>
37
40
enum
osmo_oap_iei
{
41
OAP_CAUSE_IE
= 0x02,
42
OAP_RAND_IE
= 0x20,
43
OAP_AUTN_IE
= 0x23,
44
OAP_XRES_IE
= 0x24,
45
OAP_AUTS_IE
= 0x25,
46
OAP_CLIENT_ID_IE
= 0x30,
47
};
48
50
enum
osmo_oap_message_type
{
51
OAP_MSGT_REGISTER_REQUEST
= 0b00000100,
52
OAP_MSGT_REGISTER_ERROR
= 0b00000101,
53
OAP_MSGT_REGISTER_RESULT
= 0b00000110,
54
55
OAP_MSGT_CHALLENGE_REQUEST
= 0b00001000,
56
OAP_MSGT_CHALLENGE_ERROR
= 0b00001001,
57
OAP_MSGT_CHALLENGE_RESULT
= 0b00001010,
58
59
OAP_MSGT_SYNC_REQUEST
= 0b00001100,
60
OAP_MSGT_SYNC_ERROR
= 0b00001101,
61
OAP_MSGT_SYNC_RESULT
= 0b00001110,
62
};
63
65
struct
osmo_oap_message
{
66
enum
osmo_oap_message_type
message_type
;
67
enum
gsm48_gmm_cause
cause
;
68
uint16_t
client_id
;
69
int
rand_present
;
70
uint8_t
rand
[16];
71
int
autn_present
;
72
uint8_t
autn
[16];
73
int
xres_present
;
74
uint8_t
xres
[8];
75
int
auts_present
;
76
uint8_t
auts
[14];
77
};
78
79
int
osmo_oap_decode
(
struct
osmo_oap_message
*oap_msg,
const
uint8_t *
data
,
80
size_t
data_len);
81
void
osmo_oap_encode
(
struct
msgb
*msg,
const
struct
osmo_oap_message
*oap_msg);
82
osmo_oap_encode
void osmo_oap_encode(struct msgb *msg, const struct osmo_oap_message *oap_msg)
Compose OAP message data.
Definition:
oap.c:160
gsm_04_08_gprs.h
osmo_oap_message::auts
uint8_t auts[14]
Definition:
oap.h:76
osmo_oap_decode
int osmo_oap_decode(struct osmo_oap_message *oap_msg, const uint8_t *data, size_t data_len)
Decode OAP message data.
Definition:
oap.c:43
osmo_oap_message::rand
uint8_t rand[16]
Definition:
oap.h:70
OAP_MSGT_REGISTER_ERROR
Definition:
oap.h:52
msgb
OAP_XRES_IE
Definition:
oap.h:44
osmo_oap_message_type
osmo_oap_message_type
OAP message types.
Definition:
oap.h:50
osmo_oap_message::autn_present
int autn_present
Definition:
oap.h:71
OAP_MSGT_SYNC_RESULT
Definition:
oap.h:61
msgb.h
OAP_CAUSE_IE
Definition:
oap.h:41
OAP_AUTS_IE
Definition:
oap.h:45
osmo_oap_message::xres_present
int xres_present
Definition:
oap.h:73
osmo_oap_message::cause
enum gsm48_gmm_cause cause
Definition:
oap.h:67
OAP_AUTN_IE
Definition:
oap.h:43
osmo_oap_message::client_id
uint16_t client_id
Definition:
oap.h:68
data
uint8_t data[0]
osmo_oap_iei
osmo_oap_iei
Information Element Identifiers for OAP IEs.
Definition:
oap.h:40
osmo_oap_message::rand_present
int rand_present
Definition:
oap.h:69
OAP_MSGT_CHALLENGE_RESULT
Definition:
oap.h:57
osmo_oap_message::autn
uint8_t autn[16]
Definition:
oap.h:72
osmo_oap_message::auts_present
int auts_present
Definition:
oap.h:75
gsm48_gmm_cause
gsm48_gmm_cause
Definition:
gsm_04_08_gprs.h:206
OAP_MSGT_CHALLENGE_REQUEST
Definition:
oap.h:55
OAP_MSGT_SYNC_ERROR
Definition:
oap.h:60
OAP_MSGT_REGISTER_RESULT
Definition:
oap.h:53
osmo_oap_message::xres
uint8_t xres[8]
Definition:
oap.h:74
OAP_MSGT_SYNC_REQUEST
Definition:
oap.h:59
OAP_MSGT_CHALLENGE_ERROR
Definition:
oap.h:56
OAP_CLIENT_ID_IE
Definition:
oap.h:46
OAP_MSGT_REGISTER_REQUEST
Definition:
oap.h:51
osmo_oap_message::message_type
enum osmo_oap_message_type message_type
Definition:
oap.h:66
OAP_RAND_IE
Definition:
oap.h:42
osmo_oap_message
Parsed/decoded OAP protocol message.
Definition:
oap.h:65
include
osmocom
gsm
oap.h
Generated on Mon Mar 25 2019 02:35:13 for libosmogsm by
1.8.8