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 */  | 
