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_cap | Buffer with raw MS network capability IE value, 3 - 10 bytes
  [in] | cap_len | Length of ms_net_cap, in bytes
  [in] | gea | Version 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] | buf | Caller-provided output buffer of 6 bytes
  [in] | raid | Routing 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-provided | output buffer
  [in] | bcd_lv | Length-Value portion of to-be-decoded IE
  [in] | h_len | Length 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()

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)

Parameters

  [out] | Caller-provided | memory for decoded output [aram[in] LV portion of TS 04.08 Bearer Capability

Returns
  0 on success; negative on error

References gsm_mncc_bearer_cap::async, gsm_mncc_bearer_cap::coding, gsm_mncc_bearer_cap::data, GSM_MNCC_BCAP_FAX_G3, GSM_MNCC_BCAP_SPEECH, GSM_MNCC_BCAP_UNR_DIG, gsm_mncc_bearer_cap::interm_rate, gsm_mncc_bearer_cap::mode, gsm_mncc_bearer_cap::modem_type, gsm_mncc_bearer_cap::nr_data_bits, gsm_mncc_bearer_cap::nr_stop_bits, gsm_mncc_bearer_cap::parity, gsm_mncc_bearer_cap::radio, gsm_mncc_bearer_cap::rate_adaption, s, gsm_mncc_bearer_cap::sig_access, gsm_mncc_bearer_cap::speech_ctm, gsm_mncc_bearer_cap::speech_ver, gsm_mncc_bearer_cap::transfer, gsm_mncc_bearer_cap::transp, and gsm_mncc_bearer_cap::user_rate.

## 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] | called | Caller-provided memory for decoded number
  [in] | lv | Length-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] | called | Caller-provided memory for decoded number
  [in] | lv | Length-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] | cause | Caller-provided memory for output
  [in] | lv | LV 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-provided | memory for decoded CC capabilities
  [in] | lv | Length-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] | f | Caller-provided output memory
  [in] | cd | Cell Channel Description IE
  [in] | len | Length 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] | Location | Area Identifier (encoded)
  [out] | mcc | Mobile Country Code
  [out] | mnc | Mobile Network Code
  [out] | lac | Location 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] | Location | Area Identifier (encoded).
  [out] | decoded | Target 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_lv | Caller-provided output buffer
  [in] | max_len | Maximum Length of bcd_lv
  [in] | h_len | Length of an optional heder between L and V portion
  [in] | input | phone 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()

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)

Parameters

  [out] | msg | Message Buffer to which IE is to be appended
  [in] | lv_only | Write only LV portion (1) or TLV (0)
  [in] | bcap | Decoded Bearer Capability to be encoded

Returns
  0 on success; negative on error

References gsm_mncc_bearer_cap::async, gsm_mncc_bearer_cap::coding, gsm_mncc_bearer_cap::data, GSM48_BCAP_ITCAP_FAX_G3, GSM48_BCAP_ITCAP_UNR_DIG_INF, GSM48_IE_BEARER_CAP, GSM_MNCC_BCAP_SPEECH, gsm_mncc_bearer_cap::interm_rate, gsm_mncc_bearer_cap::mode, gsm_mncc_bearer_cap::modem_type, msgb_lv_put(), msgb_tlv_put(), gsm_mncc_bearer_cap::nr_data_bits, gsm_mncc_bearer_cap::nr_stop_bits, gsm_mncc_bearer_cap::parity, gsm_mncc_bearer_cap::radio, gsm_mncc_bearer_cap::rate_adaption, s, gsm_mncc_bearer_cap::sig_access, gsm_mncc_bearer_cap::speech_ctm, gsm_mncc_bearer_cap::speech_ver, gsm_mncc_bearer_cap::transfer, and gsm_mncc_bearer_cap::user_rate.

