libosmogsm 1.9.0.196-9975
Osmocom GSM library
Generic Subscriber Update Protocol

The Generic Subscriber Update Protocol (GSUP) is an Osmocom-specific non-standard protocol replacing MAP as the protocol between MSC/VLR/SGSN and HLR in a 3GPP cellular communications network. More...

Files

file  gsup.h
 Osmocom Generic Subscriber Update Protocol message encoder/decoder.
 
file  gsup_sms.h
 SMS (Short Message Service) extensions for Osmocom GSUP.
 
file  gsup.c
 Osmocom Generic Subscriber Update Protocol.
 
file  gsup_sms.c
 SMS (Short Message Service) extensions for Osmocom GSUP.
 

Data Structures

struct  osmo_gsup_pdp_info
 parsed/decoded PDP context information More...
 
struct  osmo_gsup_an_apdu
 AccessNetworkSignalInfo as in 3GPP TS 29.002. More...
 
struct  osmo_gsup_message
 parsed/decoded GSUP protocol message More...
 

Macros

#define OSMO_GSUP_PORT   4222
 
#define OSMO_GSUP_MAX_NUM_PDP_INFO   10 /* GSM 09.02 limits this to 50 */
 Maximum nubmer of PDP inside osmo_gsup_message. More...
 
#define OSMO_GSUP_MAX_NUM_AUTH_INFO   5
 Maximum number of auth info inside osmo_gsup_message. More...
 
#define OSMO_GSUP_MAX_MSISDN_LEN   9
 Maximum number of octets encoding MSISDN in BCD format. More...
 
#define OSMO_GSUP_MAX_CALLED_PARTY_BCD_LEN   43 /* TS 24.008 10.5.4.7 */
 
#define OSMO_GSUP_MAX_PCO_LEN   251
 
#define OSMO_GSUP_MSGT_E_ROUTING_ERROR   OSMO_GSUP_MSGT_ROUTING_ERROR
 
#define OSMO_GSUP_IS_MSGT_REQUEST(msgt)   (((msgt) & 0b00000011) == 0b00)
 
#define OSMO_GSUP_IS_MSGT_ERROR(msgt)   (((msgt) & 0b00000011) == 0b01)
 
#define OSMO_GSUP_IS_MSGT_RESULT(msgt)   (((msgt) & 0b00000011) == 0b10)
 
#define OSMO_GSUP_TO_MSGT_REQUEST(msgt)   (((msgt) & 0b11111100))
 
#define OSMO_GSUP_TO_MSGT_ERROR(msgt)   (((msgt) & 0b11111100) | 0b01)
 
#define OSMO_GSUP_TO_MSGT_RESULT(msgt)   (((msgt) & 0b11111100) | 0b10)
 

Enumerations

enum  osmo_gsup_iei {
  OSMO_GSUP_IMSI_IE = 0x01 ,
  OSMO_GSUP_CAUSE_IE = 0x02 ,
  OSMO_GSUP_AUTH_TUPLE_IE = 0x03 ,
  OSMO_GSUP_PDP_INFO_COMPL_IE = 0x04 ,
  OSMO_GSUP_PDP_INFO_IE = 0x05 ,
  OSMO_GSUP_CANCEL_TYPE_IE = 0x06 ,
  OSMO_GSUP_FREEZE_PTMSI_IE = 0x07 ,
  OSMO_GSUP_MSISDN_IE = 0x08 ,
  OSMO_GSUP_HLR_NUMBER_IE = 0x09 ,
  OSMO_GSUP_MESSAGE_CLASS_IE = 0x0a ,
  OSMO_GSUP_PDP_CONTEXT_ID_IE = 0x10 ,
  OSMO_GSUP_PDP_ADDRESS_IE = 0x11 ,
  OSMO_GSUP_ACCESS_POINT_NAME_IE = 0x12 ,
  OSMO_GSUP_PDP_QOS_IE = 0x13 ,
  OSMO_GSUP_CHARG_CHAR_IE = 0x14 ,
  OSMO_GSUP_PCO_IE = 0x15 ,
  OSMO_GSUP_RAND_IE = 0x20 ,
  OSMO_GSUP_SRES_IE = 0x21 ,
  OSMO_GSUP_KC_IE = 0x22 ,
  OSMO_GSUP_IK_IE = 0x23 ,
  OSMO_GSUP_CK_IE = 0x24 ,
  OSMO_GSUP_AUTN_IE = 0x25 ,
  OSMO_GSUP_AUTS_IE = 0x26 ,
  OSMO_GSUP_RES_IE = 0x27 ,
  OSMO_GSUP_CN_DOMAIN_IE = 0x28 ,
  OSMO_GSUP_SUPPORTED_RAT_TYPES_IE = 0x29 ,
  OSMO_GSUP_CURRENT_RAT_TYPE_IE = 0x2a ,
  OSMO_GSUP_SESSION_ID_IE = 0x30 ,
  OSMO_GSUP_SESSION_STATE_IE = 0x31 ,
  OSMO_GSUP_SS_INFO_IE = 0x35 ,
  OSMO_GSUP_SM_RP_MR_IE = 0x40 ,
  OSMO_GSUP_SM_RP_DA_IE = 0x41 ,
  OSMO_GSUP_SM_RP_OA_IE = 0x42 ,
  OSMO_GSUP_SM_RP_UI_IE = 0x43 ,
  OSMO_GSUP_SM_RP_CAUSE_IE = 0x44 ,
  OSMO_GSUP_SM_RP_MMS_IE = 0x45 ,
  OSMO_GSUP_SM_ALERT_RSN_IE = 0x46 ,
  OSMO_GSUP_IMEI_IE = 0x50 ,
  OSMO_GSUP_IMEI_RESULT_IE = 0x51 ,
  OSMO_GSUP_NUM_VECTORS_REQ_IE = 0x52 ,
  OSMO_GSUP_SOURCE_NAME_IE = 0x60 ,
  OSMO_GSUP_DESTINATION_NAME_IE = 0x61 ,
  OSMO_GSUP_AN_APDU_IE = 0x62 ,
  OSMO_GSUP_CAUSE_RR_IE = 0x63 ,
  OSMO_GSUP_CAUSE_BSSAP_IE = 0x64 ,
  OSMO_GSUP_CAUSE_SM_IE = 0x65 ,
  _OSMO_GSUP_IEI_END_MARKER
}
 Information Element Identifiers for GSUP IEs. More...
 
