libosmogsm
0.9.3
Osmocom GSM library
|
00001 #pragma once 00002 00003 #include <osmocom/gsm/tlv.h> 00004 #include <osmocom/gsm/protocol/gsm_04_08.h> 00005 #include <osmocom/gsm/gsm48_ie.h> 00006 00007 /* reserved according to GSM 03.03 ยง 2.4 */ 00008 #define GSM_RESERVED_TMSI 0xFFFFFFFF 00009 00010 /* A parsed GPRS routing area */ 00011 struct gprs_ra_id { 00012 uint16_t mnc; 00013 uint16_t mcc; 00014 uint16_t lac; 00015 uint8_t rac; 00016 }; 00017 00018 extern const struct tlv_definition gsm48_att_tlvdef; 00019 extern const struct tlv_definition gsm48_rr_att_tlvdef; 00020 extern const struct tlv_definition gsm48_mm_att_tlvdef; 00021 const char *gsm48_cc_state_name(uint8_t state); 00022 const char *gsm48_cc_msg_name(uint8_t msgtype); 00023 const char *rr_cause_name(uint8_t cause); 00024 00025 int gsm48_decode_lai(struct gsm48_loc_area_id *lai, uint16_t *mcc, 00026 uint16_t *mnc, uint16_t *lac); 00027 void gsm48_generate_lai(struct gsm48_loc_area_id *lai48, uint16_t mcc, 00028 uint16_t mnc, uint16_t lac); 00029 int gsm48_generate_mid_from_tmsi(uint8_t *buf, uint32_t tmsi); 00030 int gsm48_generate_mid_from_imsi(uint8_t *buf, const char *imsi); 00031 00032 /* Convert Mobile Identity (10.5.1.4) to string */ 00033 int gsm48_mi_to_string(char *string, const int str_len, 00034 const uint8_t *mi, const int mi_len); 00035 const char *gsm48_mi_type_name(uint8_t mi); 00036 00037 /* Parse Routeing Area Identifier */ 00038 void gsm48_parse_ra(struct gprs_ra_id *raid, const uint8_t *buf); 00039 int gsm48_construct_ra(uint8_t *buf, const struct gprs_ra_id *raid); 00040 00041 int gsm48_number_of_paging_subchannels(struct gsm48_control_channel_descr *chan_desc);