libosmogsm  0.12.0
Osmocom GSM library
Gsm0408

Functions

const char * rr_cause_name (uint8_t cause)
 return string representation of RR Cause value More...
 
const char * osmo_rai_name (const struct gprs_ra_id *rai)
 Return MCC-MNC-LAC-RAC as string, in a static buffer. More...
 
const char * gsm48_cc_state_name (uint8_t state)
 return string representation of CC State More...
 
const char * gsm48_cc_msg_name (uint8_t msgtype)
 return string representation of CC Message Type More...
 
const char * gsm48_rr_msg_name (uint8_t msgtype)
 return string representation of RR Message Type More...
 
const char * gsm48_mi_type_name (uint8_t mi)
 return string representation of Mobile Identity Type More...
 
bool gsm48_hdr_gmm_cipherable (const struct gsm48_hdr *hdr)
 Checks is particular message is cipherable in A/Gb mode according to 3GPP TS 24.008 § 4.7.1.2. More...
 
void gsm48_mcc_mnc_to_bcd (uint8_t *bcd_dst, uint16_t mcc, uint16_t mnc)
 
void gsm48_mcc_mnc_from_bcd (uint8_t *bcd_src, uint16_t *mcc, uint16_t *mnc)
 
void gsm48_generate_lai (struct gsm48_loc_area_id *lai48, uint16_t mcc, uint16_t mnc, uint16_t lac)
 Encode TS 04.08 Location Area Identifier, legacy implementation. More...
 
void gsm48_generate_lai2 (struct gsm48_loc_area_id *lai48, const struct osmo_location_area_id *lai)
 Encode TS 04.08 Location Area Identifier. More...
 
int gsm48_decode_lai (struct gsm48_loc_area_id *lai, uint16_t *mcc, uint16_t *mnc, uint16_t *lac)
 Decode TS 04.08 Location Area Identifier, legacy implementation. More...
 
void gsm48_decode_lai2 (const struct gsm48_loc_area_id *lai, struct osmo_location_area_id *decoded)
 Decode TS 04.08 Location Area Identifier. More...
 
void gsm48_set_dtx (struct gsm48_cell_options *op, enum gsm48_dtx_mode full, enum gsm48_dtx_mode half, bool is_bcch)
 Set DTX mode in Cell Options IE (3GPP TS 44.018) More...
 
int gsm48_generate_mid_from_tmsi (uint8_t *buf, uint32_t tmsi)
 Generate TS 04.08 Mobile ID from TMSI. More...
 
uint8_t gsm48_generate_mid (uint8_t *buf, const char *id, uint8_t mi_type)
 Generate TS 24.008 §10.5.1.4 Mobile ID. More...
 
int gsm48_generate_mid_from_imsi (uint8_t *buf, const char *imsi)
 Generate TS 04.08 Mobile ID from IMSI. More...
 
int gsm48_mi_to_string (char *string, const int str_len, const uint8_t *mi, const int mi_len)
 Convert TS 04.08 Mobile Identity (10.5.1.4) to string. More...
 
void gsm48_parse_ra (struct gprs_ra_id *raid, const uint8_t *buf)
 Parse TS 04.08 Routing Area Identifier. More...
 
void gsm48_encode_ra (struct gsm48_ra_id *out, const struct gprs_ra_id *raid)
 Encode a 3GPP TS 24.008 § 10.5.5.15 Routing area identification. More...
 
int gsm48_construct_ra (uint8_t *buf, const struct gprs_ra_id *raid)
 Encode a TS 04.08 Routing Area Identifier. More...
 
int gsm48_number_of_paging_subchannels (struct gsm48_control_channel_descr *chan_desc)
 Determine number of paging sub-channels. More...
 
const char * gsm48_pdisc_msgtype_name (uint8_t pdisc, uint8_t msg_type)
 Compose a string naming the message type for given protocol. More...
 
int gsm48_decode_bcd_number (char *output, int output_len, const uint8_t *bcd_lv, int h_len)
 decode a 'called/calling/connect party BCD number' as in 10.5.4.7 More...
 
static int asc_to_bcd (const char asc)
 convert a single ASCII character to call-control BCD More...
 
int gsm48_encode_bcd_number (uint8_t *bcd_lv, uint8_t max_len, int h_len, const char *input)
 convert a ASCII phone number to 'called/calling/connect party BCD number' More...
 
int gsm48_decode_bearer_cap (struct gsm_mncc_bearer_cap *bcap, const uint8_t *lv)
 Decode TS 04.08 Bearer Capability IE (10.5.4.5) More...
 
int gsm48_encode_bearer_cap (struct msgb *msg, int lv_only, const struct gsm_mncc_bearer_cap *bcap)
 Encode TS 04.08 Bearer Capability IE (10.5.4.5) More...
 
int gsm48_decode_cccap (struct gsm_mncc_cccap *ccap, const uint8_t *lv)
 Decode TS 04.08 Call Control Capabilities IE (10.5.4.5a) More...
 
int gsm48_encode_cccap (struct msgb *msg, const struct gsm_mncc_cccap *ccap)
 Encodoe TS 04.08 Call Control Capabilities (10.5.4.5a) More...
 
int gsm48_decode_called (struct gsm_mncc_number *called, const uint8_t *lv)
 Decode TS 04.08 Called Party BCD Number IE (10.5.4.7) More...
 
int gsm48_encode_called (struct msgb *msg, const struct gsm_mncc_number *called)
 Encode TS 04.08 Called Party IE (10.5.4.7) More...
 
int gsm48_decode_callerid (struct gsm_mncc_number *callerid, const uint8_t *lv)
 Decode TS 04.08 Caller ID. More...
 
int gsm48_encode_callerid (struct msgb *msg, int ie, int max_len, const struct gsm_mncc_number *callerid)
 Encode TS 04.08 Caller ID IE. More...
 
int gsm48_decode_cause (struct gsm_mncc_cause *cause, const uint8_t *lv)
 Decode TS 04.08 Cause IE (10.5.4.11) More...
 
int gsm48_encode_cause (struct msgb *msg, int lv_only, const struct gsm_mncc_cause *cause)
 Encode TS 04.08 Cause IE (10.5.4.11) More...
 
int gsm48_decode_calling (struct gsm_mncc_number *calling, const uint8_t *lv)
 Decode TS 04.08 Calling Number IE (10.5.4.9) More...
 
int gsm48_encode_calling (struct msgb *msg, const struct gsm_mncc_number *calling)
 Encode TS 04.08 Calling Number IE (10.5.4.9) More...
 
int gsm48_decode_connected (struct gsm_mncc_number *connected, const uint8_t *lv)
 Decode TS 04.08 Connected Number IE (10.5.4.13) More...
 
int gsm48_encode_connected (struct msgb *msg, const struct gsm_mncc_number *connected)
 Encode TS 04.08 Connected Number IE (10.5.4.13) More...
 
int gsm48_decode_redirecting (struct gsm_mncc_number *redirecting, const uint8_t *lv)
 Decode TS 04.08 Redirecting Number IE (10.5.4.21b) More...
 
int gsm48_encode_redirecting (struct msgb *msg, const struct gsm_mncc_number *redirecting)
 Encode TS 04.08 Redirecting Number IE (10.5.4.21b) More...
 
int gsm48_decode_facility (struct gsm_mncc_facility *facility, const uint8_t *lv)
 Decode TS 04.08 Facility IE (10.5.4.15) More...
 
int gsm48_encode_facility (struct msgb *msg, int lv_only, const struct gsm_mncc_facility *facility)
 Encode TS 04.08 Facility IE (10.5.4.15) More...
 
int gsm48_decode_notify (int *notify, const uint8_t *v)
 Decode TS 04.08 Notify IE (10.5.4.20) More...
 
int gsm48_encode_notify (struct msgb *msg, int notify)
 Encode TS 04.08 Notify IE (10.5.4.20) More...
 
int gsm48_decode_signal (int *signal, const uint8_t *v)
 Decode TS 04.08 Signal IE (10.5.4.23) More...
 
int gsm48_encode_signal (struct msgb *msg, int signal)
 Encode TS 04.08 Signal IE (10.5.4.23) More...
 
int gsm48_decode_keypad (int *keypad, const uint8_t *lv)
 Decode TS 04.08 Keypad IE (10.5.4.17) More...
 
int gsm48_encode_keypad (struct msgb *msg, int keypad)
 Encode TS 04.08 Keypad IE (10.5.4.17) More...
 
int gsm48_decode_progress (struct gsm_mncc_progress *progress, const uint8_t *lv)
 Decode TS 04.08 Progress IE (10.5.4.21) More...
 
int gsm48_encode_progress (struct msgb *msg, int lv_only, const struct gsm_mncc_progress *p)
 Encode TS 04.08 Progress IE (10.5.4.21) More...
 
int gsm48_decode_useruser (struct gsm_mncc_useruser *uu, const uint8_t *lv)
 Decode TS 04.08 User-User IE (10.5.4.25) More...
 
int gsm48_encode_useruser (struct msgb *msg, int lv_only, const struct gsm_mncc_useruser *uu)
 Encode TS 04.08 User-User IE (10.5.4.25) More...
 
int gsm48_decode_ssversion (struct gsm_mncc_ssversion *ssv, const uint8_t *lv)
 Decode TS 04.08 SS Version IE (10.5.4.24) More...
 
int gsm48_encode_ssversion (struct msgb *msg, const struct gsm_mncc_ssversion *ssv)
 Encode TS 04.08 SS Version IE (10.5.4.24) More...
 