enum  osmo_gsup_message_type {
  OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST = 0b00000100 ,
  OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR = 0b00000101 ,
  OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT = 0b00000110 ,
  OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST = 0b00001000 ,
  OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR = 0b00001001 ,
  OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT = 0b00001010 ,
  OSMO_GSUP_MSGT_AUTH_FAIL_REPORT = 0b00001011 ,
  OSMO_GSUP_MSGT_PURGE_MS_REQUEST = 0b00001100 ,
  OSMO_GSUP_MSGT_PURGE_MS_ERROR = 0b00001101 ,
  OSMO_GSUP_MSGT_PURGE_MS_RESULT = 0b00001110 ,
  OSMO_GSUP_MSGT_INSERT_DATA_REQUEST = 0b00010000 ,
  OSMO_GSUP_MSGT_INSERT_DATA_ERROR = 0b00010001 ,
  OSMO_GSUP_MSGT_INSERT_DATA_RESULT = 0b00010010 ,
  OSMO_GSUP_MSGT_DELETE_DATA_REQUEST = 0b00010100 ,
  OSMO_GSUP_MSGT_DELETE_DATA_ERROR = 0b00010101 ,
  OSMO_GSUP_MSGT_DELETE_DATA_RESULT = 0b00010110 ,
  OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST = 0b00011100 ,
  OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR = 0b00011101 ,
  OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT = 0b00011110 ,
  OSMO_GSUP_MSGT_PROC_SS_REQUEST = 0b00100000 ,
  OSMO_GSUP_MSGT_PROC_SS_ERROR = 0b00100001 ,
  OSMO_GSUP_MSGT_PROC_SS_RESULT = 0b00100010 ,
  OSMO_GSUP_MSGT_MO_FORWARD_SM_REQUEST = 0b00100100 ,
  OSMO_GSUP_MSGT_MO_FORWARD_SM_ERROR = 0b00100101 ,
  OSMO_GSUP_MSGT_MO_FORWARD_SM_RESULT = 0b00100110 ,
  OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST = 0b00101000 ,
  OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR = 0b00101001 ,
  OSMO_GSUP_MSGT_MT_FORWARD_SM_RESULT = 0b00101010 ,
  OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST = 0b00101100 ,
  OSMO_GSUP_MSGT_READY_FOR_SM_ERROR = 0b00101101 ,
  OSMO_GSUP_MSGT_READY_FOR_SM_RESULT = 0b00101110 ,
  OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST = 0b00110000 ,
  OSMO_GSUP_MSGT_CHECK_IMEI_ERROR = 0b00110001 ,
  OSMO_GSUP_MSGT_CHECK_IMEI_RESULT = 0b00110010 ,
  OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_REQUEST = 0b00110100 ,
  OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_ERROR = 0b00110101 ,
  OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_RESULT = 0b00110110 ,
  OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_REQUEST = 0b00111000 ,
  OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_ERROR = 0b00111001 ,
  OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_RESULT = 0b00111010 ,
  OSMO_GSUP_MSGT_E_SEND_END_SIGNAL_REQUEST = 0b00111100 ,
  OSMO_GSUP_MSGT_E_SEND_END_SIGNAL_ERROR = 0b00111101 ,
  OSMO_GSUP_MSGT_E_SEND_END_SIGNAL_RESULT = 0b00111110 ,
  OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_REQUEST = 0b01000000 ,
  OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_REQUEST = 0b01000100 ,
  OSMO_GSUP_MSGT_E_CLOSE = 0b01000111 ,
  OSMO_GSUP_MSGT_E_ABORT = 0b01001011 ,
  OSMO_GSUP_MSGT_ROUTING_ERROR = 0b01001110 ,
  OSMO_GSUP_MSGT_EPDG_TUNNEL_REQUEST = 0b01010000 ,
  OSMO_GSUP_MSGT_EPDG_TUNNEL_ERROR = 0b01010001 ,
  OSMO_GSUP_MSGT_EPDG_TUNNEL_RESULT = 0b01010010
}
 GSUP message type Make sure that new messages follow this scheme: More...
 
enum  osmo_gsup_cancel_type {
  OSMO_GSUP_CANCEL_TYPE_UPDATE = 1 ,
  OSMO_GSUP_CANCEL_TYPE_WITHDRAW = 2
}
 
enum  osmo_gsup_cn_domain {
  OSMO_GSUP_CN_DOMAIN_PS = 1 ,
  OSMO_GSUP_CN_DOMAIN_CS = 2
}
 
enum  osmo_gsup_imei_result {
  OSMO_GSUP_IMEI_RESULT_ACK = 1 ,
  OSMO_GSUP_IMEI_RESULT_NACK = 2
}
 
enum  osmo_gsup_access_network_protocol {
  OSMO_GSUP_ACCESS_NETWORK_PROTOCOL_TS3G_48006 = 1 ,
  OSMO_GSUP_ACCESS_NETWORK_PROTOCOL_TS3G_25413 = 2
}
 
enum  osmo_gsup_session_state {
  OSMO_GSUP_SESSION_STATE_NONE = 0x00 ,
  OSMO_GSUP_SESSION_STATE_BEGIN = 0x01 ,
  OSMO_GSUP_SESSION_STATE_CONTINUE = 0x02 ,
  OSMO_GSUP_SESSION_STATE_END = 0x03
}
 TCAP-like session state. More...
 
enum  osmo_gsup_message_class {
  OSMO_GSUP_MESSAGE_CLASS_UNSET = 0 ,
  OSMO_GSUP_MESSAGE_CLASS_SUBSCRIBER_MANAGEMENT = 1 ,
  OSMO_GSUP_MESSAGE_CLASS_SMS = 2 ,
  OSMO_GSUP_MESSAGE_CLASS_USSD = 3 ,
  OSMO_GSUP_MESSAGE_CLASS_INTER_MSC = 4 ,
  OSMO_GSUP_MESSAGE_CLASS_IPSEC_EPDG = 5 ,
  OSMO_GSUP_MESSAGE_CLASS_ARRAYSIZE
}
 
enum  osmo_gsup_sms_sm_rp_oda_t {
  OSMO_GSUP_SMS_SM_RP_ODA_NONE = 0x00 ,
  OSMO_GSUP_SMS_SM_RP_ODA_IMSI = 0x01 ,
  OSMO_GSUP_SMS_SM_RP_ODA_MSISDN = 0x02 ,
  OSMO_GSUP_SMS_SM_RP_ODA_SMSC_ADDR = 0x03 ,
  OSMO_GSUP_SMS_SM_RP_ODA_NULL = 0xff
}
 Possible identity types for SM-RP-{OA|DA}. More...
 
enum  osmo_gsup_sms_sm_alert_rsn_t {
  OSMO_GSUP_SMS_SM_ALERT_RSN_NONE = 0x00 ,
  OSMO_GSUP_SMS_SM_ALERT_RSN_MS_PRESENT = 0x01 ,
  OSMO_GSUP_SMS_SM_ALERT_RSN_MEM_AVAIL = 0x02
}
 Alert reason values, see 7.6.8.8. More...
 

Functions

static const char * osmo_gsup_message_type_name (enum osmo_gsup_message_type val)
 
static const char * osmo_gsup_session_state_name (enum osmo_gsup_session_state val)
 
static const char * osmo_gsup_message_class_name (enum osmo_gsup_message_class val)
 
int osmo_gsup_decode (const uint8_t *const_data, size_t data_len, struct osmo_gsup_message *gsup_msg)
 Decode (parse) a GSUP message. More...
 
int osmo_gsup_encode (struct msgb *msg, const struct osmo_gsup_message *gsup_msg)
 Encode a GSUP message. More...
 
int osmo_gsup_get_err_msg_type (enum osmo_gsup_message_type type_in)
 return the error message type corresponding to type_in. More...
 
int osmo_gsup_sms_encode_sm_rp_da (struct msgb *msg, const struct osmo_gsup_message *gsup_msg)
 Encode SM-RP-DA IE (see 7.6.8.1), Destination Address. More...
 
int osmo_gsup_sms_decode_sm_rp_da (struct osmo_gsup_message *gsup_msg, uint8_t *data, size_t data_len)
 Decode SM-RP-DA IE (see 7.6.8.1), Destination Address. More...
 
int osmo_gsup_sms_encode_sm_rp_oa (struct msgb *msg, const struct osmo_gsup_message *gsup_msg)
 Encode SM-RP-OA IE (see 7.6.8.2), Originating Address. More...
 
int osmo_gsup_sms_decode_sm_rp_oa (struct osmo_gsup_message *gsup_msg, uint8_t *data, size_t data_len)
 Decode SM-RP-OA IE (see 7.6.8.2), Originating Address. More...
 
static int decode_pdp_address (const uint8_t *data, size_t data_len, struct osmo_gsup_pdp_info *pdp_info)
 
static int decode_pdp_info (uint8_t *data, size_t data_len, struct osmo_gsup_pdp_info *pdp_info)
 
static int decode_auth_info (uint8_t *data, size_t data_len, struct osmo_auth_vector *auth_vector)
 
int osmo_gsup_decode_an_apdu (struct osmo_gsup_message *gsup_msg, const uint8_t *data, size_t data_len)
 Decode AN-apdu (see 3GPP TS 29.002 7.6.9.1). More...
 
static void encode_pdp_info (struct msgb *msg, enum osmo_gsup_iei iei, const struct osmo_gsup_pdp_info *pdp_info)
 
static void encode_auth_info (struct msgb *msg, enum osmo_gsup_iei iei, const struct osmo_auth_vector *auth_vector)
 
int osmo_gsup_encode_an_apdu (struct msgb *msg, const struct osmo_gsup_message *gsup_msg)
 Encode AN-apdu (see 3GPP TS 29.002 7.6.9.1). More...
 

Variables

const struct value_string osmo_gsup_message_type_names []
 
const struct value_string osmo_gsup_session_state_names []
 
const struct value_string osmo_gsup_message_class_names []
 
const struct value_string osmo_gsup_message_type_names []
 
const struct value_string osmo_gsup_session_state_names []
 
const struct value_string osmo_gsup_message_class_names []
 

Detailed Description

The Generic Subscriber Update Protocol (GSUP) is an Osmocom-specific non-standard protocol replacing MAP as the protocol between MSC/VLR/SGSN and HLR in a 3GPP cellular communications network.

This header defines SMS (Short Message Service) extensions for Osmocom GSUP (Generic Subscriber Update Protocol).

It was designed around the same transactions and architecture as the MAP messages/operations, but without the complexity of TCAP and MAP, and without the need for ASN.1 encoding.

The purpose is to keep protocol complexity out of OsmoSGSN and OsmoMSC, while providing a clean path to an external GSUP to MAP translator.

The scope of this module is defined by 3GPP TS 29.002, section 12.

Macro Definition Documentation

◆ OSMO_GSUP_IS_MSGT_ERROR

#define OSMO_GSUP_IS_MSGT_ERROR (   msgt)    (((msgt) & 0b00000011) == 0b01)

◆ OSMO_GSUP_IS_MSGT_REQUEST

#define OSMO_GSUP_IS_MSGT_REQUEST (   msgt)    (((msgt) & 0b00000011) == 0b00)

◆ OSMO_GSUP_IS_MSGT_RESULT

#define OSMO_GSUP_IS_MSGT_RESULT (   msgt)    (((msgt) & 0b00000011) == 0b10)

◆ OSMO_GSUP_MAX_CALLED_PARTY_BCD_LEN

#define OSMO_GSUP_MAX_CALLED_PARTY_BCD_LEN   43 /* TS 24.008 10.5.4.7 */

◆ OSMO_GSUP_MAX_MSISDN_LEN

#define OSMO_GSUP_MAX_MSISDN_LEN   9

