update TS 08.08 header + TLV definitions to TS 48.008 / 11.7.0

This adds support for A-over-IP and LCLS related message/IEI
definitions.

Old definitions are in decimal, which is very hard (at least for me)
to compare with the binary tables in the spec.  Hex is much easier
to manually compare for completeness/correctness.  I didn't touch
the existing definitions, but think they should move to hex, too.
diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c
index 06ee18e..d055da1 100644
--- a/src/gsm/gsm0808.c
+++ b/src/gsm/gsm0808.c
@@ -295,32 +295,136 @@
 	return msg;
 }
 
+/* As per 3GPP TS 48.008 version 11.7.0 Release 11 */
 static const struct tlv_definition bss_att_tlvdef = {
 	.def = {
+		[GSM0808_IE_CIRCUIT_IDENTITY_CODE]  = { TLV_TYPE_FIXED, 2 },
+		[GSM0808_IE_CONNECTION_RELEASE_RQSTED]	= { TLV_TYPE_TV },
+		[GSM0808_IE_RESOURCE_AVAILABLE]		= { TLV_TYPE_FIXED, 21 },
+		[GSM0808_IE_CAUSE]			= { TLV_TYPE_TLV },
 		[GSM0808_IE_IMSI]		    = { TLV_TYPE_TLV },
 		[GSM0808_IE_TMSI]		    = { TLV_TYPE_TLV },
-		[GSM0808_IE_CELL_IDENTIFIER_LIST]   = { TLV_TYPE_TLV },
-		[GSM0808_IE_CHANNEL_NEEDED]	    = { TLV_TYPE_TV },
-		[GSM0808_IE_EMLPP_PRIORITY]	    = { TLV_TYPE_TV },
-		[GSM0808_IE_CHANNEL_TYPE]	    = { TLV_TYPE_TLV },
-		[GSM0808_IE_PRIORITY]		    = { TLV_TYPE_TLV },
-		[GSM0808_IE_CIRCUIT_IDENTITY_CODE]  = { TLV_TYPE_FIXED, 2 },
-		[GSM0808_IE_DOWNLINK_DTX_FLAG]	    = { TLV_TYPE_TV },
-		[GSM0808_IE_INTERFERENCE_BAND_TO_USE] = { TLV_TYPE_TV },
-		[GSM0808_IE_CLASSMARK_INFORMATION_T2] = { TLV_TYPE_TLV },
-		[GSM0808_IE_GROUP_CALL_REFERENCE]   = { TLV_TYPE_TLV },
-		[GSM0808_IE_TALKER_FLAG]	    = { TLV_TYPE_T },
-		[GSM0808_IE_CONFIG_EVO_INDI]	    = { TLV_TYPE_TV },
-		[GSM0808_IE_LSA_ACCESS_CTRL_SUPPR]  = { TLV_TYPE_TV },
-		[GSM0808_IE_SERVICE_HANDOVER]	    = { TLV_TYPE_TLV },
-		[GSM0808_IE_ENCRYPTION_INFORMATION] = { TLV_TYPE_TLV },
-		[GSM0808_IE_CIPHER_RESPONSE_MODE]   = { TLV_TYPE_TV },
-		[GSM0808_IE_CELL_IDENTIFIER]	    = { TLV_TYPE_TLV },
-		[GSM0808_IE_CHOSEN_CHANNEL]	    = { TLV_TYPE_TV },
-		[GSM0808_IE_LAYER_3_INFORMATION]    = { TLV_TYPE_TLV },
+		[GSM0808_IE_NUMBER_OF_MSS]		= { TLV_TYPE_TV },
 		[GSM0808_IE_LAYER_3_HEADER_INFORMATION] = { TLV_TYPE_TLV },
-		[GSM0808_IE_SPEECH_VERSION]         = { TLV_TYPE_TV },
+		[GSM0808_IE_ENCRYPTION_INFORMATION] = { TLV_TYPE_TLV },
+		[GSM0808_IE_CHANNEL_TYPE]	    = { TLV_TYPE_TLV },
+		[GSM0808_IE_PERIODICITY]		= { TLV_TYPE_TV },
+		[GSM0808_IE_EXTENDED_RESOURCE_INDICATOR]= { TLV_TYPE_TV },
+		[GSM0808_IE_TOTAL_RESOURCE_ACCESSIBLE]	= { TLV_TYPE_FIXED, 4 },
+		[GSM0808_IE_LSA_IDENTIFIER]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_LSA_IDENTIFIER_LIST]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_LSA_IDENTIFIER_LIST]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_CELL_IDENTIFIER]	    = { TLV_TYPE_TLV },
+		[GSM0808_IE_PRIORITY]		    = { TLV_TYPE_TLV },
+		[GSM0808_IE_CLASSMARK_INFORMATION_T2] = { TLV_TYPE_TLV },
+		[GSM0808_IE_CLASSMARK_INFORMATION_T3] = { TLV_TYPE_TLV },
+		[GSM0808_IE_INTERFERENCE_BAND_TO_USE] = { TLV_TYPE_TV },
+		[GSM0808_IE_RR_CAUSE]			= { TLV_TYPE_TV },
+		[GSM0808_IE_LSA_INFORMATION]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_LAYER_3_INFORMATION]    = { TLV_TYPE_TLV },
+		[GSM0808_IE_DLCI]			= { TLV_TYPE_TV },
+		[GSM0808_IE_DOWNLINK_DTX_FLAG]	    = { TLV_TYPE_TV },
+		[GSM0808_IE_CELL_IDENTIFIER_LIST]   = { TLV_TYPE_TLV },
+		[GSM0808_IE_CELL_ID_LIST_SEGMENT]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_CELL_ID_LIST_SEG_EST_CELLS]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_CELL_ID_LIST_SEG_CELLS_TBE]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_CELL_ID_LIST_SEG_REL_CELLS]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_CELL_ID_LIST_SEG_NE_CELLS]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_RESPONSE_RQST]		= { TLV_TYPE_T },
+		[GSM0808_IE_RESOURCE_INDICATION_METHOD]	= { TLV_TYPE_TV },
+		[GSM0808_IE_CLASSMARK_INFORMATION_TYPE_1] = { TLV_TYPE_TV },
+		[GSM0808_IE_CIRCUIT_IDENTITY_CODE_LIST]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_DIAGNOSTIC]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_CHOSEN_CHANNEL]	    = { TLV_TYPE_TV },
+		[GSM0808_IE_CIPHER_RESPONSE_MODE]   = { TLV_TYPE_TV },
+		[GSM0808_IE_LAYER_3_MESSAGE_CONTENTS] = { TLV_TYPE_TLV },
+		[GSM0808_IE_CHANNEL_NEEDED]	    = { TLV_TYPE_TV },
+		[GSM0808_IE_TRACE_TYPE]			= { TLV_TYPE_TV },
+		[GSM0808_IE_TRIGGERID]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_TRACE_REFERENCE]		= { TLV_TYPE_TV },
+		[GSM0808_IE_TRANSACTIONID]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_MOBILE_IDENTITY]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_OMCID]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_FORWARD_INDICATOR]		= { TLV_TYPE_TV },
 		[GSM0808_IE_CHOSEN_ENCR_ALG]        = { TLV_TYPE_TV },