int gsm48_encode_more (struct msgb *msg)
 Encode TS 04.08 More Data IE (10.5.4.19) More...
 
static int32_t smod (int32_t n, int32_t m)
 
int gsm48_decode_freq_list (struct gsm_sysinfo_freq *f, uint8_t *cd, uint8_t len, uint8_t mask, uint8_t frqt)
 Decode TS 04.08 Cell Channel Description IE (10.5.2.1b) and other frequency lists. More...
 
bool gprs_ms_net_cap_gea_supported (const uint8_t *ms_net_cap, uint8_t cap_len, enum gprs_ciph_algo gea)
 Check if MS supports particular version of GEA by inspecting MS network capability IE specified in 3GPP TS 24.008. More...
 

Variables

const struct tlv_definition gsm48_att_tlvdef
 TLV parser definitions for TS 04.08 CC. More...
 
const struct tlv_definition gsm48_rr_att_tlvdef
 TLV parser definitions for TS 04.08 RR. More...
 
const struct tlv_definition gsm48_mm_att_tlvdef
 TLV parser definitions for TS 04.08 MM. More...
 
static const struct value_string rr_cause_names []
 
static const char * cc_state_names [32]
 
static const struct value_string cc_msg_names []
 
static const struct value_string rr_msg_names []
 
const struct value_string gsm48_chan_mode_names []
 
const struct value_string gsm_chan_t_names []
 
static const struct value_string mi_type_names []
 
const struct value_string gsm48_pdisc_names []
 TS 04.08 Protocol Descriptor names. More...
 
const struct value_string gsm48_rr_msgtype_names []
 TS 04.08 RR Message Type names. More...
 
const struct value_string gsm48_mm_msgtype_names []
 TS 04.08 MM Message Type names. More...
 
const struct value_string gsm48_cc_msgtype_names []
 TS 04.08 CC Message Type names. More...
 
const struct value_string gsm48_nc_ss_msgtype_names []
 TS 04.80, section 3.4 Messages for supplementary services control. More...
 
const struct value_string gsm48_reject_value_names []
 
static const char bcd_num_digits []
 
const struct value_string gsm48_gmm_cause_names_ []
 10.5.5.14 GPRS MM Cause / Table 10.5.147 More...
 
const struct value_string * gsm48_gmm_cause_names = gsm48_gmm_cause_names_
 
const struct value_string gsm48_gsm_cause_names_ []
 10.5.6.6 SM Cause / Table 10.5.157 More...
 
const struct value_string * gsm48_gsm_cause_names = gsm48_gsm_cause_names_
 
const struct value_string gprs_msgt_gmm_names []
 String names of GMM message types. More...
 
const struct value_string gprs_att_t_strs_ []
 String names of GPRS Attach types according to 10.5.5.2. More...
 
const struct value_string * gprs_att_t_strs = gprs_att_t_strs_
 
const struct value_string gprs_upd_t_strs_ []
 String names of GPRS Location Update Types. More...
 
const struct value_string * gprs_upd_t_strs = gprs_upd_t_strs_
 
const struct value_string gprs_det_t_mo_strs_ []
 String names of GMM MO Detach Types according to 10.5.5.5. More...
 
const struct value_string * gprs_det_t_mo_strs = gprs_det_t_mo_strs_
 
const struct value_string gprs_det_t_mt_strs_ []
 String names of GMM MT Detach Types according to 10.5.5.5. More...
 
const struct value_string * gprs_det_t_mt_strs = gprs_det_t_mt_strs_
 
const struct value_string gprs_service_t_strs_ []
 String names of GMM Service Types. More...
 
const struct value_string * gprs_service_t_strs = gprs_service_t_strs_
 

Detailed Description

GSM Mobile Radion Interface L3 messages / TS 04.08

Function Documentation

◆ asc_to_bcd()

static int asc_to_bcd ( const char  asc)
static

convert a single ASCII character to call-control BCD

References bcd_num_digits.

Referenced by gsm48_encode_bcd_number().

◆ gprs_ms_net_cap_gea_supported()

bool gprs_ms_net_cap_gea_supported ( const uint8_t *  ms_net_cap,
uint8_t  cap_len,
enum gprs_ciph_algo  gea 
)

Check if MS supports particular version of GEA by inspecting MS network capability IE specified in 3GPP TS 24.008.

Parameters
[in]ms_net_capBuffer with raw MS network capability IE value, 3 - 10 bytes
[in]cap_lenLength of ms_net_cap, in bytes
[in]geaVersion of GEA to check
Returns
true if given version is supported by MS, false otherwise

References GPRS_ALGO_GEA0, GPRS_ALGO_GEA1, GPRS_ALGO_GEA2, GPRS_ALGO_GEA3, and GPRS_ALGO_GEA4.

◆ gsm48_cc_msg_name()

const char* gsm48_cc_msg_name ( uint8_t  msgtype)

return string representation of CC Message Type

References cc_msg_names.

◆ gsm48_cc_state_name()

const char* gsm48_cc_state_name ( uint8_t  state)

return string representation of CC State

References cc_state_names.

◆ gsm48_construct_ra()

int gsm48_construct_ra ( uint8_t *  buf,
const struct gprs_ra_id raid 
)

Encode a TS 04.08 Routing Area Identifier.

Parameters
[out]bufCaller-provided output buffer of 6 bytes
[in]raidRouting Area ID to be encoded
Returns
number of bytes used in buf

References gsm48_encode_ra().

◆ gsm48_decode_bcd_number()

int gsm48_decode_bcd_number ( char *  output,
int  output_len,
const uint8_t *  bcd_lv,
int  h_len 
)

decode a 'called/calling/connect party BCD number' as in 10.5.4.7

Parameters
[out]Caller-providedoutput buffer
[in]bcd_lvLength-Value portion of to-be-decoded IE
[in]h_lenLength of an optional heder between L and V portion
Returns
- in case of success; negative on error

References bcd_num_digits.

Referenced by gsm48_decode_called(), gsm48_decode_callerid(), and osmo_gsup_decode().

◆ gsm48_decode_bearer_cap()

◆ gsm48_decode_called()

int gsm48_decode_called ( struct gsm_mncc_number called,
const uint8_t *  lv 
)

Decode TS 04.08 Called Party BCD Number IE (10.5.4.7)

Parameters
[out]calledCaller-provided memory for decoded number
[in]lvLength-Value portion of IE
Returns
0 on success; negative on error

References gsm48_decode_bcd_number(), gsm_mncc_number::number, gsm_mncc_number::plan, and gsm_mncc_number::type.

◆ gsm48_decode_callerid()

int gsm48_decode_callerid ( struct gsm_mncc_number callerid,
const uint8_t *  lv 
)

Decode TS 04.08 Caller ID.

Parameters
[out]calledCaller-provided memory for decoded number
[in]lvLength-Value portion of IE
Returns
0 on success; negative on error

References gsm48_decode_bcd_number(), gsm_mncc_number::number, gsm_mncc_number::plan, gsm_mncc_number::present, gsm_mncc_number::screen, and gsm_mncc_number::type.

Referenced by gsm48_decode_calling(), gsm48_decode_connected(), and gsm48_decode_redirecting().

◆ gsm48_decode_calling()

int gsm48_decode_calling ( struct gsm_mncc_number calling,
const uint8_t *  lv 
)

Decode TS 04.08 Calling Number IE (10.5.4.9)

References gsm48_decode_callerid().

◆ gsm48_decode_cause()

int gsm48_decode_cause ( struct gsm_mncc_cause cause,
const uint8_t *  lv 
)

Decode TS 04.08 Cause IE (10.5.4.11)

Parameters
[out]causeCaller-provided memory for output
[in]lvLV portion of Cause IE
Returns
0 on success; negative on error

References cause.

◆ gsm48_decode_cccap()

int gsm48_decode_cccap ( struct gsm_mncc_cccap ccap,
const uint8_t *  lv 
)

Decode TS 04.08 Call Control Capabilities IE (10.5.4.5a)

Parameters
[out]Caller-providedmemory for decoded CC capabilities
[in]lvLength-Value of IE \retursns 0 on success; negative on error

References gsm_mncc_cccap::dtmf, and gsm_mncc_cccap::pcp.

◆ gsm48_decode_connected()

int gsm48_decode_connected ( struct gsm_mncc_number connected,
const uint8_t *  lv 
)

Decode TS 04.08 Connected Number IE (10.5.4.13)

References gsm48_decode_callerid().

◆ gsm48_decode_facility()

int gsm48_decode_facility ( struct gsm_mncc_facility facility,
const uint8_t *  lv 
)

Decode TS 04.08 Facility IE (10.5.4.15)

References gsm_mncc_facility::info, and gsm_mncc_facility::len.

◆ gsm48_decode_freq_list()

int gsm48_decode_freq_list ( struct gsm_sysinfo_freq f,
uint8_t *  cd,
uint8_t  len,
uint8_t  mask,
uint8_t  frqt 
)

Decode TS 04.08 Cell Channel Description IE (10.5.2.1b) and other frequency lists.

Parameters
[out]fCaller-provided output memory
[in]cdCell Channel Description IE
[in]lenLength of cd in bytes
Returns
0 on success; negative on error

