diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-10-10 09:20:58 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-10-10 09:21:27 +0200 |
commit | 226ef1d1432a379ad16e5f8d3e74a612d185ab91 (patch) | |
tree | e68aa239c6f5a4ea063b2d65a80a75079f134598 | |
parent | 27dc1b130b88edd85a71688504696191fe76bca1 (diff) |
add header file containing UMA/GAN protocol definitions
-rw-r--r-- | include/osmocom/gsm/protocol/Makefile.am | 2 | ||||
-rw-r--r-- | include/osmocom/gsm/protocol/gsm_44_318.h | 153 |
2 files changed, 154 insertions, 1 deletions
diff --git a/include/osmocom/gsm/protocol/Makefile.am b/include/osmocom/gsm/protocol/Makefile.am index 7f6de639..6ed55e46 100644 --- a/include/osmocom/gsm/protocol/Makefile.am +++ b/include/osmocom/gsm/protocol/Makefile.am @@ -1,6 +1,6 @@ osmogsm_proto_HEADERS = gsm_03_41.h \ gsm_04_08.h gsm_04_11.h gsm_04_12.h gsm_04_80.h \ - gsm_08_08.h gsm_08_58.h \ + gsm_08_08.h gsm_08_58.h gsm_44_318.h \ gsm_12_21.h ipaccess.h osmogsm_protodir = $(includedir)/osmocom/gsm/protocol diff --git a/include/osmocom/gsm/protocol/gsm_44_318.h b/include/osmocom/gsm/protocol/gsm_44_318.h new file mode 100644 index 00000000..31c0ea7c --- /dev/null +++ b/include/osmocom/gsm/protocol/gsm_44_318.h @@ -0,0 +1,153 @@ +#ifndef PROTO_GSM_44_318_H +#define PROTO_GSM_44_318_H + +#include <stdint.h> + +/* Definitions according to 3GPP TS 44.318 6.8.0 Release 6 */ + +/* Table 11.1.1.4.1: Message types for URR */ + +enum gan_msg_type { + GA_MT_RC_DISCOVERY_REQUEST = 0x01, + GA_MT_RC_DISCOVERY_ACCEPT = 0x02, + GA_MT_RC_DISCOVERY_REJECT = 0x03, + + GA_MT_RC_REGISTER_REQUEST = 0x10, + GA_MT_RC_REGISTER_ACCEPT = 0x11, + GA_MT_RC_REGISTER_REDIRECT = 0x12, + GA_MT_RC_REGISTER_REJECT = 0x13, + GA_MT_RC_DEREGISTER = 0x14, + GA_MT_RC_REGISTER_UPDATE_UL = 0x15, + GA_MT_RC_REGISTER_UPDATE_DL = 0x16, + GA_MT_RC_CELL_BCAST_INFO = 0x17, + + GA_MT_CSR_CIPH_MODE_CMD = 0x20, + GA_MT_CSR_CIPH_MODE_COMPL = 0x21, + + GA_MT_CSR_ACT_CHAN = 0x30, + GA_MT_CSR_ACT_CHAN_ACK = 0x31, + GA_MT_CSR_ACT_CHAN_COMPL = 0x32, + GA_MT_CSR_ACT_CHAN_FAIL = 0x33, + GA_MT_CSR_CHAN_MODE_MOD = 0x34, + GA_MT_CSR_CHAN_MODE_MOD_ACK = 0x35, + + GA_MT_CSR_RELEASE = 0x40, + GA_MT_CSR_RELEASE_COMPL = 0x41, + GA_MT_CSR_CLEAR_REQ = 0x42, + + GA_MT_CSR_HO_ACCESS = 0x50, + GA_MT_CSR_HO_COMPL = 0x51, + GA_MT_CSR_UL_QUAL_IND = 0x52, + GA_MT_CSR_HO_INFO = 0x53, + GA_MT_CSR_HO_CMD = 0x54, + GA_MT_CSR_HO_FAIL = 0x55, + + GA_MT_CSR_PAGING_REQ = 0x60, + GA_MT_CSR_PAGING_RESP = 0x61, + + GA_MT_CSR_UL_DIRECT_XFER = 0x70, + GA_MT_CSR_DL_DIRECT_XFER = 0x72, + GA_MT_CSR_STATUS = 0x73, + GA_MT_RC_KEEPALIVE = 0x74, + GA_MT_CSR_CM_ENQ = 0x75, + GA_MT_CSR_CM_CHANGE = 0x76, + + GA_MT_CSR_REQUEST = 0x80, + GA_MT_CSR_REQUEST_ACCEPT = 0x81, + GA_MT_CSR_REQUEST_REJECT = 0x82, +}; + +/* All tables in 10.1.x and 10.2.x / Table 11.2.1 */ +enum gan_iei { + GA_IE_MI = 1, + GA_IE_GAN_RELEASE_IND = 2, + GA_IE_RADIO_IE = 3, + GA_IE_GERAN_CELL_ID = 4, + GA_IE_LAC = 5, + GA_IE_GERAN_COV_IND = 6, + GA_IE_GAN_CM = 7, + GA_IE_GEO_LOC = 8, + GA_IE_DEF_SEGW_IP = 9, + GA_IE_DEF_SEGW_FQDN = 10, + GA_IE_REDIR_CTR = 11, + GA_IE_DISCOV_REJ_CAUSE = 12, + GA_IE_GANC_CELL_DESC = 13, + GA_IE_GANC_CTRL_CH_DESC = 14, + GA_IE_GERAN_CELL_ID_LIST= 15, + GA_IE_TU3907_TIMER = 16, + GA_IE_RR_STATE = 17, + GA_IE_RAI = 18, + GA_IE_GAN_BAND = 19, + GA_IE_GARC_GACSR_STATE = 20, + GA_IE_REG_REJ_CAUSE = 21, + GA_IE_TU3906_TIMER = 22, + GA_IE_TU3910_TIMER = 23, + GA_IE_TU3902_TIMER = 24, + GA_IE_L3_MSG = 26, + GA_IE_CHAN_MODE = 27, + GA_IE_MS_CLASSMARK2 = 28, + GA_IE_RR_CAUSE = 29, + GA_EI_CIPH_MODE_SET = 30, + GA_IE_GPRS_RESUMPTION = 31, + GA_IE_HO_FROM_GAN_CMD = 32, + GA_IE_UL_QUAL_IND = 33, + GA_IE_TLLI = 34, + GA_IE_PFI = 35, + GA_IE_SUSP_CAUSE = 36, + GA_IE_TU3820_TIMER = 37, + GA_IE_REQD_QOS = 38, + GA_IE_P_DEACT_CAUSE = 39 + GA_IE_REQD_UL_RATE = 40, + GA_IE_RAC = 41, + GA_IE_AP_LOCATION = 42, + GA_IE_TU4001_TIMER = 43, + GA_IE_LOC_STATUS = 44, + GA_IE_CIPH_RESP = 45, + GA_IE_CIPH_RAND = 46, + GA_IE_CIPH_MAC = 47, + GA_IE_CKSN = 48, + GA_IE_SAPI_ID = 49, + GA_IE_EST_CAUSE = 50, + GA_IE_CHAN_NEEDED = 51, + GA_IE_PDU_IN_ERROR = 52, + GA_IE_SAMPLE_SIZE = 53, + GA_IE_PAYLOAD_TYPE = 54, + GA_IE_MULTIRATE_CONF = 55, + GA_IE_MS_CLASSMARK3 = 56, + GA_IE_LLC_PDU = 57, + GA_IE_LOC_BLACKL_IND = 58, + GA_IE_RESET_IND = 59, + GA_IE_TU4003_TIMER = 60, + GA_IE_AP_SERV_NAME = 61, + GA_IE_SERV_ZONE_INFO = 62, + GA_IE_RTP_RED_CONF = 63, + GA_IE_UTRAN_CLASSMARK = 64, + GA_IE_CM_ENQ_MASK = 65, + GA_IE_UTRAN_CELLID_LIST = 66, + GA_IE_SERV_GANC_TBL_IND = 67, + GA_IE_AP_REG_IND = 68, + GA_IE_GAN_PLMN_LIST = 69, + GA_IE_REQD_GAN_SERV = 71, + GA_IE_BCAST_CONTAINER = 72, + GA_IE_3G_CELL_ID = 73, + GA_IE_MS_RADIO_ID = 96, + GA_IE_DEF_GANC_IP = 97, + GA_IE_DEF_GANC_FQDN = 98, + GA_IE_GPRS_IP_ADDR = 99, + GA_IE_GPRS_UDP_PORT = 100 + GA_IE_GANC_TCP_PORT = 103, + GA_IE_RTP_UDP_PORT = 104, + GA_IE_RTCP_UDP_PORT = 105, + GA_IE_GERAN_RCV_SIGL_LIST = 106, + GA_IE_UTRAN_RCV_SIGL_LIST = 107, +}; + +/* 11.1.1 GA-RC and GA-CSR Message header IE */ +struct gan_rc_csr_hdr { + uint16_t len; + uint8_t pdisc:4, + skip_ind:4; + uint8_t msg_type; +} __attribute__((packed)); + +#endif /* PROTO_GSM_44_318_H */ |