+		[GSM0808_IE_CIRCUIT_POOL]		= { TLV_TYPE_TV },
+		[GSM0808_IE_CIRCUIT_POOL_LIST]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_TIME_INDICATION]		= { TLV_TYPE_TV },
+		[GSM0808_IE_RESOURCE_SITUATION]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_CURRENT_CHANNEL_TYPE_1]	= { TLV_TYPE_TV },
+		[GSM0808_IE_QUEUEING_INDICATOR]		= { TLV_TYPE_TV },
+		[GSM0808_IE_SPEECH_VERSION]         = { TLV_TYPE_TV },
+		[GSM0808_IE_ASSIGNMENT_REQUIREMENT]	= { TLV_TYPE_TV },
+		[GSM0808_IE_TALKER_FLAG]	    = { TLV_TYPE_T },
+		[GSM0808_IE_GROUP_CALL_REFERENCE]   = { TLV_TYPE_TLV },
+		[GSM0808_IE_EMLPP_PRIORITY]	    = { TLV_TYPE_TV },
+		[GSM0808_IE_CONFIG_EVO_INDI]	    = { TLV_TYPE_TV },
+		[GSM0808_IE_OLD_BSS_TO_NEW_BSS_INFORMATION] = { TLV_TYPE_TLV },
+		[GSM0808_IE_LCS_QOS]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_LSA_ACCESS_CTRL_SUPPR]  = { TLV_TYPE_TV },
+		[GSM0808_IE_LCS_PRIORITY]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_LOCATION_TYPE]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_LOCATION_ESTIMATE]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_POSITIONING_DATA]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_LCS_CAUSE]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_APDU]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_NETWORK_ELEMENT_IDENTITY]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_GPS_ASSISTANCE_DATA]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_DECIPHERING_KEYS]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_RETURN_ERROR_RQST]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_RETURN_ERROR_CAUSE]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_SEGMENTATION]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_SERVICE_HANDOVER]	    = { TLV_TYPE_TLV },
+		[GSM0808_IE_SOURCE_RNC_TO_TARGET_RNC_TRANSPARENT_UMTS]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_SOURCE_RNC_TO_TARGET_RNC_TRANSPARENT_CDMA2000]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_GERAN_CLASSMARK]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_GERAN_BSC_CONTAINER]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_NEW_BSS_TO_OLD_BSS_INFO]	= { TLV_TYPE_TLV },
+		[GSM0800_IE_INTER_SYSTEM_INFO]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_SNA_ACCESS_INFO]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_VSTK_RAND_INFO]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_PAGING_INFO]		= { TLV_TYPE_TV },
+		[GSM0808_IE_IMEI]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_VELOCITY_ESTIMATE]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_VGCS_FEATURE_FLAGS]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_TALKER_PRIORITY]		= { TLV_TYPE_TV },
+		[GSM0808_IE_EMERGENCY_SET_INDICATION]	= { TLV_TYPE_T },
+		[GSM0808_IE_TALKER_IDENTITY]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_SMS_TO_VGCS]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_VGCS_TALKER_MODE]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_VGCS_VBS_CELL_STATUS]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_GANSS_ASSISTANCE_DATA]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_GANSS_POSITIONING_DATA]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_GANSS_LOCATION_TYPE]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_APP_DATA]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_DATA_IDENTITY]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_APP_DATA_INFO]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_MSISDN]			= { TLV_TYPE_TLV },
+		[GSM0808_IE_AOIP_TRASP_ADDR]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_SPEECH_CODEC_LIST]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_SPEECH_CODEC]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_CALL_ID]			= { TLV_TYPE_FIXED, 4 },
+		[GSM0808_IE_CALL_ID_LIST]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_A_IF_SEL_FOR_RESET]		= { TLV_TYPE_TV },
+		[GSM0808_IE_KC_128]			= { TLV_TYPE_FIXED, 16 },
+		[GSM0808_IE_CSG_IDENTIFIER]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_REDIR_ATTEMPT_FLAG]		= { TLV_TYPE_T },
+		[GSM0808_IE_REROUTE_REJ_CAUSE]		= { TLV_TYPE_TV },
+		[GSM0808_IE_SEND_SEQ_NUM]		= { TLV_TYPE_TV },
+		[GSM0808_IE_REROUTE_COMPL_OUTCOME]	= { TLV_TYPE_TV },
+		[GSM0808_IE_GLOBAL_CALL_REF]		= { TLV_TYPE_TLV },
+		[GSM0808_IE_LCLS_CONFIG]		= { TLV_TYPE_TV },
+		[GSM0808_IE_LCLS_CONN_STATUS_CTRL]	= { TLV_TYPE_TV },
+		[GSM0808_IE_LCLS_CORR_NOT_NEEDED]	= { TLV_TYPE_TV },
+		[GSM0808_IE_LCLS_BSS_STATUS]		= { TLV_TYPE_TV },
+		[GSM0808_IE_LCLS_BREAK_REQ]		= { TLV_TYPE_TV },
+		[GSM0808_IE_CSFB_INDICATION]		= { TLV_TYPE_T },
+		[GSM0808_IE_CS_TO_PS_SRVCC]		= { TLV_TYPE_T },
+		[GSM0808_IE_SRC_ENB_TO_TGT_ENB_TRANSP]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_CS_TO_PS_SRVCC_IND]		= { TLV_TYPE_T },
+		[GSM0808_IE_CN_TO_MS_TRANSP_INFO]	= { TLV_TYPE_TLV },
+		[GSM0808_IE_SELECTED_PLMN_ID]		= { TLV_TYPE_FIXED, 3 },
+		[GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID]	= { TLV_TYPE_FIXED, 3 },
 	},
 };
 