References gsm48_range_1024::f0, len, gsm_sysinfo_freq::mask, gsm48_range_512::orig_arfcn_hi, gsm48_range_256::orig_arfcn_hi, gsm48_range_128::orig_arfcn_hi, gsm48_var_bit::orig_arfcn_hi, gsm48_range_512::orig_arfcn_lo, gsm48_range_256::orig_arfcn_lo, gsm48_range_128::orig_arfcn_lo, gsm48_var_bit::orig_arfcn_lo, gsm48_range_512::orig_arfcn_mid, gsm48_range_256::orig_arfcn_mid, gsm48_range_128::orig_arfcn_mid, gsm48_var_bit::orig_arfcn_mid, smod(), gsm48_range_128::w1, gsm48_range_1024::w10, gsm48_range_512::w10, gsm48_range_256::w10, gsm48_range_128::w10, gsm48_range_512::w11, gsm48_range_128::w11, gsm48_range_1024::w11_hi, gsm48_range_256::w11_hi, gsm48_range_1024::w11_lo, gsm48_range_256::w11_lo, gsm48_range_256::w12, gsm48_range_128::w12, gsm48_range_1024::w12_hi, gsm48_range_512::w12_hi, gsm48_range_1024::w12_lo, gsm48_range_512::w12_lo, gsm48_range_256::w13, gsm48_range_128::w13, gsm48_range_1024::w13_hi, gsm48_range_512::w13_hi, gsm48_range_1024::w13_lo, gsm48_range_512::w13_lo, gsm48_range_512::w14, gsm48_range_128::w14, gsm48_range_1024::w14_hi, gsm48_range_256::w14_hi, gsm48_range_1024::w14_lo, gsm48_range_256::w14_lo, gsm48_range_512::w15, gsm48_range_256::w15, gsm48_range_128::w15, gsm48_range_1024::w15_hi, gsm48_range_1024::w15_lo, gsm48_range_1024::w16, gsm48_range_128::w16, gsm48_range_512::w16_hi, gsm48_range_256::w16_hi, gsm48_range_512::w16_lo, gsm48_range_256::w16_lo, gsm48_range_512::w17, gsm48_range_256::w17, gsm48_range_128::w17, gsm48_range_256::w18_hi, gsm48_range_128::w18_hi, gsm48_range_256::w18_lo, gsm48_range_128::w18_lo, gsm48_range_256::w19, gsm48_range_128::w19, gsm48_range_1024::w1_hi, gsm48_range_512::w1_hi, gsm48_range_256::w1_hi, gsm48_range_1024::w1_lo, gsm48_range_512::w1_lo, gsm48_range_256::w1_lo, gsm48_range_256::w2, gsm48_range_128::w2, gsm48_range_128::w20, gsm48_range_256::w20_hi, gsm48_range_256::w20_lo, gsm48_range_256::w21, gsm48_range_128::w21_hi, gsm48_range_128::w21_lo, gsm48_range_128::w22, gsm48_range_128::w23, gsm48_range_128::w24, gsm48_range_128::w25, gsm48_range_128::w26_hi, gsm48_range_128::w26_lo, gsm48_range_128::w27, gsm48_range_128::w28, gsm48_range_1024::w2_hi, gsm48_range_512::w2_hi, gsm48_range_1024::w2_lo, gsm48_range_512::w2_lo, gsm48_range_256::w3, gsm48_range_1024::w3_hi, gsm48_range_512::w3_hi, gsm48_range_128::w3_hi, gsm48_range_1024::w3_lo, gsm48_range_512::w3_lo, gsm48_range_128::w3_lo, gsm48_range_1024::w4_hi, gsm48_range_512::w4_hi, gsm48_range_256::w4_hi, gsm48_range_128::w4_hi, gsm48_range_1024::w4_lo, gsm48_range_512::w4_lo, gsm48_range_256::w4_lo, gsm48_range_128::w4_lo, gsm48_range_512::w5, gsm48_range_128::w5, gsm48_range_1024::w5_hi, gsm48_range_256::w5_hi, gsm48_range_1024::w5_lo, gsm48_range_256::w5_lo, gsm48_range_512::w6, gsm48_range_1024::w6_hi, gsm48_range_256::w6_hi, gsm48_range_128::w6_hi, gsm48_range_1024::w6_lo, gsm48_range_256::w6_lo, gsm48_range_128::w6_lo, gsm48_range_256::w7, gsm48_range_128::w7, gsm48_range_1024::w7_hi, gsm48_range_512::w7_hi, gsm48_range_1024::w7_lo, gsm48_range_512::w7_lo, gsm48_range_128::w8, gsm48_range_1024::w8_hi, gsm48_range_512::w8_hi, gsm48_range_256::w8_hi, gsm48_range_1024::w8_lo, gsm48_range_512::w8_lo, gsm48_range_256::w8_lo, gsm48_range_1024::w9, gsm48_range_128::w9, gsm48_range_512::w9_hi, gsm48_range_256::w9_hi, gsm48_range_512::w9_lo, and gsm48_range_256::w9_lo.

◆ gsm48_decode_keypad()

int gsm48_decode_keypad ( int *  keypad,
const uint8_t *  lv 
)

Decode TS 04.08 Keypad IE (10.5.4.17)

◆ gsm48_decode_lai()

int gsm48_decode_lai ( struct gsm48_loc_area_id lai,
uint16_t *  mcc,
uint16_t *  mnc,
uint16_t *  lac 
)

Decode TS 04.08 Location Area Identifier, legacy implementation.

Instead use gsm48_decode_lai2(), which is capable of three-digit MNC with leading zeros.

Parameters
[in]LocationArea Identifier (encoded)
[out]mccMobile Country Code
[out]mncMobile Network Code
[out]lacLocation Area Code
Returns
0

Attention: this function returns true integers, not hex!

References gsm48_decode_lai2(), osmo_location_area_id::lac, lac, lai, osmo_plmn_id::mcc, osmo_plmn_id::mnc, and osmo_location_area_id::plmn.

◆ gsm48_decode_lai2()

void gsm48_decode_lai2 ( const struct gsm48_loc_area_id lai,
struct osmo_location_area_id decoded 
)

Decode TS 04.08 Location Area Identifier.

Parameters
[in]LocationArea Identifier (encoded).
[out]decodedTarget buffer to write decoded values of MCC-MNC-LAC.

Attention: this function returns true integers, not hex!

References gsm48_loc_area_id::digits, osmo_location_area_id::lac, gsm48_loc_area_id::lac, lai, osmo_plmn_from_bcd(), and osmo_location_area_id::plmn.

Referenced by decode_lai(), and gsm48_decode_lai().

◆ gsm48_decode_notify()

int gsm48_decode_notify ( int *  notify,
const uint8_t *  v 
)

Decode TS 04.08 Notify IE (10.5.4.20)

◆ gsm48_decode_progress()

int gsm48_decode_progress ( struct gsm_mncc_progress progress,
const uint8_t *  lv 
)

Decode TS 04.08 Progress IE (10.5.4.21)

References gsm_mncc_progress::coding, gsm_mncc_progress::descr, and gsm_mncc_progress::location.

◆ gsm48_decode_redirecting()

int gsm48_decode_redirecting ( struct gsm_mncc_number redirecting,
const uint8_t *  lv 
)

Decode TS 04.08 Redirecting Number IE (10.5.4.21b)

References gsm48_decode_callerid().

◆ gsm48_decode_signal()

int gsm48_decode_signal ( int *  signal,
const uint8_t *  v 
)

Decode TS 04.08 Signal IE (10.5.4.23)

◆ gsm48_decode_ssversion()

int gsm48_decode_ssversion ( struct gsm_mncc_ssversion ssv,
const uint8_t *  lv 
)

Decode TS 04.08 SS Version IE (10.5.4.24)

References gsm_mncc_ssversion::info, and gsm_mncc_ssversion::len.

◆ gsm48_decode_useruser()

int gsm48_decode_useruser ( struct gsm_mncc_useruser uu,
const uint8_t *  lv 
)

Decode TS 04.08 User-User IE (10.5.4.25)

References gsm_mncc_useruser::info, and gsm_mncc_useruser::proto.

◆ gsm48_encode_bcd_number()

int gsm48_encode_bcd_number ( uint8_t *  bcd_lv,
uint8_t  max_len,
int  h_len,
const char *  input 
)

convert a ASCII phone number to 'called/calling/connect party BCD number'

Parameters
[out]bcd_lvCaller-provided output buffer
[in]max_lenMaximum Length of bcd_lv
[in]h_lenLength of an optional heder between L and V portion
[in]inputphone number as 0-terminated ASCII
Returns
number of bytes used in bcd_lv

References asc_to_bcd().

Referenced by gsm340_gen_oa(), gsm48_encode_called(), gsm48_encode_callerid(), and osmo_gsup_encode().

◆ gsm48_encode_bearer_cap()

◆ gsm48_encode_called()

int gsm48_encode_called ( struct msgb *  msg,
const struct gsm_mncc_number called 
)

Encode TS 04.08 Called Party IE (10.5.4.7)

Parameters
[out]msgMesage Buffer to which to append IE (as TLV)
[in]calledMNCC Number to encode/append
Returns
0 on success; negative on error

References gsm48_encode_bcd_number(), GSM48_IE_CALLED_BCD, msgb_tlv_put(), gsm_mncc_number::number, gsm_mncc_number::plan, and gsm_mncc_number::type.

◆ gsm48_encode_callerid()

int gsm48_encode_callerid ( struct msgb *  msg,
int  ie,
int  max_len,
const struct gsm_mncc_number callerid 
)

Encode TS 04.08 Caller ID IE.

Parameters
[out]msgMesage Buffer to which to append IE (as TLV)
[in]ieIE Identifier (tag)
[in]max_lenmaximum generated output in bytes
[in]calleridMNCC Number to encode/append
Returns
0 on success; negative on error

References gsm48_encode_bcd_number(), msgb_tlv_put(), gsm_mncc_number::number, gsm_mncc_number::plan, gsm_mncc_number::present, gsm_mncc_number::screen, and gsm_mncc_number::type.

Referenced by gsm48_encode_calling(), gsm48_encode_connected(), and gsm48_encode_redirecting().

◆ gsm48_encode_calling()

int gsm48_encode_calling ( struct msgb *  msg,
const struct gsm_mncc_number calling 
)

Encode TS 04.08 Calling Number IE (10.5.4.9)

References gsm48_encode_callerid(), and GSM48_IE_CALLING_BCD.

◆ gsm48_encode_cause()

int gsm48_encode_cause ( struct msgb *  msg,
int  lv_only,
const struct gsm_mncc_cause cause 
)

Encode TS 04.08 Cause IE (10.5.4.11)

Parameters
[out]msgMessage Buffer to which to append IE
[in]lv_onlyEncode as LV (1) or TLV (0)
[in]causeCause value to be encoded
Returns
0 on success; negative on error

References cause, GSM48_IE_CAUSE, msgb_lv_put(), and msgb_tlv_put().

◆ gsm48_encode_cccap()

int gsm48_encode_cccap ( struct msgb *  msg,
const struct gsm_mncc_cccap ccap 
)

Encodoe TS 04.08 Call Control Capabilities (10.5.4.5a)

Parameters
[out]msgMessage Buffer to which to append IE (as TLV)
[in]ccapDecoded CC Capabilities to be encoded
Returns
0 on success; negative on error

References gsm_mncc_cccap::dtmf, GSM48_IE_CC_CAP, msgb_tlv_put(), and gsm_mncc_cccap::pcp.

◆ gsm48_encode_connected()

int gsm48_encode_connected ( struct msgb *  msg,
const struct gsm_mncc_number connected 
)

Encode TS 04.08 Connected Number IE (10.5.4.13)

References gsm48_encode_callerid(), and GSM48_IE_CONN_BCD.

◆ gsm48_encode_facility()

int gsm48_encode_facility ( struct msgb *  msg,
int  lv_only,
const struct gsm_mncc_facility facility 
)

◆ gsm48_encode_keypad()

int gsm48_encode_keypad ( struct msgb *  msg,
int  keypad 
)

Encode TS 04.08 Keypad IE (10.5.4.17)

References GSM48_IE_KPD_FACILITY, and msgb_tv_put().

◆ gsm48_encode_more()

int gsm48_encode_more ( struct msgb *  msg)

Encode TS 04.08 More Data IE (10.5.4.19)

References GSM48_IE_MORE_DATA.

◆ gsm48_encode_notify()

int gsm48_encode_notify ( struct msgb *  msg,
int  notify 
)

Encode TS 04.08 Notify IE (10.5.4.20)

References msgb_v_put().

◆ gsm48_encode_progress()

int gsm48_encode_progress ( struct msgb *  msg,
int  lv_only,
const struct gsm_mncc_progress p 
)

◆ gsm48_encode_ra()

void gsm48_encode_ra ( struct gsm48_ra_id out,
const struct gprs_ra_id raid 
)

Encode a 3GPP TS 24.008 § 10.5.5.15 Routing area identification.

Parameters
[out]outCaller-provided packed struct
[in]raidRouting Area ID to be encoded

References gsm48_ra_id::digits, gprs_ra_id::lac, gsm48_ra_id::lac, gprs_ra_id::mcc, gprs_ra_id::mnc, gprs_ra_id::mnc_3_digits, gprs_ra_id::rac, and gsm48_ra_id::rac.

Referenced by gsm48_construct_ra().

◆ gsm48_encode_redirecting()

int gsm48_encode_redirecting ( struct msgb *  msg,
const struct gsm_mncc_number redirecting 
)

Encode TS 04.08 Redirecting Number IE (10.5.4.21b)

References gsm48_encode_callerid(), and GSM48_IE_REDIR_BCD.

◆ gsm48_encode_signal()

int gsm48_encode_signal ( struct msgb *  msg,
int  signal 
)

Encode TS 04.08 Signal IE (10.5.4.23)

References GSM48_IE_SIGNAL, and msgb_tv_put().

◆ gsm48_encode_ssversion()

int gsm48_encode_ssversion ( struct msgb *  msg,
const struct gsm_mncc_ssversion ssv 
)

Encode TS 04.08 SS Version IE (10.5.4.24)

References GSM48_IE_SS_VERS, GSM_MAX_SSVERSION, gsm_mncc_ssversion::info, gsm_mncc_ssversion::len, and msgb_tlv_put().

◆ gsm48_encode_useruser()

int gsm48_encode_useruser ( struct msgb *  msg,
int  lv_only,
const struct gsm_mncc_useruser uu 
)

◆ gsm48_generate_lai()

void gsm48_generate_lai ( struct gsm48_loc_area_id lai48,
uint16_t  mcc,
uint16_t  mnc,
uint16_t  lac 
)

Encode TS 04.08 Location Area Identifier, legacy implementation.

Instead use gsm48_generate_lai2(), which is capable of three-digit MNC with leading zeros.

Parameters
[out]lai48caller-provided memory for output
[in]mccMobile Country Code
[in]mncMobile Network Code
[in]lacLocation Area Code

References gsm48_generate_lai2(), lac, gsm48_loc_area_id::lac, and lai.

◆ gsm48_generate_lai2()

void gsm48_generate_lai2 ( struct gsm48_loc_area_id lai48,
const struct osmo_location_area_id lai 
)

Encode TS 04.08 Location Area Identifier.

Parameters
[out]lai48caller-provided memory for output.
[in]laiinput of MCC-MNC-LAC.

References gsm48_loc_area_id::digits, gsm48_loc_area_id::lac, lai, and osmo_plmn_to_bcd().

Referenced by gsm0808_create_layer3_2(), gsm0808_enc_cell_id_list2(), and gsm48_generate_lai().

◆ gsm48_generate_mid()

uint8_t gsm48_generate_mid ( uint8_t *  buf,
const char *  id,
uint8_t  mi_type 
)

Generate TS 24.008 §10.5.1.4 Mobile ID.

Parameters
[out]bufCaller-provided output buffer
[in]idIdentity to be encoded
Returns
number of bytes used in buf

References GSM48_IE_MOBILE_ID, and length.

Referenced by gsm48_generate_mid_from_imsi().

◆ gsm48_generate_mid_from_imsi()

int gsm48_generate_mid_from_imsi ( uint8_t *  buf,
const char *  imsi 
)

Generate TS 04.08 Mobile ID from IMSI.

Parameters
[out]bufCaller-provided output buffer
[in]imsiIMSI to be encoded
Returns
number of bytes used in buf

References gsm48_generate_mid(), and GSM_MI_TYPE_IMSI.

Referenced by gsm0808_create_paging2().

◆ gsm48_generate_mid_from_tmsi()

int gsm48_generate_mid_from_tmsi ( uint8_t *  buf,
uint32_t  tmsi 
)

Generate TS 04.08 Mobile ID from TMSI.

Parameters
[out]bufCaller-provided output buffer (7 bytes)
[in]tmsiTMSI to be encoded
Returns
number of byes encoded (always 7)

References GSM48_IE_MOBILE_ID, GSM48_TMSI_LEN, and GSM_MI_TYPE_TMSI.

◆ gsm48_hdr_gmm_cipherable()

bool gsm48_hdr_gmm_cipherable ( const struct gsm48_hdr hdr)

Checks is particular message is cipherable in A/Gb mode according to 3GPP TS 24.008 § 4.7.1.2.

Parameters
[in]hdrMessage header
Returns
true if message can be encrypted, false otherwise

References GSM48_MT_GMM_ATTACH_REJ, GSM48_MT_GMM_ATTACH_REQ, GSM48_MT_GMM_AUTH_CIPH_FAIL, GSM48_MT_GMM_AUTH_CIPH_REJ, GSM48_MT_GMM_AUTH_CIPH_REQ, GSM48_MT_GMM_AUTH_CIPH_RESP, GSM48_MT_GMM_ID_REQ, GSM48_MT_GMM_ID_RESP, GSM48_MT_GMM_RA_UPD_REJ, GSM48_MT_GMM_RA_UPD_REQ, and gsm48_hdr::msg_type.

◆ gsm48_mcc_mnc_from_bcd()

void gsm48_mcc_mnc_from_bcd ( uint8_t *  bcd_src,
uint16_t *  mcc,
uint16_t *  mnc 
)

◆ gsm48_mcc_mnc_to_bcd()

void gsm48_mcc_mnc_to_bcd ( uint8_t *  bcd_dst,
uint16_t  mcc,
uint16_t  mnc 
)

◆ gsm48_mi_to_string()

int gsm48_mi_to_string ( char *  string,
const int  str_len,
const uint8_t *  mi,
const int  mi_len 
)

Convert TS 04.08 Mobile Identity (10.5.1.4) to string.

Parameters
[out]stringCaller-provided buffer for output
[in]str_lenLength of string in bytes
[in]miMobile Identity to be stringified
[in]mi_lenLength of mi in bytes
Returns
length of string written to string

References GSM48_TMSI_LEN, GSM_MI_ODD, GSM_MI_TYPE_IMEI, GSM_MI_TYPE_IMEISV, GSM_MI_TYPE_IMSI, GSM_MI_TYPE_MASK, GSM_MI_TYPE_NONE, GSM_MI_TYPE_TMSI, mi, and mi_len.

◆ gsm48_mi_type_name()

const char* gsm48_mi_type_name ( uint8_t  mi)