## 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] | msg | Mesage Buffer to which to append IE (as TLV)
  [in] | called | MNCC 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] | msg | Mesage Buffer to which to append IE (as TLV)
  [in] | ie | IE Identifier (tag)
  [in] | max_len | maximum generated output in bytes
  [in] | callerid | MNCC 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] | msg | Message Buffer to which to append IE
  [in] | lv_only | Encode as LV (1) or TLV (0)
  [in] | cause | Cause 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] | msg | Message Buffer to which to append IE (as TLV)
  [in] | ccap | Decoded 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
| ) |  |

Encode TS 04.08 Facility IE (10.5.4.15)

References GSM48_IE_FACILITY, GSM_MAX_FACILITY, gsm_mncc_facility::info, gsm_mncc_facility::len, msgb_lv_put(), and msgb_tlv_put().

## 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
| ) |  |

Encode TS 04.08 Progress IE (10.5.4.21)

References gsm_mncc_progress::coding, gsm_mncc_progress::descr, GSM48_IE_PROGR_IND, gsm_mncc_progress::location, msgb_lv_put(), and msgb_tlv_put().

## 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] | out | Caller-provided packed struct
  [in] | raid | Routing 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
| ) |  |

Encode TS 04.08 User-User IE (10.5.4.25)

References GSM48_IE_USER_USER, GSM_MAX_USERUSER, gsm_mncc_useruser::info, msgb_lv_put(), msgb_tlv_put(), and gsm_mncc_useruser::proto.

## 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] | lai48 | caller-provided memory for output
  [in] | mcc | Mobile Country Code
  [in] | mnc | Mobile Network Code
  [in] | lac | Location 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] | lai48 | caller-provided memory for output.
  [in] | lai | input 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] | buf | Caller-provided output buffer
  [in] | id | Identity 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] | buf | Caller-provided output buffer
  [in] | imsi | IMSI 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] | buf | Caller-provided output buffer (7 bytes)
  [in] | tmsi | TMSI 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] | hdr | Message 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
| ) |  |

References osmo_plmn_id::mcc, osmo_plmn_id::mnc, and osmo_plmn_from_bcd().

## gsm48_mcc_mnc_to_bcd()

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

References osmo_plmn_id::mcc, osmo_plmn_id::mnc, and osmo_plmn_to_bcd().

## 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] | string | Caller-provided buffer for output
  [in] | str_len | Length of string in bytes
  [in] | mi | Mobile Identity to be stringified
  [in] | mi_len | Length 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_desc | Control 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-provided | memory for decoded RA ID
  [in] | buf | Input 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] | pdisc | protocol discriminator like GSM48_PDISC_MM
  [in] | msg_type | message 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] | op | Cell Options structure in which DTX parameters will be set
  [in] | full | Mode for full-rate channels
  [in] | half | Mode for half-rate channels
  [in] | is_bcch | Indicates 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] | rai | RAI 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

const struct tlv_definition gsm48_mm_att_tlvdef

Initial value:
= {
.def = {
[GSM48_IE_MOBILE_ID] = { TLV_TYPE_TLV },
[GSM48_IE_NAME_LONG] = { TLV_TYPE_TLV },
[GSM48_IE_NAME_SHORT] = { TLV_TYPE_TLV },
[GSM48_IE_UTC] = { TLV_TYPE_TV },
[GSM48_IE_NET_TIME_TZ] = { TLV_TYPE_FIXED, 7 },
[GSM48_IE_LSA_IDENT] = { TLV_TYPE_TLV },
[GSM48_IE_NET_DST] = { TLV_TYPE_TLV },
[GSM48_IE_LOCATION_AREA] = { TLV_TYPE_FIXED, 5 },
[GSM48_IE_PRIORITY_LEV] = { TLV_TYPE_SINGLE_TV },
[GSM48_IE_FOLLOW_ON_PROC] = { TLV_TYPE_T },
[GSM48_IE_CTS_PERMISSION] = { TLV_TYPE_T },
},
}

TLV parser definitions for TS 04.08 MM.

## 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_SM_GPRS, "SM" },
{ 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