Maximum number of octets encoding MSISDN in BCD format.

◆ OSMO_GSUP_MAX_NUM_AUTH_INFO

#define OSMO_GSUP_MAX_NUM_AUTH_INFO   5

Maximum number of auth info inside osmo_gsup_message.

◆ OSMO_GSUP_MAX_NUM_PDP_INFO

#define OSMO_GSUP_MAX_NUM_PDP_INFO   10 /* GSM 09.02 limits this to 50 */

Maximum nubmer of PDP inside osmo_gsup_message.

◆ OSMO_GSUP_MAX_PCO_LEN

#define OSMO_GSUP_MAX_PCO_LEN   251

◆ OSMO_GSUP_MSGT_E_ROUTING_ERROR

#define OSMO_GSUP_MSGT_E_ROUTING_ERROR   OSMO_GSUP_MSGT_ROUTING_ERROR

◆ OSMO_GSUP_PORT

#define OSMO_GSUP_PORT   4222

◆ OSMO_GSUP_TO_MSGT_ERROR

#define OSMO_GSUP_TO_MSGT_ERROR (   msgt)    (((msgt) & 0b11111100) | 0b01)

◆ OSMO_GSUP_TO_MSGT_REQUEST

#define OSMO_GSUP_TO_MSGT_REQUEST (   msgt)    (((msgt) & 0b11111100))

◆ OSMO_GSUP_TO_MSGT_RESULT

#define OSMO_GSUP_TO_MSGT_RESULT (   msgt)    (((msgt) & 0b11111100) | 0b10)

Enumeration Type Documentation

◆ osmo_gsup_access_network_protocol

Enumerator
OSMO_GSUP_ACCESS_NETWORK_PROTOCOL_TS3G_48006 
OSMO_GSUP_ACCESS_NETWORK_PROTOCOL_TS3G_25413 

◆ osmo_gsup_cancel_type

Enumerator
OSMO_GSUP_CANCEL_TYPE_UPDATE 
OSMO_GSUP_CANCEL_TYPE_WITHDRAW 

◆ osmo_gsup_cn_domain

Enumerator
OSMO_GSUP_CN_DOMAIN_PS 
OSMO_GSUP_CN_DOMAIN_CS 

◆ osmo_gsup_iei

Information Element Identifiers for GSUP IEs.

Enumerator
OSMO_GSUP_IMSI_IE 
OSMO_GSUP_CAUSE_IE 
OSMO_GSUP_AUTH_TUPLE_IE 
OSMO_GSUP_PDP_INFO_COMPL_IE 
OSMO_GSUP_PDP_INFO_IE 
OSMO_GSUP_CANCEL_TYPE_IE 
OSMO_GSUP_FREEZE_PTMSI_IE 
OSMO_GSUP_MSISDN_IE 
OSMO_GSUP_HLR_NUMBER_IE 
OSMO_GSUP_MESSAGE_CLASS_IE 
OSMO_GSUP_PDP_CONTEXT_ID_IE 
OSMO_GSUP_PDP_ADDRESS_IE 
OSMO_GSUP_ACCESS_POINT_NAME_IE 
OSMO_GSUP_PDP_QOS_IE 
OSMO_GSUP_CHARG_CHAR_IE 
OSMO_GSUP_PCO_IE 
OSMO_GSUP_RAND_IE 
OSMO_GSUP_SRES_IE 
OSMO_GSUP_KC_IE 
OSMO_GSUP_IK_IE 
OSMO_GSUP_CK_IE 
OSMO_GSUP_AUTN_IE 
OSMO_GSUP_AUTS_IE 
OSMO_GSUP_RES_IE 
OSMO_GSUP_CN_DOMAIN_IE 
OSMO_GSUP_SUPPORTED_RAT_TYPES_IE 
OSMO_GSUP_CURRENT_RAT_TYPE_IE 
OSMO_GSUP_SESSION_ID_IE 
OSMO_GSUP_SESSION_STATE_IE 
OSMO_GSUP_SS_INFO_IE 

Supplementary Services payload.

OSMO_GSUP_SM_RP_MR_IE 
OSMO_GSUP_SM_RP_DA_IE 
OSMO_GSUP_SM_RP_OA_IE 
OSMO_GSUP_SM_RP_UI_IE 
OSMO_GSUP_SM_RP_CAUSE_IE 
OSMO_GSUP_SM_RP_MMS_IE 
OSMO_GSUP_SM_ALERT_RSN_IE 
OSMO_GSUP_IMEI_IE 
OSMO_GSUP_IMEI_RESULT_IE 
OSMO_GSUP_NUM_VECTORS_REQ_IE 
OSMO_GSUP_SOURCE_NAME_IE 
OSMO_GSUP_DESTINATION_NAME_IE 
OSMO_GSUP_AN_APDU_IE 
OSMO_GSUP_CAUSE_RR_IE 
OSMO_GSUP_CAUSE_BSSAP_IE 
OSMO_GSUP_CAUSE_SM_IE 
_OSMO_GSUP_IEI_END_MARKER 

◆ osmo_gsup_imei_result

Enumerator
OSMO_GSUP_IMEI_RESULT_ACK 
OSMO_GSUP_IMEI_RESULT_NACK 

◆ osmo_gsup_message_class

Enumerator
OSMO_GSUP_MESSAGE_CLASS_UNSET 
OSMO_GSUP_MESSAGE_CLASS_SUBSCRIBER_MANAGEMENT 
OSMO_GSUP_MESSAGE_CLASS_SMS 
OSMO_GSUP_MESSAGE_CLASS_USSD 
OSMO_GSUP_MESSAGE_CLASS_INTER_MSC 
OSMO_GSUP_MESSAGE_CLASS_IPSEC_EPDG 
OSMO_GSUP_MESSAGE_CLASS_ARRAYSIZE 

◆ osmo_gsup_message_type

GSUP message type Make sure that new messages follow this scheme:

-------------------------—. | Ending Bits | Category | |-------------------------—| | 00 | Request | | 01 | Error | | 10 | Result | | 11 | Other | '-------------------------—' Request, Error and Result messages must only differ in these last two bits.

Enumerator
OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST 
OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR 
OSMO_GSUP_MSGT_UPDATE_LOCATION_RESULT 
OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST 
OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR 
OSMO_GSUP_MSGT_SEND_AUTH_INFO_RESULT 
OSMO_GSUP_MSGT_AUTH_FAIL_REPORT 
OSMO_GSUP_MSGT_PURGE_MS_REQUEST 
OSMO_GSUP_MSGT_PURGE_MS_ERROR 
OSMO_GSUP_MSGT_PURGE_MS_RESULT 
OSMO_GSUP_MSGT_INSERT_DATA_REQUEST 
OSMO_GSUP_MSGT_INSERT_DATA_ERROR 
OSMO_GSUP_MSGT_INSERT_DATA_RESULT 
OSMO_GSUP_MSGT_DELETE_DATA_REQUEST 
OSMO_GSUP_MSGT_DELETE_DATA_ERROR 
OSMO_GSUP_MSGT_DELETE_DATA_RESULT 
OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST 
OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR 
OSMO_GSUP_MSGT_LOCATION_CANCEL_RESULT 
OSMO_GSUP_MSGT_PROC_SS_REQUEST 
OSMO_GSUP_MSGT_PROC_SS_ERROR 
OSMO_GSUP_MSGT_PROC_SS_RESULT 
OSMO_GSUP_MSGT_MO_FORWARD_SM_REQUEST 
OSMO_GSUP_MSGT_MO_FORWARD_SM_ERROR 
OSMO_GSUP_MSGT_MO_FORWARD_SM_RESULT 
OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST 
OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR 
OSMO_GSUP_MSGT_MT_FORWARD_SM_RESULT 
OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST 
OSMO_GSUP_MSGT_READY_FOR_SM_ERROR 
OSMO_GSUP_MSGT_READY_FOR_SM_RESULT 
OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST 
OSMO_GSUP_MSGT_CHECK_IMEI_ERROR 
OSMO_GSUP_MSGT_CHECK_IMEI_RESULT 
OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_REQUEST 
OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_ERROR 
OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_RESULT 
OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_REQUEST 
OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_ERROR 
OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_RESULT 
OSMO_GSUP_MSGT_E_SEND_END_SIGNAL_REQUEST 
OSMO_GSUP_MSGT_E_SEND_END_SIGNAL_ERROR 
OSMO_GSUP_MSGT_E_SEND_END_SIGNAL_RESULT 
OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_REQUEST 
OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_REQUEST 
OSMO_GSUP_MSGT_E_CLOSE 
OSMO_GSUP_MSGT_E_ABORT 
OSMO_GSUP_MSGT_ROUTING_ERROR 
OSMO_GSUP_MSGT_EPDG_TUNNEL_REQUEST 
OSMO_GSUP_MSGT_EPDG_TUNNEL_ERROR 
OSMO_GSUP_MSGT_EPDG_TUNNEL_RESULT 

◆ osmo_gsup_session_state

TCAP-like session state.

Enumerator
OSMO_GSUP_SESSION_STATE_NONE 

Undefined session state.

OSMO_GSUP_SESSION_STATE_BEGIN 

Initiation of a new session.

OSMO_GSUP_SESSION_STATE_CONTINUE 

Communication of an existing session.

OSMO_GSUP_SESSION_STATE_END 

Indication of the session end.

◆ osmo_gsup_sms_sm_alert_rsn_t

Alert reason values, see 7.6.8.8.

Enumerator
OSMO_GSUP_SMS_SM_ALERT_RSN_NONE 
OSMO_GSUP_SMS_SM_ALERT_RSN_MS_PRESENT 
OSMO_GSUP_SMS_SM_ALERT_RSN_MEM_AVAIL 

◆ osmo_gsup_sms_sm_rp_oda_t

Possible identity types for SM-RP-{OA|DA}.

Enumerator
OSMO_GSUP_SMS_SM_RP_ODA_NONE 
OSMO_GSUP_SMS_SM_RP_ODA_IMSI 
OSMO_GSUP_SMS_SM_RP_ODA_MSISDN 
OSMO_GSUP_SMS_SM_RP_ODA_SMSC_ADDR 
OSMO_GSUP_SMS_SM_RP_ODA_NULL 

Special value for noSM-RP-DA and noSM-RP-OA.

Function Documentation

◆ decode_auth_info()

◆ decode_pdp_address()

◆ decode_pdp_info()

◆ encode_auth_info()

◆ encode_pdp_info()

◆ osmo_gsup_decode()

int osmo_gsup_decode ( const uint8_t *  const_data,
size_t  data_len,
struct osmo_gsup_message gsup_msg 
)

Decode (parse) a GSUP message.

Parameters
[in]const_datainput data to be parsed
[in]data_lenlength of input (const_data)
[out]gsup_msgcallee-allocated output data structure
Returns
0 on success; negative otherwise

