25 #include <osmocom/core/msgb.h>
26 #include <osmocom/gsm/protocol/gsm_23_003.h>
27 #include <osmocom/gsm/protocol/gsm_04_08_gprs.h>
28 #include <osmocom/crypt/auth.h>
31 #define OSMO_GSUP_MAX_NUM_PDP_INFO 10
33 #define OSMO_GSUP_MAX_NUM_AUTH_INFO 5
35 #define OSMO_GSUP_MAX_MSISDN_LEN 9
37 #define OSMO_GSUP_PDP_TYPE_SIZE 2
95 #define OSMO_GSUP_IS_MSGT_REQUEST(msgt) (((msgt) & 0b00000011) == 0b00)
96 #define OSMO_GSUP_IS_MSGT_ERROR(msgt) (((msgt) & 0b00000011) == 0b01)
97 #define OSMO_GSUP_TO_MSGT_ERROR(msgt) (((msgt) & 0b11111100) | 0b01)
100 static inline const char *
135 char imsi[GSM23003_IMSI_MAX_DIGITS+2];
const uint8_t * auts
Definition: gsup.h:148
static const char * osmo_gsup_message_type_name(enum osmo_gsup_message_type val)
Definition: gsup.h:101
void osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg)
Encode a GSUP message.
Definition: gsup.c:464
const struct value_string osmo_gsup_message_type_names[]
Definition: gsup.c:39
size_t num_pdp_infos
Definition: gsup.h:143
uint16_t pdp_type
Type of PDP context.
Definition: gsup.h:119
struct osmo_gsup_pdp_info pdp_infos[OSMO_GSUP_MAX_NUM_PDP_INFO]
Definition: gsup.h:142
int freeze_ptmsi
Definition: gsup.h:139
int have_info
Definition: gsup.h:117
enum gsm48_gmm_cause cause
Definition: gsup.h:136
int pdp_info_compl
Definition: gsup.h:138
#define OSMO_GSUP_MAX_NUM_AUTH_INFO
Maximum number of auth info inside osmo_gsup_message.
Definition: gsup.h:33
const uint8_t * msisdn_enc
Definition: gsup.h:144
size_t hlr_enc_len
Definition: gsup.h:147
osmo_gsup_cn_domain
Definition: gsup.h:109
char imsi[GSM23003_IMSI_MAX_DIGITS+2]
Definition: gsup.h:135
unsigned int context_id
Definition: gsup.h:116
const uint8_t * hlr_enc
Definition: gsup.h:146
size_t msisdn_enc_len
Definition: gsup.h:145
size_t qos_enc_len
length (in octets) of qos_enc
Definition: gsup.h:129
struct osmo_auth_vector auth_vectors[OSMO_GSUP_MAX_NUM_AUTH_INFO]
Definition: gsup.h:140
int osmo_gsup_decode(const uint8_t *data, size_t data_len, struct osmo_gsup_message *gsup_msg)
Decode (parse) a GSUP message.
Definition: gsup.c:214
enum osmo_gsup_cn_domain cn_domain
Definition: gsup.h:150
parsed/decoded PDP context information
Definition: gsup.h:115
parsed/decoded GSUP protocol message
Definition: gsup.h:133
#define OSMO_GSUP_MAX_NUM_PDP_INFO
Maximum nubmer of PDP inside osmo_gsup_message.
Definition: gsup.h:31
const uint8_t * apn_enc
APN information, still in encoded form.
Definition: gsup.h:122
const uint8_t * rand
Definition: gsup.h:149
enum osmo_gsup_cancel_type cancel_type
Definition: gsup.h:137
osmo_gsup_iei
Information Element Identifiers for GSUP IEs.
Definition: gsup.h:40
const uint8_t * qos_enc
QoS information, still in encoded form.
Definition: gsup.h:127
size_t apn_enc_len
length (in octets) of apn_enc
Definition: gsup.h:124
enum osmo_gsup_message_type message_type
Definition: gsup.h:134
osmo_gsup_message_type
GSUP message type.
Definition: gsup.h:67
osmo_gsup_cancel_type
Definition: gsup.h:104
size_t num_auth_vectors
Definition: gsup.h:141