return string representation of Mobile Identity Type

References mi, and mi_type_names.

◆ gsm48_number_of_paging_subchannels()

int gsm48_number_of_paging_subchannels ( struct gsm48_control_channel_descr chan_desc)

Determine number of paging sub-channels.

Parameters
[in]chan_descControl Channel Description
Returns
number of paging sub-channels

Uses From Table 10.5.33 of GSM 04.08 to determine the number of paging sub-channels in the given control channel configuration

References chan_desc, gsm0502_get_n_pag_blocks(), and RSL_BCCH_CCCH_CONF_1_C.

Referenced by gsm0502_calc_paging_group().

◆ gsm48_parse_ra()

void gsm48_parse_ra ( struct gprs_ra_id raid,
const uint8_t *  buf 
)

Parse TS 04.08 Routing Area Identifier.

Parameters
[out]Caller-providedmemory for decoded RA ID
[in]bufInput buffer pointing to RAI IE value

References gprs_ra_id::lac, gprs_ra_id::mcc, gprs_ra_id::mnc, gprs_ra_id::mnc_3_digits, and gprs_ra_id::rac.

◆ gsm48_pdisc_msgtype_name()

const char* gsm48_pdisc_msgtype_name ( uint8_t  pdisc,
uint8_t  msg_type 
)

Compose a string naming the message type for given protocol.

If the message type string is known, return the message type name, otherwise return "<protocol discriminator name>:<message type in hex>".

Parameters
[in]pdiscprotocol discriminator like GSM48_PDISC_MM
[in]msg_typemessage type like GSM48_MT_MM_LOC_UPD_REQUEST
Returns
statically allocated string or string constant.

References gsm48_cc_msgtype_names, gsm48_mm_msgtype_names, gsm48_nc_ss_msgtype_names, GSM48_PDISC_CC, GSM48_PDISC_MM, gsm48_pdisc_name(), GSM48_PDISC_NC_SS, GSM48_PDISC_RR, gsm48_rr_msgtype_names, msg_type, and pdisc.

◆ gsm48_rr_msg_name()

const char* gsm48_rr_msg_name ( uint8_t  msgtype)

return string representation of RR Message Type

References rr_msg_names.

◆ gsm48_set_dtx()

void gsm48_set_dtx ( struct gsm48_cell_options op,
enum gsm48_dtx_mode  full,
enum gsm48_dtx_mode  half,
bool  is_bcch 
)

Set DTX mode in Cell Options IE (3GPP TS 44.018)

Parameters
[in]opCell Options structure in which DTX parameters will be set
[in]fullMode for full-rate channels
[in]halfMode for half-rate channels
[in]is_bcchIndicates if we should use 10.5.2.3.1 instead of 10.5.2.3a.2

There is no space for separate DTX settings for Full and Half rate channels in BCCH - in this case full setting is used for both and half parameter is ignored.

References gsm48_cell_options::d, gsm48_cell_options::dtx, GSM48_DTX_MAY_BE_USED, GSM48_DTX_SHALL_BE_USED, and GSM48_DTX_SHALL_NOT_BE_USED.

◆ osmo_rai_name()

const char* osmo_rai_name ( const struct gprs_ra_id rai)

Return MCC-MNC-LAC-RAC as string, in a static buffer.

Parameters
[in]raiRAI to encode.
Returns
Static string buffer.

References gprs_ra_id::lac, gprs_ra_id::mcc, gprs_ra_id::mnc, gprs_ra_id::mnc_3_digits, osmo_mcc_name(), osmo_mnc_name(), and gprs_ra_id::rac.

◆ rr_cause_name()

const char* rr_cause_name ( uint8_t  cause)

return string representation of RR Cause value

References cause, and rr_cause_names.

◆ smod()

static int32_t smod ( int32_t  n,
int32_t  m 
)
static

References m.

Referenced by gsm48_decode_freq_list().

Variable Documentation

◆ bcd_num_digits

const char bcd_num_digits[]
static
Initial value:
= {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', '*', '#', 'a', 'b', 'c', '\0'
}

Referenced by asc_to_bcd(), and gsm48_decode_bcd_number().

◆ cc_msg_names

const struct value_string cc_msg_names[]
static

Referenced by gsm48_cc_msg_name().

◆ cc_state_names

const char* cc_state_names[32]
static

Referenced by gsm48_cc_state_name().

◆ gprs_att_t_strs

const struct value_string* gprs_att_t_strs = gprs_att_t_strs_

◆ gprs_att_t_strs_

const struct value_string gprs_att_t_strs_[]
Initial value:
= {
{ GPRS_ATT_T_ATTACH, "GPRS attach" },
{ GPRS_ATT_T_ATT_WHILE_IMSI, "GPRS attach while IMSI attached" },
{ GPRS_ATT_T_COMBINED, "Combined GPRS/IMSI attach" },
{ 0, NULL }
}

String names of GPRS Attach types according to 10.5.5.2.

◆ gprs_det_t_mo_strs

const struct value_string* gprs_det_t_mo_strs = gprs_det_t_mo_strs_

◆ gprs_det_t_mo_strs_

const struct value_string gprs_det_t_mo_strs_[]
Initial value:
= {
{ GPRS_DET_T_MO_GPRS, "GPRS detach" },
{ GPRS_DET_T_MO_IMSI, "IMSI detach" },
{ GPRS_DET_T_MO_COMBINED, "Combined GPRS/IMSI detach" },
{ 0, NULL }
}

String names of GMM MO Detach Types according to 10.5.5.5.

◆ gprs_det_t_mt_strs

const struct value_string* gprs_det_t_mt_strs = gprs_det_t_mt_strs_

◆ gprs_det_t_mt_strs_

const struct value_string gprs_det_t_mt_strs_[]
Initial value:
= {
{ GPRS_DET_T_MT_REATT_REQ, "re-attach required" },
{ GPRS_DET_T_MT_REATT_NOTREQ, "re-attach not required" },
{ GPRS_DET_T_MT_IMSI, "IMSI detach (after VLR failure)" },
{ 0, NULL }
}

String names of GMM MT Detach Types according to 10.5.5.5.

◆ gprs_msgt_gmm_names

const struct value_string gprs_msgt_gmm_names[]
Initial value:
= {
{ GSM48_MT_GMM_ATTACH_REQ, "ATTACH REQUEST" },
{ GSM48_MT_GMM_ATTACH_ACK, "ATTACH ACK" },
{ GSM48_MT_GMM_ATTACH_COMPL, "ATTACH COMPLETE" },
{ GSM48_MT_GMM_ATTACH_REJ, "ATTACH REJECT" },
{ GSM48_MT_GMM_DETACH_REQ, "DETACH REQUEST" },
{ GSM48_MT_GMM_DETACH_ACK, "DETACH ACK" },
{ GSM48_MT_GMM_RA_UPD_REQ, "RA UPDATE REQUEST" },
{ GSM48_MT_GMM_RA_UPD_ACK, "RA UPDATE ACK" },
{ GSM48_MT_GMM_RA_UPD_COMPL, "RA UPDATE COMPLETE" },
{ GSM48_MT_GMM_RA_UPD_REJ, "RA UPDATE REJECT" },
{ GSM48_MT_GMM_PTMSI_REALL_CMD, "PTMSI REALLOC CMD" },
{ GSM48_MT_GMM_PTMSI_REALL_COMPL, "PTMSI REALLOC COMPLETE" },
{ GSM48_MT_GMM_AUTH_CIPH_REQ, "AUTH & CIPHER REQUEST" },
{ GSM48_MT_GMM_AUTH_CIPH_RESP, "AUTH & CIPHER RESPONSE" },
{ GSM48_MT_GMM_AUTH_CIPH_REJ, "AUTH & CIPHER REJECT" },
{ GSM48_MT_GMM_AUTH_CIPH_FAIL, "AUTH & CIPHER FAILURE" },
{ GSM48_MT_GMM_ID_REQ, "IDENTITY REQUEST" },
{ GSM48_MT_GMM_ID_RESP, "IDENTITY RESPONSE" },
{ GSM48_MT_GMM_STATUS, "STATUS" },
{ GSM48_MT_GMM_INFO, "INFO" },
{ 0, NULL }
}

String names of GMM message types.

◆ gprs_service_t_strs

const struct value_string* gprs_service_t_strs = gprs_service_t_strs_

◆ gprs_service_t_strs_

const struct value_string gprs_service_t_strs_[]
Initial value:
= {
{ GPRS_SERVICE_T_SIGNALLING, "signalling" },
{ GPRS_SERVICE_T_DATA, "data" },
{ GPRS_SERVICE_T_PAGING_RESP, "paging response" },
{ GPRS_SERVICE_T_MBMS_MC_SERV, "MBMS multicast service" },
{ GPRS_SERVICE_T_MBMS_BC_SERV, "MBMS broadcast service" },
{ 0, NULL }
}

String names of GMM Service Types.

◆ gprs_upd_t_strs

const struct value_string* gprs_upd_t_strs = gprs_upd_t_strs_

◆ gprs_upd_t_strs_

const struct value_string gprs_upd_t_strs_[]
Initial value:
= {
{ GPRS_UPD_T_RA, "RA updating" },
{ GPRS_UPD_T_RA_LA, "combined RA/LA updating" },
{ GPRS_UPD_T_RA_LA_IMSI_ATT, "combined RA/LA updating + IMSI attach" },
{ GPRS_UPD_T_PERIODIC, "periodic updating" },
{ 0, NULL }
}

String names of GPRS Location Update Types.

◆ gsm48_att_tlvdef

const struct tlv_definition gsm48_att_tlvdef

TLV parser definitions for TS 04.08 CC.

◆ gsm48_cc_msgtype_names

const struct value_string gsm48_cc_msgtype_names[]

TS 04.08 CC Message Type names.

Referenced by gsm48_pdisc_msgtype_name().

◆ gsm48_chan_mode_names

const struct value_string gsm48_chan_mode_names[]
Initial value:
= {
{ GSM48_CMODE_SIGN, "SIGNALLING" },
{ GSM48_CMODE_SPEECH_V1, "SPEECH_V1" },
{ GSM48_CMODE_SPEECH_EFR, "SPEECH_EFR" },
{ GSM48_CMODE_SPEECH_AMR, "SPEECH_AMR" },
{ GSM48_CMODE_DATA_14k5, "DATA_14k5" },
{ GSM48_CMODE_DATA_12k0, "DATA_12k0" },
{ GSM48_CMODE_DATA_6k0, "DATA_6k0" },
{ GSM48_CMODE_DATA_3k6, "DATA_3k6" },
{ 0, NULL },
}

◆ gsm48_gmm_cause_names

const struct value_string* gsm48_gmm_cause_names = gsm48_gmm_cause_names_

◆ gsm48_gmm_cause_names_

const struct value_string gsm48_gmm_cause_names_[]

10.5.5.14 GPRS MM Cause / Table 10.5.147

◆ gsm48_gsm_cause_names

const struct value_string* gsm48_gsm_cause_names = gsm48_gsm_cause_names_

◆ gsm48_gsm_cause_names_

const struct value_string gsm48_gsm_cause_names_[]

10.5.6.6 SM Cause / Table 10.5.157

◆ gsm48_mm_att_tlvdef

◆ gsm48_mm_msgtype_names

const struct value_string gsm48_mm_msgtype_names[]
Initial value:
= {
OSMO_VALUE_STRING(GSM48_MT_MM_IMSI_DETACH_IND),
OSMO_VALUE_STRING(GSM48_MT_MM_LOC_UPD_ACCEPT),
OSMO_VALUE_STRING(GSM48_MT_MM_LOC_UPD_REJECT),
OSMO_VALUE_STRING(GSM48_MT_MM_LOC_UPD_REQUEST),
OSMO_VALUE_STRING(GSM48_MT_MM_AUTH_REJ),
OSMO_VALUE_STRING(GSM48_MT_MM_AUTH_REQ),
OSMO_VALUE_STRING(GSM48_MT_MM_AUTH_RESP),
OSMO_VALUE_STRING(GSM48_MT_MM_AUTH_FAIL),
OSMO_VALUE_STRING(GSM48_MT_MM_ID_REQ),
OSMO_VALUE_STRING(GSM48_MT_MM_ID_RESP),
OSMO_VALUE_STRING(GSM48_MT_MM_TMSI_REALL_CMD),
OSMO_VALUE_STRING(GSM48_MT_MM_TMSI_REALL_COMPL),
OSMO_VALUE_STRING(GSM48_MT_MM_CM_SERV_ACC),
OSMO_VALUE_STRING(GSM48_MT_MM_CM_SERV_REJ),
OSMO_VALUE_STRING(GSM48_MT_MM_CM_SERV_ABORT),
OSMO_VALUE_STRING(GSM48_MT_MM_CM_SERV_REQ),
OSMO_VALUE_STRING(GSM48_MT_MM_CM_SERV_PROMPT),
OSMO_VALUE_STRING(GSM48_MT_MM_CM_REEST_REQ),
OSMO_VALUE_STRING(GSM48_MT_MM_ABORT),
OSMO_VALUE_STRING(GSM48_MT_MM_NULL),
OSMO_VALUE_STRING(GSM48_MT_MM_STATUS),
OSMO_VALUE_STRING(GSM48_MT_MM_INFO),
{ 0, NULL }
}

TS 04.08 MM Message Type names.

Referenced by gsm48_pdisc_msgtype_name().

◆ gsm48_nc_ss_msgtype_names

const struct value_string gsm48_nc_ss_msgtype_names[]
Initial value:
= {
OSMO_VALUE_STRING(GSM0480_MTYPE_RELEASE_COMPLETE),
OSMO_VALUE_STRING(GSM0480_MTYPE_FACILITY),
OSMO_VALUE_STRING(GSM0480_MTYPE_REGISTER),
{ 0, NULL }
}

TS 04.80, section 3.4 Messages for supplementary services control.

Referenced by gsm48_pdisc_msgtype_name().

◆ gsm48_pdisc_names

const struct value_string gsm48_pdisc_names[]
Initial value:
= {
{ GSM48_PDISC_GROUP_CC, "VGCC" },
{ GSM48_PDISC_BCAST_CC, "VBCC" },
{ GSM48_PDISC_PDSS1, "PDSS1" },
{ GSM48_PDISC_CC, "CC" },
{ GSM48_PDISC_PDSS2, "PDSS2" },
{ GSM48_PDISC_MM, "MM" },
{ GSM48_PDISC_RR, "RR" },
{ GSM48_PDISC_MM_GPRS, "GMM" },
{ GSM48_PDISC_SMS, "SMS" },
{ GSM48_PDISC_NC_SS, "NCSS" },
{ GSM48_PDISC_LOC, "LCS" },
{ GSM48_PDISC_EXTEND, "EXTD" },
{ GSM48_PDISC_MASK, "MASK" },
{ 0, NULL }
}

TS 04.08 Protocol Descriptor names.

Referenced by gsm48_pdisc_name().

◆ gsm48_reject_value_names

const struct value_string gsm48_reject_value_names[]

Referenced by gsm48_reject_value_name().

◆ gsm48_rr_att_tlvdef

const struct tlv_definition gsm48_rr_att_tlvdef

TLV parser definitions for TS 04.08 RR.

◆ gsm48_rr_msgtype_names

const struct value_string gsm48_rr_msgtype_names[]

TS 04.08 RR Message Type names.

Referenced by gsm48_pdisc_msgtype_name().

◆ gsm_chan_t_names

const struct value_string gsm_chan_t_names[]
Initial value:
= {
{ GSM_LCHAN_NONE, "NONE" },
{ GSM_LCHAN_SDCCH, "SDCCH" },
{ GSM_LCHAN_TCH_F, "TCH_F" },
{ GSM_LCHAN_TCH_H, "TCH_H" },
{ GSM_LCHAN_UNKNOWN, "UNKNOWN" },
{ GSM_LCHAN_CCCH, "CCCH" },
{ GSM_LCHAN_PDTCH, "PDTCH" },
{ GSM_LCHAN_CBCH, "CBCH" },
{ 0, NULL },
}

◆ mi_type_names

const struct value_string mi_type_names[]
static
Initial value:
= {
{ GSM_MI_TYPE_NONE, "NONE" },
{ GSM_MI_TYPE_IMSI, "IMSI" },
{ GSM_MI_TYPE_IMEI, "IMEI" },
{ GSM_MI_TYPE_IMEISV, "IMEI-SV" },
{ GSM_MI_TYPE_TMSI, "TMSI" },
{ 0, NULL }
}

Referenced by gsm48_mi_type_name().

◆ rr_cause_names

const struct value_string rr_cause_names[]
static
Initial value:
= {
{ GSM48_RR_CAUSE_NORMAL, "Normal event" },
{ GSM48_RR_CAUSE_ABNORMAL_UNSPEC, "Abnormal release, unspecified" },
{ GSM48_RR_CAUSE_ABNORMAL_UNACCT, "Abnormal release, channel unacceptable" },
{ GSM48_RR_CAUSE_ABNORMAL_TIMER, "Abnormal release, timer expired" },
{ GSM48_RR_CAUSE_ABNORMAL_NOACT, "Abnormal release, no activity on radio path" },
{ GSM48_RR_CAUSE_PREMPTIVE_REL, "Preemptive release" },
{ GSM48_RR_CAUSE_HNDOVER_IMP, "Handover impossible, timing advance out of range" },
{ GSM48_RR_CAUSE_CHAN_MODE_UNACCT, "Channel mode unacceptable" },
{ GSM48_RR_CAUSE_FREQ_NOT_IMPL, "Frequency not implemented" },
{ GSM48_RR_CAUSE_CALL_CLEARED, "Call already cleared" },
{ GSM48_RR_CAUSE_SEMANT_INCORR, "Semantically incorrect message" },
{ GSM48_RR_CAUSE_INVALID_MAND_INF, "Invalid mandatory information" },
{ GSM48_RR_CAUSE_MSG_TYPE_N, "Message type non-existant or not implemented" },
{ GSM48_RR_CAUSE_MSG_TYPE_N_COMPAT, "Message type not compatible with protocol state" },
{ GSM48_RR_CAUSE_COND_IE_ERROR, "Conditional IE error" },
{ GSM48_RR_CAUSE_NO_CELL_ALLOC_A, "No cell allocation available" },
{ GSM48_RR_CAUSE_PROT_ERROR_UNSPC, "Protocol error unspecified" },
{ 0, NULL },
}

Referenced by rr_cause_name().

◆ rr_msg_names

const struct value_string rr_msg_names[]
static

Referenced by gsm48_rr_msg_name().