References ARRAY_SIZE, osmo_gsup_message::auth_vectors, osmo_gsup_message::auts, osmo_gsup_message::cancel_type, osmo_gsup_message::cause, osmo_gsup_message::cause_bssap, osmo_gsup_message::cause_bssap_set, osmo_gsup_message::cause_rr, osmo_gsup_message::cause_rr_set, osmo_gsup_message::cause_sm, osmo_gsup_message::cn_domain, osmo_gsup_pdp_info::context_id, osmo_gsup_message::current_rat_type, data, decode_auth_info(), decode_pdp_info(), osmo_gsup_message::destination_name, osmo_gsup_message::destination_name_len, DLGSUP, osmo_gsup_message::freeze_ptmsi, GMM_CAUSE_COND_IE_ERR, GMM_CAUSE_INV_MAND_INFO, GMM_CAUSE_PROTO_ERR_UNSPEC, gsm48_decode_bcd_number2(), osmo_gsup_pdp_info::have_info, osmo_gsup_message::hlr_enc, osmo_gsup_message::hlr_enc_len, iei, osmo_gsup_message::imei_enc, osmo_gsup_message::imei_enc_len, osmo_gsup_message::imei_result, osmo_gsup_message::imsi, LOGL_ERROR, LOGL_NOTICE, LOGP, osmo_gsup_message::message_class, osmo_gsup_message::message_type, osmo_gsup_message::msisdn_enc, osmo_gsup_message::msisdn_enc_len, osmo_gsup_message::num_auth_vectors, osmo_gsup_message::num_pdp_infos, osmo_decode_big_endian(), OSMO_GSUP_ACCESS_POINT_NAME_IE, OSMO_GSUP_AN_APDU_IE, OSMO_GSUP_AUTH_TUPLE_IE, OSMO_GSUP_AUTS_IE, OSMO_GSUP_CANCEL_TYPE_IE, OSMO_GSUP_CAUSE_BSSAP_IE, OSMO_GSUP_CAUSE_IE, OSMO_GSUP_CAUSE_RR_IE, OSMO_GSUP_CAUSE_SM_IE, OSMO_GSUP_CHARG_CHAR_IE, OSMO_GSUP_CN_DOMAIN_IE, OSMO_GSUP_CURRENT_RAT_TYPE_IE, osmo_gsup_decode_an_apdu(), OSMO_GSUP_DESTINATION_NAME_IE, OSMO_GSUP_FREEZE_PTMSI_IE, OSMO_GSUP_HLR_NUMBER_IE, OSMO_GSUP_IMEI_IE, OSMO_GSUP_IMEI_RESULT_IE, OSMO_GSUP_IMSI_IE, OSMO_GSUP_KC_IE, OSMO_GSUP_MAX_NUM_AUTH_INFO, OSMO_GSUP_MAX_NUM_PDP_INFO, OSMO_GSUP_MESSAGE_CLASS_IE, OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST, OSMO_GSUP_MSISDN_IE, OSMO_GSUP_NUM_VECTORS_REQ_IE, OSMO_GSUP_PCO_IE, OSMO_GSUP_PDP_ADDRESS_IE, OSMO_GSUP_PDP_CONTEXT_ID_IE, OSMO_GSUP_PDP_INFO_COMPL_IE, OSMO_GSUP_PDP_INFO_IE, OSMO_GSUP_RAND_IE, OSMO_GSUP_SESSION_ID_IE, OSMO_GSUP_SESSION_STATE_IE, OSMO_GSUP_SM_ALERT_RSN_IE, OSMO_GSUP_SM_RP_CAUSE_IE, OSMO_GSUP_SM_RP_DA_IE, OSMO_GSUP_SM_RP_MMS_IE, OSMO_GSUP_SM_RP_MR_IE, OSMO_GSUP_SM_RP_OA_IE, OSMO_GSUP_SM_RP_UI_IE, osmo_gsup_sms_decode_sm_rp_da(), osmo_gsup_sms_decode_sm_rp_oa(), OSMO_GSUP_SOURCE_NAME_IE, OSMO_GSUP_SRES_IE, OSMO_GSUP_SS_INFO_IE, OSMO_GSUP_SUPPORTED_RAT_TYPES_IE, osmo_match_shift_tlv(), osmo_shift_tlv(), osmo_shift_v_fixed(), osmo_gsup_message::pco, osmo_gsup_message::pco_len, osmo_gsup_message::pdp_charg_enc, osmo_gsup_message::pdp_charg_enc_len, osmo_gsup_message::pdp_info_compl, osmo_gsup_message::pdp_infos, osmo_gsup_message::rand, osmo_gsup_message::session_id, osmo_gsup_message::session_state, osmo_gsup_message::sm_alert_rsn, osmo_gsup_message::sm_rp_cause, osmo_gsup_message::sm_rp_mms, osmo_gsup_message::sm_rp_mr, osmo_gsup_message::sm_rp_ui, osmo_gsup_message::sm_rp_ui_len, osmo_gsup_message::source_name, osmo_gsup_message::source_name_len, osmo_gsup_message::ss_info, osmo_gsup_message::ss_info_len, osmo_gsup_message::supported_rat_types, and osmo_gsup_message::supported_rat_types_len.

◆ osmo_gsup_decode_an_apdu()

int osmo_gsup_decode_an_apdu ( struct osmo_gsup_message gsup_msg,
const uint8_t *  data,
size_t  data_len 
)

Decode AN-apdu (see 3GPP TS 29.002 7.6.9.1).

Parameters
[out]gsup_msgabstract GSUP message structure
[in]datapointer to the raw IE payload
[in]data_lenlength of IE pointed by data
Returns
0 in case of success, negative in case of error

References osmo_gsup_an_apdu::access_network_proto, osmo_gsup_message::an_apdu, data, osmo_gsup_an_apdu::data, osmo_gsup_an_apdu::data_len, DLGSUP, LOGL_ERROR, and LOGP.

Referenced by osmo_gsup_decode().

◆ osmo_gsup_encode()

int osmo_gsup_encode ( struct msgb msg,
const struct osmo_gsup_message gsup_msg 
)

Encode a GSUP message.

Parameters
[out]msgmessage buffer to which encoded message is written
[in]gsup_msgosmo_gsup_message data to be encoded
Returns
0 on success; negative otherwise