@@ -333,6 +437,7 @@
 	{ BSS_MAP_MSG_ASSIGMENT_RQST,		"ASSIGNMENT REQ" },
 	{ BSS_MAP_MSG_ASSIGMENT_COMPLETE,	"ASSIGNMENT COMPL" },
 	{ BSS_MAP_MSG_ASSIGMENT_FAILURE,	"ASSIGNMENT FAIL" },
+	{ BSS_MAP_MSG_CHAN_MOD_RQST,		"CHANNEL MODIFY REQUEST" },
 
 	{ BSS_MAP_MSG_HANDOVER_RQST,		"HANDOVER REQ" },
 	{ BSS_MAP_MSG_HANDOVER_REQUIRED,	"HANDOVER REQUIRED" },
@@ -346,6 +451,10 @@
 	{ BSS_MAP_MSG_HANDOVER_CANDIDATE_RESPONSE, "HANDOVER CAND RESP" },
 	{ BSS_MAP_MSG_HANDOVER_REQUIRED_REJECT,	"HANDOVER REQ REJ" },
 	{ BSS_MAP_MSG_HANDOVER_DETECT,		"HANDOVER DETECT" },
+	{ BSS_MAP_MSG_INT_HANDOVER_REQUIRED,	"INT HANDOVER REQ" },
+	{ BSS_MAP_MSG_INT_HANDOVER_REQUIRED_REJ,"INT HANDOVER REQ REJ" },
+	{ BSS_MAP_MSG_INT_HANDOVER_CMD,		"INT HANDOVER CMD" },
+	{ BSS_MAP_MSG_INT_HANDOVER_ENQUIRY,	"INT HANDOVER ENQ" },
 
 	{ BSS_MAP_MSG_CLEAR_CMD,		"CLEAR COMMAND" },
 	{ BSS_MAP_MSG_CLEAR_COMPLETE,		"CLEAR COMPLETE" },
