diff options
| author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-08-29 13:18:56 +0200 | 
|---|---|---|
| committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-08-29 13:56:17 +0200 | 
| commit | 0318f6b6cae7a3f2d786a1caee519241d81d6745 (patch) | |
| tree | 2a9209f7c43ad2c543a19ef2c0cb70647523dbfe | |
| parent | b7f191febb639d917b5f4290c73cb1620d9cb2f4 (diff) | |
IuPS: add GMM Service Request related constants and value_str
Change-Id: Ie023fc78099932f95cc8f1b3a04fe25dfd14bc35
| -rw-r--r-- | include/osmocom/gsm/protocol/gsm_04_08_gprs.h | 16 | ||||
| -rw-r--r-- | src/gsm/gsm_04_08_gprs.c | 11 | ||||
| -rw-r--r-- | src/gsm/libosmogsm.map | 1 | 
3 files changed, 28 insertions, 0 deletions
| diff --git a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h index af828fb7..cda1e48b 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08_gprs.h +++ b/include/osmocom/gsm/protocol/gsm_04_08_gprs.h @@ -73,6 +73,11 @@ extern const struct value_string *gprs_det_t_mt_strs;  extern const struct value_string *gprs_upd_t_strs; +/* Table 10.4 in 3GPP TS 24.008 (successor to 04.08) */ +#define GSM48_MT_GMM_SERVICE_REQ	0x0c +#define GSM48_MT_GMM_SERVICE_ACK	0x0d +#define GSM48_MT_GMM_SERVICE_REJ	0x0e +  enum gsm48_gprs_ie_mm {  	GSM48_IE_GMM_CIPH_CKSN		= 0x08, /* 10.5.1.2 */  	GSM48_IE_GMM_TIMER_READY	= 0x17,	/* 10.5.7.3 */ @@ -365,6 +370,17 @@ enum gsm48_qos_sdu_err {  	GSM48_QOS_SERR_1e_1		= 0x07,  }; +/* 3GPP 24.008 / Chapter 10.5.5.20 / Table 10.5.153a */ +enum gsm48_gmm_service_type { +	GPRS_SERVICE_T_SIGNALLING	= 0x00, +	GPRS_SERVICE_T_DATA		= 0x01, +	GPRS_SERVICE_T_PAGING_RESP	= 0x02, +	GPRS_SERVICE_T_MBMS_MC_SERV	= 0x03, +	GPRS_SERVICE_T_MBMS_BC_SERV	= 0x04, +}; + +extern const struct value_string *gprs_service_t_strs; +  bool gprs_ms_net_cap_gea_supported(const uint8_t *ms_net_cap, uint8_t cap_len,  				   enum gprs_ciph_algo gea); diff --git a/src/gsm/gsm_04_08_gprs.c b/src/gsm/gsm_04_08_gprs.c index 7cfcc80c..14207f8f 100644 --- a/src/gsm/gsm_04_08_gprs.c +++ b/src/gsm/gsm_04_08_gprs.c @@ -199,3 +199,14 @@ const struct value_string gprs_det_t_mt_strs_[] = {  };  const struct value_string *gprs_det_t_mt_strs = gprs_det_t_mt_strs_; + +const struct value_string gprs_service_t_strs_[] = { +	{ 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 } +}; + +const struct value_string *gprs_service_t_strs = gprs_service_t_strs_; diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index f530b6fa..dc8559fd 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -56,6 +56,7 @@ gprs_att_t_strs;  gprs_upd_t_strs;  gprs_det_t_mo_strs;  gprs_det_t_mt_strs; +gprs_service_t_strs;  gsm0341_build_msg; | 