References osmo_gsup_an_apdu::access_network_proto, osmo_gsup_message::an_apdu, osmo_gsup_message::auth_vectors, osmo_gsup_message::auts, osmo_gsup_message::cancel_type, osmo_gsup_message::cause, osmo_gsup_message::cause_bssap, osmo_gsup_message::cause_bssap_set, osmo_gsup_message::cause_rr, osmo_gsup_message::cause_rr_set, osmo_gsup_message::cause_sm, osmo_gsup_message::cn_domain, osmo_gsup_pdp_info::context_id, osmo_gsup_message::current_rat_type, osmo_gsup_an_apdu::data_len, osmo_gsup_message::destination_name, osmo_gsup_message::destination_name_len, DLGSUP, encode_auth_info(), encode_pdp_info(), osmo_gsup_message::freeze_ptmsi, gsm48_encode_bcd_number(), GSM48_MI_SIZE, osmo_gsup_pdp_info::have_info, osmo_gsup_message::hlr_enc, osmo_gsup_message::hlr_enc_len, osmo_gsup_message::imei_enc, osmo_gsup_message::imei_enc_len, osmo_gsup_message::imei_result, osmo_gsup_message::imsi, len, LOGL_ERROR, LOGP, osmo_gsup_message::message_class, osmo_gsup_message::message_type, msg, msgb_tl_put(), msgb_tlv_put(), msgb_v_put(), osmo_gsup_message::msisdn_enc, osmo_gsup_message::msisdn_enc_len, osmo_gsup_message::num_auth_vectors, osmo_gsup_message::num_pdp_infos, osmo_encode_big_endian(), OSMO_GSUP_AUTH_TUPLE_IE, OSMO_GSUP_AUTS_IE, OSMO_GSUP_CANCEL_TYPE_IE, OSMO_GSUP_CAUSE_BSSAP_IE, OSMO_GSUP_CAUSE_IE, OSMO_GSUP_CAUSE_RR_IE, OSMO_GSUP_CAUSE_SM_IE, OSMO_GSUP_CHARG_CHAR_IE, OSMO_GSUP_CN_DOMAIN_IE, OSMO_GSUP_CURRENT_RAT_TYPE_IE, OSMO_GSUP_DESTINATION_NAME_IE, osmo_gsup_encode_an_apdu(), OSMO_GSUP_FREEZE_PTMSI_IE, OSMO_GSUP_HLR_NUMBER_IE, OSMO_GSUP_IMEI_IE, OSMO_GSUP_IMEI_RESULT_IE, OSMO_GSUP_IMSI_IE, OSMO_GSUP_MAX_PCO_LEN, OSMO_GSUP_MESSAGE_CLASS_IE, OSMO_GSUP_MESSAGE_CLASS_UNSET, OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST, OSMO_GSUP_MSISDN_IE, OSMO_GSUP_NUM_VECTORS_REQ_IE, OSMO_GSUP_PCO_IE, OSMO_GSUP_PDP_CONTEXT_ID_IE, OSMO_GSUP_PDP_INFO_COMPL_IE, OSMO_GSUP_PDP_INFO_IE, OSMO_GSUP_RAND_IE, OSMO_GSUP_SESSION_ID_IE, OSMO_GSUP_SESSION_STATE_IE, OSMO_GSUP_SM_ALERT_RSN_IE, OSMO_GSUP_SM_RP_CAUSE_IE, OSMO_GSUP_SM_RP_MMS_IE, OSMO_GSUP_SM_RP_MR_IE, OSMO_GSUP_SM_RP_UI_IE, osmo_gsup_sms_encode_sm_rp_da(), osmo_gsup_sms_encode_sm_rp_oa(), OSMO_GSUP_SOURCE_NAME_IE, OSMO_GSUP_SS_INFO_IE, OSMO_GSUP_SUPPORTED_RAT_TYPES_IE, OSMO_RAT_COUNT, osmo_rat_type_name(), OSMO_RAT_UNKNOWN, osmo_gsup_message::pco, osmo_gsup_message::pco_len, osmo_gsup_message::pdp_charg_enc, osmo_gsup_message::pdp_charg_enc_len, osmo_gsup_message::pdp_info_compl, osmo_gsup_message::pdp_infos, osmo_gsup_message::rand, osmo_gsup_message::session_id, osmo_gsup_message::session_state, osmo_gsup_message::sm_alert_rsn, osmo_gsup_message::sm_rp_cause, osmo_gsup_message::sm_rp_da_type, osmo_gsup_message::sm_rp_mms, osmo_gsup_message::sm_rp_mr, osmo_gsup_message::sm_rp_oa_type, osmo_gsup_message::sm_rp_ui, osmo_gsup_message::sm_rp_ui_len, osmo_gsup_message::source_name, osmo_gsup_message::source_name_len, osmo_gsup_message::ss_info, osmo_gsup_message::ss_info_len, osmo_gsup_message::supported_rat_types, and osmo_gsup_message::supported_rat_types_len.

◆ osmo_gsup_encode_an_apdu()

int osmo_gsup_encode_an_apdu ( struct msgb msg,
const struct osmo_gsup_message gsup_msg 
)

Encode AN-apdu (see 3GPP TS 29.002 7.6.9.1).

Parameters
[out]msgtarget message buffer (caller-allocated)
[in]gsup_msgabstract GSUP message structure
Returns
0 in case of success, negative in case of error

References osmo_gsup_an_apdu::access_network_proto, osmo_gsup_message::an_apdu, osmo_gsup_an_apdu::data, osmo_gsup_an_apdu::data_len, DLGSUP, LOGL_ERROR, LOGP, msg, msgb_put(), msgb_tailroom(), msgb_tv_put(), msgb_v_put(), and OSMO_GSUP_AN_APDU_IE.

Referenced by osmo_gsup_encode().

◆ osmo_gsup_get_err_msg_type()

int osmo_gsup_get_err_msg_type ( enum osmo_gsup_message_type  type_in)

return the error message type corresponding to type_in.

Deprecated, use OSMO_GSUP_TO_MSGT_ERROR() instead.

References OSMO_GSUP_TO_MSGT_ERROR.

◆ osmo_gsup_message_class_name()

static const char * osmo_gsup_message_class_name ( enum osmo_gsup_message_class  val)
inlinestatic

◆ osmo_gsup_message_type_name()

static const char * osmo_gsup_message_type_name ( enum osmo_gsup_message_type  val)
inlinestatic

◆ osmo_gsup_session_state_name()

static const char * osmo_gsup_session_state_name ( enum osmo_gsup_session_state  val)
inlinestatic

◆ osmo_gsup_sms_decode_sm_rp_da()

int osmo_gsup_sms_decode_sm_rp_da ( struct osmo_gsup_message gsup_msg,
uint8_t *  data,
size_t  data_len 
)

Decode SM-RP-DA IE (see 7.6.8.1), Destination Address.

Parameters
[out]gsup_msgabstract GSUP message structure
[in]datapointer to the raw IE payload
[in]data_lenlength of IE pointed by data
Returns
0 in case of success, negative in case of error

References data, DLGSUP, LOGL_ERROR, LOGP, OSMO_GSUP_SMS_SM_RP_ODA_IMSI, OSMO_GSUP_SMS_SM_RP_ODA_MSISDN, OSMO_GSUP_SMS_SM_RP_ODA_NONE, OSMO_GSUP_SMS_SM_RP_ODA_NULL, OSMO_GSUP_SMS_SM_RP_ODA_SMSC_ADDR, osmo_gsup_message::sm_rp_da, osmo_gsup_message::sm_rp_da_len, and osmo_gsup_message::sm_rp_da_type.

Referenced by osmo_gsup_decode().

◆ osmo_gsup_sms_decode_sm_rp_oa()

int osmo_gsup_sms_decode_sm_rp_oa ( struct osmo_gsup_message gsup_msg,
uint8_t *  data,
size_t  data_len 
)

Decode SM-RP-OA IE (see 7.6.8.2), Originating Address.

Parameters
[out]gsup_msgabstract GSUP message structure
[in]datapointer to the raw IE payload
[in]data_lenlength of IE pointed by data
Returns
0 in case of success, negative in case of error

References data, DLGSUP, LOGL_ERROR, LOGP, OSMO_GSUP_SMS_SM_RP_ODA_IMSI, OSMO_GSUP_SMS_SM_RP_ODA_MSISDN, OSMO_GSUP_SMS_SM_RP_ODA_NONE, OSMO_GSUP_SMS_SM_RP_ODA_NULL, OSMO_GSUP_SMS_SM_RP_ODA_SMSC_ADDR, osmo_gsup_message::sm_rp_oa, osmo_gsup_message::sm_rp_oa_len, and osmo_gsup_message::sm_rp_oa_type.

Referenced by osmo_gsup_decode().

◆ osmo_gsup_sms_encode_sm_rp_da()

int osmo_gsup_sms_encode_sm_rp_da ( struct msgb msg,
const struct osmo_gsup_message gsup_msg 
)

Encode SM-RP-DA IE (see 7.6.8.1), Destination Address.

Parameters
[out]msgtarget message buffer (caller-allocated)
[in]gsup_msgabstract GSUP message structure
Returns
0 in case of success, negative in case of error

References DLGSUP, LOGL_ERROR, LOGP, msg, msgb_put(), msgb_tv_put(), msgb_v_put(), OSMO_GSUP_SM_RP_DA_IE, OSMO_GSUP_SMS_SM_RP_ODA_IMSI, OSMO_GSUP_SMS_SM_RP_ODA_MSISDN, OSMO_GSUP_SMS_SM_RP_ODA_NONE, OSMO_GSUP_SMS_SM_RP_ODA_NULL, OSMO_GSUP_SMS_SM_RP_ODA_SMSC_ADDR, osmo_gsup_message::sm_rp_da, osmo_gsup_message::sm_rp_da_len, and osmo_gsup_message::sm_rp_da_type.

Referenced by osmo_gsup_encode().

◆ osmo_gsup_sms_encode_sm_rp_oa()

int osmo_gsup_sms_encode_sm_rp_oa ( struct msgb msg,
const struct osmo_gsup_message gsup_msg 
)

Encode SM-RP-OA IE (see 7.6.8.2), Originating Address.

Parameters
[out]msgtarget message buffer (caller-allocated)
[in]gsup_msgabstract GSUP message structure
Returns
0 in case of success, negative in case of error

References DLGSUP, LOGL_ERROR, LOGP, msg, msgb_put(), msgb_tv_put(), msgb_v_put(), OSMO_GSUP_SM_RP_OA_IE, OSMO_GSUP_SMS_SM_RP_ODA_MSISDN, OSMO_GSUP_SMS_SM_RP_ODA_NONE, OSMO_GSUP_SMS_SM_RP_ODA_NULL, OSMO_GSUP_SMS_SM_RP_ODA_SMSC_ADDR, osmo_gsup_message::sm_rp_oa, osmo_gsup_message::sm_rp_oa_len, and osmo_gsup_message::sm_rp_oa_type.

Referenced by osmo_gsup_encode().

Variable Documentation

◆ osmo_gsup_message_class_names [1/2]

const struct value_string osmo_gsup_message_class_names[]
extern

◆ osmo_gsup_message_class_names [2/2]

const struct value_string osmo_gsup_message_class_names[]
Initial value:
= {
{ OSMO_GSUP_MESSAGE_CLASS_SUBSCRIBER_MANAGEMENT, "Subscriber-Management" },
{}
}
@ OSMO_GSUP_MESSAGE_CLASS_SMS
Definition: gsup.h:302
@ OSMO_GSUP_MESSAGE_CLASS_UNSET
Definition: gsup.h:300
@ OSMO_GSUP_MESSAGE_CLASS_IPSEC_EPDG
Definition: gsup.h:305
@ OSMO_GSUP_MESSAGE_CLASS_INTER_MSC
Definition: gsup.h:304
@ OSMO_GSUP_MESSAGE_CLASS_USSD
Definition: gsup.h:303
@ OSMO_GSUP_MESSAGE_CLASS_SUBSCRIBER_MANAGEMENT
Definition: gsup.h:301

Referenced by osmo_gsup_message_class_name().

◆ osmo_gsup_message_type_names [1/2]

const struct value_string osmo_gsup_message_type_names[]
extern

◆ osmo_gsup_message_type_names [2/2]

const struct value_string osmo_gsup_message_type_names[]

◆ osmo_gsup_session_state_names [1/2]

const struct value_string osmo_gsup_session_state_names[]
extern

◆ osmo_gsup_session_state_names [2/2]

const struct value_string osmo_gsup_session_state_names[]
Initial value:
= {
{ 0, NULL }
}
@ OSMO_GSUP_SESSION_STATE_NONE
Undefined session state.
Definition: gsup.h:250
@ OSMO_GSUP_SESSION_STATE_CONTINUE
Communication of an existing session.
Definition: gsup.h:254
@ OSMO_GSUP_SESSION_STATE_BEGIN
Initiation of a new session.
Definition: gsup.h:252
@ OSMO_GSUP_SESSION_STATE_END
Indication of the session end.
Definition: gsup.h:256

Referenced by osmo_gsup_session_state_name().