GSM48_MT_MM_AUTH_REJ
#define GSM48_MT_MM_AUTH_REJ
Definition: gsm_04_08.h:1446
GSM48_MT_GMM_ATTACH_ACK
#define GSM48_MT_GMM_ATTACH_ACK
Definition: gsm_04_08_gprs.h:13
GSM48_IE_MOBILE_ID
#define GSM48_IE_MOBILE_ID
Definition: gsm_04_08.h:1545
GSM0480_MTYPE_REGISTER
#define GSM0480_MTYPE_REGISTER
Definition: gsm_04_80.h:9
GSM48_MT_MM_LOC_UPD_ACCEPT
#define GSM48_MT_MM_LOC_UPD_ACCEPT
Definition: gsm_04_08.h:1442
GSM48_MT_MM_AUTH_FAIL
#define GSM48_MT_MM_AUTH_FAIL
Definition: gsm_04_08.h:1449
GSM48_MT_GMM_DETACH_ACK
#define GSM48_MT_GMM_DETACH_ACK
Definition: gsm_04_08_gprs.h:17
GSM48_PDISC_NC_SS
#define GSM48_PDISC_NC_SS
Definition: gsm_04_08.h:1247
GSM48_RR_CAUSE_CHAN_MODE_UNACCT
@ GSM48_RR_CAUSE_CHAN_MODE_UNACCT
Definition: gsm_04_08.h:1703
GPRS_DET_T_MO_COMBINED
#define GPRS_DET_T_MO_COMBINED
Definition: gsm_04_08_gprs.h:61
GSM48_MT_GMM_PTMSI_REALL_COMPL
#define GSM48_MT_GMM_PTMSI_REALL_COMPL
Definition: gsm_04_08_gprs.h:25
GSM48_IE_NAME_SHORT
#define GSM48_IE_NAME_SHORT
Definition: gsm_04_08.h:1547
GSM48_MT_MM_NULL
#define GSM48_MT_MM_NULL
Definition: gsm_04_08.h:1463
GSM48_MT_MM_LOC_UPD_REJECT
#define GSM48_MT_MM_LOC_UPD_REJECT
Definition: gsm_04_08.h:1443
GSM48_MT_MM_LOC_UPD_REQUEST
#define GSM48_MT_MM_LOC_UPD_REQUEST
Definition: gsm_04_08.h:1444
GSM48_CMODE_DATA_12k0
@ GSM48_CMODE_DATA_12k0
Definition: gsm_04_08.h:701
GSM48_MT_GMM_STATUS
#define GSM48_MT_GMM_STATUS
Definition: gsm_04_08_gprs.h:32
GSM48_IE_NET_TIME_TZ
#define GSM48_IE_NET_TIME_TZ
Definition: gsm_04_08.h:1549
GSM48_MT_GMM_AUTH_CIPH_FAIL
#define GSM48_MT_GMM_AUTH_CIPH_FAIL
Definition: gsm_04_08_gprs.h:29
GSM48_RR_CAUSE_PREMPTIVE_REL
@ GSM48_RR_CAUSE_PREMPTIVE_REL
Definition: gsm_04_08.h:1701
GSM48_MT_GMM_PTMSI_REALL_CMD
#define GSM48_MT_GMM_PTMSI_REALL_CMD
Definition: gsm_04_08_gprs.h:24
GPRS_ATT_T_ATT_WHILE_IMSI
#define GPRS_ATT_T_ATT_WHILE_IMSI
Definition: gsm_04_08_gprs.h:52
GSM48_MT_GMM_ID_REQ
#define GSM48_MT_GMM_ID_REQ
Definition: gsm_04_08_gprs.h:30
TLV_TYPE_FIXED
@ TLV_TYPE_FIXED
fixed-length value-only
Definition: tlv.h:402
GSM_MI_TYPE_TMSI
#define GSM_MI_TYPE_TMSI
Definition: gsm_04_08.h:1542
GSM48_MT_MM_AUTH_REQ
#define GSM48_MT_MM_AUTH_REQ
Definition: gsm_04_08.h:1447
GSM_LCHAN_TCH_H
@ GSM_LCHAN_TCH_H
Definition: gsm_utils.h:222
GSM48_RR_CAUSE_MSG_TYPE_N_COMPAT
@ GSM48_RR_CAUSE_MSG_TYPE_N_COMPAT
Definition: gsm_04_08.h:1709
GSM48_PDISC_MASK
#define GSM48_PDISC_MASK
Definition: gsm_04_08.h:1251
TLV_TYPE_T
@ TLV_TYPE_T
tag-only
Definition: tlv.h:403
GSM_LCHAN_CBCH
@ GSM_LCHAN_CBCH
Definition: gsm_utils.h:226
GSM48_MT_GMM_RA_UPD_REQ
#define GSM48_MT_GMM_RA_UPD_REQ
Definition: gsm_04_08_gprs.h:19
GSM48_RR_CAUSE_FREQ_NOT_IMPL
@ GSM48_RR_CAUSE_FREQ_NOT_IMPL
Definition: gsm_04_08.h:1704
GPRS_SERVICE_T_PAGING_RESP
@ GPRS_SERVICE_T_PAGING_RESP
Definition: gsm_04_08_gprs.h:405
GSM48_RR_CAUSE_MSG_TYPE_N
@ GSM48_RR_CAUSE_MSG_TYPE_N
Definition: gsm_04_08.h:1708
GSM_LCHAN_PDTCH
@ GSM_LCHAN_PDTCH
Definition: gsm_utils.h:225
GSM48_CMODE_DATA_6k0
@ GSM48_CMODE_DATA_6k0
Definition: gsm_04_08.h:702
GSM48_IE_FOLLOW_ON_PROC
#define GSM48_IE_FOLLOW_ON_PROC
Definition: gsm_04_08.h:1644
GSM48_MT_GMM_AUTH_CIPH_REQ
#define GSM48_MT_GMM_AUTH_CIPH_REQ
Definition: gsm_04_08_gprs.h:26
TLV_TYPE_TLV
@ TLV_TYPE_TLV
tag-length-value
Definition: tlv.h:405
GSM_MI_TYPE_IMEISV
#define GSM_MI_TYPE_IMEISV
Definition: gsm_04_08.h:1541
GSM_MI_TYPE_NONE
#define GSM_MI_TYPE_NONE
Definition: gsm_04_08.h:1538
GSM48_RR_CAUSE_SEMANT_INCORR
@ GSM48_RR_CAUSE_SEMANT_INCORR
Definition: gsm_04_08.h:1706
GSM_LCHAN_TCH_F
@ GSM_LCHAN_TCH_F
Definition: gsm_utils.h:221
GSM48_MT_MM_ID_RESP
#define GSM48_MT_MM_ID_RESP
Definition: gsm_04_08.h:1451
GSM48_MT_GMM_ATTACH_REJ
#define GSM48_MT_GMM_ATTACH_REJ
Definition: gsm_04_08_gprs.h:15
GPRS_DET_T_MO_GPRS
#define GPRS_DET_T_MO_GPRS
Definition: gsm_04_08_gprs.h:59
GSM48_CMODE_DATA_3k6
@ GSM48_CMODE_DATA_3k6
Definition: gsm_04_08.h:703
GSM_LCHAN_CCCH
@ GSM_LCHAN_CCCH
Definition: gsm_utils.h:224
GPRS_ATT_T_ATTACH
#define GPRS_ATT_T_ATTACH
Definition: gsm_04_08_gprs.h:51
GSM48_RR_CAUSE_ABNORMAL_TIMER
@ GSM48_RR_CAUSE_ABNORMAL_TIMER
Definition: gsm_04_08.h:1699
GSM48_MT_GMM_INFO
#define GSM48_MT_GMM_INFO
Definition: gsm_04_08_gprs.h:33
GSM48_PDISC_SMS
#define GSM48_PDISC_SMS
Definition: gsm_04_08.h:1245
GSM48_PDISC_CC
#define GSM48_PDISC_CC
Definition: gsm_04_08.h:1239
GSM48_MT_MM_CM_SERV_ACC
#define GSM48_MT_MM_CM_SERV_ACC
Definition: gsm_04_08.h:1455
GSM_LCHAN_NONE
@ GSM_LCHAN_NONE
Definition: gsm_utils.h:219
GSM48_CMODE_SPEECH_EFR
@ GSM48_CMODE_SPEECH_EFR
Definition: gsm_04_08.h:698
GSM48_PDISC_MM
#define GSM48_PDISC_MM
Definition: gsm_04_08.h:1242
GSM48_RR_CAUSE_HNDOVER_IMP
@ GSM48_RR_CAUSE_HNDOVER_IMP
Definition: gsm_04_08.h:1702
GSM48_MT_MM_STATUS
#define GSM48_MT_MM_STATUS
Definition: gsm_04_08.h:1464
GSM48_MT_GMM_RA_UPD_REJ
#define GSM48_MT_GMM_RA_UPD_REJ
Definition: gsm_04_08_gprs.h:22
GSM48_MT_MM_TMSI_REALL_CMD
#define GSM48_MT_MM_TMSI_REALL_CMD
Definition: gsm_04_08.h:1452
GSM48_CMODE_SPEECH_V1
@ GSM48_CMODE_SPEECH_V1
Definition: gsm_04_08.h:697
TLV_TYPE_SINGLE_TV
@ TLV_TYPE_SINGLE_TV
tag and value (both 4 bit) in 1 byte
Definition: tlv.h:408
GSM48_RR_CAUSE_NO_CELL_ALLOC_A
@ GSM48_RR_CAUSE_NO_CELL_ALLOC_A
Definition: gsm_04_08.h:1711
GSM48_RR_CAUSE_ABNORMAL_UNSPEC
@ GSM48_RR_CAUSE_ABNORMAL_UNSPEC
Definition: gsm_04_08.h:1697
GSM48_IE_LSA_IDENT
#define GSM48_IE_LSA_IDENT
Definition: gsm_04_08.h:1550
GPRS_DET_T_MO_IMSI
#define GPRS_DET_T_MO_IMSI
Definition: gsm_04_08_gprs.h:60
GSM48_CMODE_DATA_14k5
@ GSM48_CMODE_DATA_14k5
Definition: gsm_04_08.h:700
GSM_LCHAN_SDCCH
@ GSM_LCHAN_SDCCH
Definition: gsm_utils.h:220
GSM48_PDISC_PDSS2
#define GSM48_PDISC_PDSS2
Definition: gsm_04_08.h:1240
GSM_LCHAN_UNKNOWN
@ GSM_LCHAN_UNKNOWN
Definition: gsm_utils.h:223
GPRS_UPD_T_RA_LA_IMSI_ATT
#define GPRS_UPD_T_RA_LA_IMSI_ATT
Definition: gsm_04_08_gprs.h:73
GSM48_RR_CAUSE_ABNORMAL_UNACCT
@ GSM48_RR_CAUSE_ABNORMAL_UNACCT
Definition: gsm_04_08.h:1698
GSM48_PDISC_MM_GPRS
#define GSM48_PDISC_MM_GPRS
Definition: gsm_04_08.h:1244
GPRS_ATT_T_COMBINED
#define GPRS_ATT_T_COMBINED
Definition: gsm_04_08_gprs.h:53
GSM48_PDISC_GROUP_CC
#define GSM48_PDISC_GROUP_CC
Definition: gsm_04_08.h:1236
GPRS_UPD_T_RA
#define GPRS_UPD_T_RA
Definition: gsm_04_08_gprs.h:71
GSM48_RR_CAUSE_CALL_CLEARED
@ GSM48_RR_CAUSE_CALL_CLEARED
Definition: gsm_04_08.h:1705
GSM48_MT_GMM_AUTH_CIPH_RESP
#define GSM48_MT_GMM_AUTH_CIPH_RESP
Definition: gsm_04_08_gprs.h:27
GSM48_MT_GMM_ATTACH_REQ
#define GSM48_MT_GMM_ATTACH_REQ
Definition: gsm_04_08_gprs.h:12
GSM48_CMODE_SIGN
@ GSM48_CMODE_SIGN
Definition: gsm_04_08.h:696
GSM48_IE_CTS_PERMISSION
#define GSM48_IE_CTS_PERMISSION
Definition: gsm_04_08.h:1645
GSM48_PDISC_EXTEND
#define GSM48_PDISC_EXTEND
Definition: gsm_04_08.h:1249
GSM48_MT_MM_TMSI_REALL_COMPL
#define GSM48_MT_MM_TMSI_REALL_COMPL
Definition: gsm_04_08.h:1453
GSM48_IE_PRIORITY_LEV
#define GSM48_IE_PRIORITY_LEV
Definition: gsm_04_08.h:1643
GPRS_UPD_T_PERIODIC
#define GPRS_UPD_T_PERIODIC
Definition: gsm_04_08_gprs.h:74
GSM48_IE_UTC
#define GSM48_IE_UTC
Definition: gsm_04_08.h:1548
GSM48_CMODE_SPEECH_AMR
@ GSM48_CMODE_SPEECH_AMR
Definition: gsm_04_08.h:699
GSM48_MT_MM_CM_SERV_ABORT
#define GSM48_MT_MM_CM_SERV_ABORT
Definition: gsm_04_08.h:1457
GSM48_MT_MM_AUTH_RESP
#define GSM48_MT_MM_AUTH_RESP
Definition: gsm_04_08.h:1448
GSM48_PDISC_RR
#define GSM48_PDISC_RR
Definition: gsm_04_08.h:1243
GSM48_IE_NET_DST
#define GSM48_IE_NET_DST
Definition: gsm_04_08.h:1551
GSM48_PDISC_BCAST_CC
#define GSM48_PDISC_BCAST_CC
Definition: gsm_04_08.h:1237
GPRS_DET_T_MT_REATT_NOTREQ
#define GPRS_DET_T_MT_REATT_NOTREQ
Definition: gsm_04_08_gprs.h:64
GSM48_IE_LOCATION_AREA
#define GSM48_IE_LOCATION_AREA
Definition: gsm_04_08.h:1639
GPRS_DET_T_MT_REATT_REQ
#define GPRS_DET_T_MT_REATT_REQ
Definition: gsm_04_08_gprs.h:63
GSM48_MT_MM_ABORT
#define GSM48_MT_MM_ABORT
Definition: gsm_04_08.h:1461
GPRS_UPD_T_RA_LA
#define GPRS_UPD_T_RA_LA
Definition: gsm_04_08_gprs.h:72
GSM48_MT_GMM_AUTH_CIPH_REJ
#define GSM48_MT_GMM_AUTH_CIPH_REJ
Definition: gsm_04_08_gprs.h:28
GSM48_RR_CAUSE_COND_IE_ERROR
@ GSM48_RR_CAUSE_COND_IE_ERROR
Definition: gsm_04_08.h:1710
GSM48_MT_MM_CM_SERV_PROMPT
#define GSM48_MT_MM_CM_SERV_PROMPT
Definition: gsm_04_08.h:1459
GSM48_RR_CAUSE_NORMAL
@ GSM48_RR_CAUSE_NORMAL
Definition: gsm_04_08.h:1696
GSM48_RR_CAUSE_INVALID_MAND_INF
@ GSM48_RR_CAUSE_INVALID_MAND_INF
Definition: gsm_04_08.h:1707
GSM48_MT_GMM_ID_RESP
#define GSM48_MT_GMM_ID_RESP
Definition: gsm_04_08_gprs.h:31
GSM48_PDISC_SM_GPRS
#define GSM48_PDISC_SM_GPRS
Definition: gsm_04_08.h:1246
GPRS_DET_T_MT_IMSI
#define GPRS_DET_T_MT_IMSI
Definition: gsm_04_08_gprs.h:65
GPRS_SERVICE_T_MBMS_MC_SERV
@ GPRS_SERVICE_T_MBMS_MC_SERV
Definition: gsm_04_08_gprs.h:406
GSM48_MT_MM_IMSI_DETACH_IND
#define GSM48_MT_MM_IMSI_DETACH_IND
Definition: gsm_04_08.h:1441
GSM_MI_TYPE_IMEI
#define GSM_MI_TYPE_IMEI
Definition: gsm_04_08.h:1540
GSM0480_MTYPE_RELEASE_COMPLETE
#define GSM0480_MTYPE_RELEASE_COMPLETE
Definition: gsm_04_80.h:7
GSM48_MT_MM_CM_REEST_REQ
#define GSM48_MT_MM_CM_REEST_REQ
Definition: gsm_04_08.h:1460
GSM48_IE_NAME_LONG
#define GSM48_IE_NAME_LONG
Definition: gsm_04_08.h:1546
GSM48_MT_MM_CM_SERV_REQ
#define GSM48_MT_MM_CM_SERV_REQ
Definition: gsm_04_08.h:1458
GSM48_RR_CAUSE_PROT_ERROR_UNSPC
@ GSM48_RR_CAUSE_PROT_ERROR_UNSPC
Definition: gsm_04_08.h:1712
GPRS_SERVICE_T_DATA
@ GPRS_SERVICE_T_DATA
Definition: gsm_04_08_gprs.h:404
GSM48_MT_MM_ID_REQ
#define GSM48_MT_MM_ID_REQ
Definition: gsm_04_08.h:1450
GSM48_MT_GMM_RA_UPD_COMPL
#define GSM48_MT_GMM_RA_UPD_COMPL
Definition: gsm_04_08_gprs.h:21
GPRS_SERVICE_T_SIGNALLING
@ GPRS_SERVICE_T_SIGNALLING
Definition: gsm_04_08_gprs.h:403
GSM48_RR_CAUSE_ABNORMAL_NOACT
@ GSM48_RR_CAUSE_ABNORMAL_NOACT
Definition: gsm_04_08.h:1700
GPRS_SERVICE_T_MBMS_BC_SERV
@ GPRS_SERVICE_T_MBMS_BC_SERV
Definition: gsm_04_08_gprs.h:407
GSM48_MT_GMM_DETACH_REQ
#define GSM48_MT_GMM_DETACH_REQ
Definition: gsm_04_08_gprs.h:16
GSM48_MT_MM_INFO
#define GSM48_MT_MM_INFO
Definition: gsm_04_08.h:1465
GSM_MI_TYPE_IMSI
#define GSM_MI_TYPE_IMSI
Definition: gsm_04_08.h:1539
GSM48_MT_GMM_RA_UPD_ACK
#define GSM48_MT_GMM_RA_UPD_ACK
Definition: gsm_04_08_gprs.h:20
GSM48_PDISC_LOC
#define GSM48_PDISC_LOC
Definition: gsm_04_08.h:1248
TLV_TYPE_TV
@ TLV_TYPE_TV
tag-value (8bit)
Definition: tlv.h:404
GSM48_MT_MM_CM_SERV_REJ
#define GSM48_MT_MM_CM_SERV_REJ
Definition: gsm_04_08.h:1456
GSM48_MT_GMM_ATTACH_COMPL
#define GSM48_MT_GMM_ATTACH_COMPL
Definition: gsm_04_08_gprs.h:14
GSM48_PDISC_PDSS1
#define GSM48_PDISC_PDSS1
Definition: gsm_04_08.h:1238
GSM0480_MTYPE_FACILITY
#define GSM0480_MTYPE_FACILITY
Definition: gsm_04_80.h:8