@@ -361,6 +470,8 @@
 	{ BSS_MAP_MSG_PERFORM_LOCATION_RESPONSE, "PERFORM LOC RESP" },
 	{ BSS_MAP_MSG_PERFORM_LOCATION_ABORT,	"PERFORM LOC ABORT" },
 	{ BSS_MAP_MSG_COMMON_ID,		"COMMON ID" },
+	{ BSS_MAP_MSG_REROUTE_CMD,		"REROUTE COMMAND" },
+	{ BSS_MAP_MSG_REROUTE_COMPLETE,		"REROUTE COMPLETE" },
 
 	{ BSS_MAP_MSG_RESET,			"RESET" },
 	{ BSS_MAP_MSG_RESET_ACKNOWLEDGE,	"RESET ACK" },
@@ -370,6 +481,8 @@
 	{ BSS_MAP_MSG_MSC_INVOKE_TRACE,		"MSC INVOKE TRACE" },
 	{ BSS_MAP_MSG_BSS_INVOKE_TRACE,		"BSS INVOKE TRACE" },
 	{ BSS_MAP_MSG_CONNECTIONLESS_INFORMATION, "CONNLESS INFO" },
+	{ BSS_MAP_MSG_RESET_IP_RSRC,		"RESET IP RESOURCE" },
+	{ BSS_MAP_MSG_RESET_IP_RSRC_ACK,	"RESET IP RESOURCE ACK" },
 
 	{ BSS_MAP_MSG_BLOCK,			"BLOCK" },
 	{ BSS_MAP_MSG_BLOCKING_ACKNOWLEDGE,	"BLOCK ACK" },
@@ -395,7 +508,27 @@
 	{ BSS_MAP_MSG_CIPHER_MODE_REJECT,	"CIPHER MODE REJECT" },
 	{ BSS_MAP_MSG_LOAD_INDICATION,		"LOAD IND" },
 
-	/* FIXME: VGCS/VBS */
+	{ BSS_MAP_MSG_VGCS_VBS_SETUP,		"VGCS/VBS SETUP" },
+	{ BSS_MAP_MSG_VGCS_VBS_SETUP_ACK,	"VGCS/VBS SETUP ACK" },
+	{ BSS_MAP_MSG_VGCS_VBS_SETUP_REFUSE,	"VGCS/VBS SETUP REFUSE" },
+	{ BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_RQST,	"VGCS/VBS ASSIGN REQ" },
+	{ BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_RESULT, "VGCS/VBS ASSIGN RES" },
+	{ BSS_MAP_MSG_VGCS_VBS_ASSIGNMENT_FAILURE, "VGCS/VBS ASSIGN FAIL" },
+	{ BSS_MAP_MSG_VGCS_VBS_QUEUING_INDICATION, "VGCS/VBS QUEUING IND" },
+	{ BSS_MAP_MSG_UPLINK_RQST,		"UPLINK REQ" },
+	{ BSS_MAP_MSG_UPLINK_RQST_ACKNOWLEDGE,	"UPLINK REQ ACK" },
+	{ BSS_MAP_MSG_UPLINK_RQST_CONFIRMATION,	"UPLINK REQ CONF" },
+	{ BSS_MAP_MSG_UPLINK_RELEASE_INDICATION,"UPLINK REL IND" },
+	{ BSS_MAP_MSG_UPLINK_REJECT_CMD,	"UPLINK REJ CMD" },
+	{ BSS_MAP_MSG_UPLINK_RELEASE_CMD,	"UPLINK REL CMD" },
+	{ BSS_MAP_MSG_UPLINK_SEIZED_CMD,	"UPLINK SEIZED CMD" },
+	{ BSS_MAP_MSG_VGCS_ADDL_INFO,		"VGCS ADDL INFO" },
+	{ BSS_MAP_MSG_NOTIFICATION_DATA,	"NOTIF DATA" },
+	{ BSS_MAP_MSG_UPLINK_APP_DATA,		"UPLINK APP DATA" },
+
+	{ BSS_MAP_MSG_LCLS_CONNECT_CTRL,	"LCLS-CONNECT-CONTROL" },
+	{ BSS_MAP_MSG_LCLS_CONNECT_CTRL_ACK,	"CLS-CONNECT-CONTROL-ACK" },
+	{ BSS_MAP_MSG_LCLS_NOTIFICATION,	"LCLS-NOTIFICATION" },
 
 	{ 0, NULL }
 };