libosmogsm  0.11.0-dirty
Osmocom GSM library
include/osmocom/gsm/protocol/gsm_44_318.h
Go to the documentation of this file.
00001 
00004 #pragma once
00005 
00006 #include <stdint.h>
00007 
00008 /* Table 11.1.1.2.1: Protocol Discriminator */
00009 enum gan_pdisc {
00010         GA_PDISC_RC                     = 0,
00011         GA_PDISC_CSR                    = 1,
00012         GA_PDISC_PSR                    = 2,
00013 };
00014 
00015 /* Table 11.1.1.4.1: Message types for URR */
00016 
00017 enum gan_msg_type {
00018         GA_MT_RC_DISCOVERY_REQUEST      = 0x01,
00019         GA_MT_RC_DISCOVERY_ACCEPT       = 0x02,
00020         GA_MT_RC_DISCOVERY_REJECT       = 0x03,
00021 
00022         GA_MT_RC_REGISTER_REQUEST       = 0x10,
00023         GA_MT_RC_REGISTER_ACCEPT        = 0x11,
00024         GA_MT_RC_REGISTER_REDIRECT      = 0x12,
00025         GA_MT_RC_REGISTER_REJECT        = 0x13,
00026         GA_MT_RC_DEREGISTER             = 0x14,
00027         GA_MT_RC_REGISTER_UPDATE_UL     = 0x15,
00028         GA_MT_RC_REGISTER_UPDATE_DL     = 0x16,
00029         GA_MT_RC_CELL_BCAST_INFO        = 0x17,
00030 
00031         GA_MT_CSR_CIPH_MODE_CMD         = 0x20,
00032         GA_MT_CSR_CIPH_MODE_COMPL       = 0x21,
00033 
00034         GA_MT_CSR_ACT_CHAN              = 0x30,
00035         GA_MT_CSR_ACT_CHAN_ACK          = 0x31,
00036         GA_MT_CSR_ACT_CHAN_COMPL        = 0x32,
00037         GA_MT_CSR_ACT_CHAN_FAIL         = 0x33,
00038         GA_MT_CSR_CHAN_MODE_MOD         = 0x34,
00039         GA_MT_CSR_CHAN_MODE_MOD_ACK     = 0x35,
00040 
00041         GA_MT_CSR_RELEASE               = 0x40,
00042         GA_MT_CSR_RELEASE_COMPL         = 0x41,
00043         GA_MT_CSR_CLEAR_REQ             = 0x42,
00044 
00045         GA_MT_CSR_HO_ACCESS             = 0x50,
00046         GA_MT_CSR_HO_COMPL              = 0x51,
00047         GA_MT_CSR_UL_QUAL_IND           = 0x52,
00048         GA_MT_CSR_HO_INFO               = 0x53,
00049         GA_MT_CSR_HO_CMD                = 0x54,
00050         GA_MT_CSR_HO_FAIL               = 0x55,
00051 
00052         GA_MT_CSR_PAGING_REQ            = 0x60,
00053         GA_MT_CSR_PAGING_RESP           = 0x61,
00054 
00055         GA_MT_CSR_UL_DIRECT_XFER        = 0x70,
00056         GA_MT_CSR_DL_DIRECT_XFER        = 0x72,
00057         GA_MT_CSR_STATUS                = 0x73,
00058         GA_MT_RC_KEEPALIVE              = 0x74,
00059         GA_MT_CSR_CM_ENQ                = 0x75,
00060         GA_MT_CSR_CM_CHANGE             = 0x76,
00061         GA_MT_PSR_GPRS_SUSPEND_REQ      = 0x77,
00062         GA_RC_SYNC_INFO                 = 0x78,
00063         GA_CSR_UTRAN_CM_CHG             = 0x79,
00064 
00065         GA_MT_CSR_REQUEST               = 0x80,
00066         GA_MT_CSR_REQUEST_ACCEPT        = 0x81,
00067         GA_MT_CSR_REQUEST_REJECT        = 0x82,
00068 };
00069 
00070 /* All tables in 10.1.x and 10.2.x / Table 11.2.1 */
00071 enum gan_iei {
00072         GA_IE_MI                = 1,
00073         GA_IE_GAN_RELEASE_IND   = 2,
00074         GA_IE_RADIO_IE          = 3,
00075         GA_IE_GERAN_CELL_ID     = 4,
00076         GA_IE_LAC               = 5,
00077         GA_IE_GERAN_COV_IND     = 6,
00078         GA_IE_GAN_CM            = 7,
00079         GA_IE_GEO_LOC           = 8,
00080         GA_IE_DEF_SEGW_IP       = 9,
00081         GA_IE_DEF_SEGW_FQDN     = 10,
00082         GA_IE_REDIR_CTR         = 11,
00083         GA_IE_DISCOV_REJ_CAUSE  = 12,
00084         GA_IE_GANC_CELL_DESC    = 13,
00085         GA_IE_GANC_CTRL_CH_DESC = 14,
00086         GA_IE_GERAN_CELL_ID_LIST= 15,
00087         GA_IE_TU3907_TIMER      = 16,
00088         GA_IE_RR_STATE          = 17,
00089         GA_IE_RAI               = 18,
00090         GA_IE_GAN_BAND          = 19,
00091         GA_IE_GARC_GACSR_STATE  = 20,
00092         GA_IE_REG_REJ_CAUSE     = 21,
00093         GA_IE_TU3906_TIMER      = 22,
00094         GA_IE_TU3910_TIMER      = 23,
00095         GA_IE_TU3902_TIMER      = 24,
00096         GA_IE_L3_MSG            = 26,
00097         GA_IE_CHAN_MODE         = 27,
00098         GA_IE_MS_CLASSMARK2     = 28,
00099         GA_IE_RR_CAUSE          = 29,
00100         GA_EI_CIPH_MODE_SET     = 30,
00101         GA_IE_GPRS_RESUMPTION   = 31,
00102         GA_IE_HO_FROM_GAN_CMD   = 32,
00103         GA_IE_UL_QUAL_IND       = 33,
00104         GA_IE_TLLI              = 34,
00105         GA_IE_PFI               = 35,
00106         GA_IE_SUSP_CAUSE        = 36,
00107         GA_IE_TU3920_TIMER      = 37,
00108         GA_IE_REQD_QOS          = 38,
00109         GA_IE_P_DEACT_CAUSE     = 39,
00110         GA_IE_REQD_UL_RATE      = 40,
00111         GA_IE_RAC               = 41,
00112         GA_IE_AP_LOCATION       = 42,
00113         GA_IE_TU4001_TIMER      = 43,
00114         GA_IE_LOC_STATUS        = 44,
00115         GA_IE_CIPH_RESP         = 45,
00116         GA_IE_CIPH_RAND         = 46,
00117         GA_IE_CIPH_MAC          = 47,
00118         GA_IE_CKSN              = 48,
00119         GA_IE_SAPI_ID           = 49,
00120         GA_IE_EST_CAUSE         = 50,
00121         GA_IE_CHAN_NEEDED       = 51,
00122         GA_IE_PDU_IN_ERROR      = 52,
00123         GA_IE_SAMPLE_SIZE       = 53,
00124         GA_IE_PAYLOAD_TYPE      = 54,
00125         GA_IE_MULTIRATE_CONF    = 55,
00126         GA_IE_MS_CLASSMARK3     = 56,
00127         GA_IE_LLC_PDU           = 57,
00128         GA_IE_LOC_BLACKL_IND    = 58,
00129         GA_IE_RESET_IND         = 59,
00130         GA_IE_TU4003_TIMER      = 60,
00131         GA_IE_AP_SERV_NAME      = 61,
00132         GA_IE_SERV_ZONE_INFO    = 62,
00133         GA_IE_RTP_RED_CONF      = 63,
00134         GA_IE_UTRAN_CLASSMARK   = 64,
00135         GA_IE_CM_ENQ_MASK       = 65,
00136         GA_IE_UTRAN_CELLID_LIST = 66,
00137         GA_IE_SERV_GANC_TBL_IND = 67,
00138         GA_IE_AP_REG_IND        = 68,
00139         GA_IE_GAN_PLMN_LIST     = 69,
00140         GA_IE_REQD_GAN_SERV     = 71,
00141         GA_IE_BCAST_CONTAINER   = 72,
00142         GA_IE_3G_CELL_ID        = 73,
00143         GA_IE_MS_RADIO_ID       = 96,
00144         GA_IE_DEF_GANC_IP       = 97,
00145         GA_IE_DEF_GANC_FQDN     = 98,
00146         GA_IE_GPRS_IP_ADDR      = 99,
00147         GA_IE_GPRS_UDP_PORT     = 100,
00148         GA_IE_GANC_TCP_PORT     = 103,
00149         GA_IE_RTP_UDP_PORT      = 104,
00150         GA_IE_RTCP_UDP_PORT     = 105,
00151         GA_IE_GERAN_RCV_SIGL_LIST = 106,
00152         GA_IE_UTRAN_RCV_SIGL_LIST = 107,
00153 };
00154 
00155 /* 11.1.1 GA-RC and GA-CSR Message header IE */
00156 struct gan_rc_csr_hdr {
00157         uint16_t len;
00158         uint8_t pdisc:4,
00159                 skip_ind:4;
00160         uint8_t msg_type;
00161         uint8_t data[0];
00162 } __attribute__((packed));
00163 
00164 /* 11.2.14.1: GAN Control Channel Description IE */
00165 struct gan_cch_desc_ie {
00166         uint8_t spare:1,
00167                 ecmc:1,
00168                 nmo:2,
00169                 gprs:1,
00170                 dtm:1,
00171                 att:1,
00172                 mscr:1;
00173 #if 0
00174         uint8_t mscr:1,
00175                 att:1,
00176                 dtm:1,
00177                 gprs:1,
00178                 nmo:2,
00179                 ecmc:1,
00180                 spare:1;
00181 #endif
00182         uint8_t t3212;
00183         uint8_t rac;
00184         uint8_t sgsnr:1,
00185                 ecmp:1,
00186                 re:1,
00187                 pfcfm:1,
00188                 tgecs:2,
00189                 spare2:2;
00190 #if 0
00191         uint8_t spare2:2,
00192                 tgecs:2,
00193                 pfcfm:1,
00194                 re:1,
00195                 ecmp:1,
00196                 sgsnr:1;
00197 #endif
00198         uint8_t access_class[2];
00199 } __attribute__((packed));
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines