changeset 1453:05185ab84cf8

merge
author Thomas Klausner <tk@giga.or.at>
date Thu, 27 Feb 2020 15:46:27 +0100
parents 159d80986d85 (current diff) ffe2f27e00e5 (diff)
children 3afc9a884160
files
diffstat 2 files changed, 1254 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Thu Feb 27 15:41:12 2020 +0100
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Thu Feb 27 15:46:27 2020 +0100
@@ -144,7 +144,10 @@
 
 static int dict_dcca_3gpp_entry(char * conffile)
 {
-	/* Applications section */
+	/*==================================================================*/
+	/* Applications section                                             */
+	/*==================================================================*/
+
 	{		
                 /* Create the vendors */
                 {
@@ -159,6 +162,10 @@
 	}
 	
 
+	/*==================================================================*/
+	/* Types section                                                    */
+	/*==================================================================*/
+
 	struct dict_object * Address_type;
 	struct dict_object * DiameterIdentity_type;
 	struct dict_object * DiameterURI_type;
@@ -173,6 +180,185 @@
 	CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Time", &Time_type);
 	CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "UTF8String", &UTF8String_type);
 
+
+	/*==================================================================*/
+	/* AVPs section                                                     */
+	/*==================================================================*/
+
+
+	/* 3GPP Experimental-Result-Code ENUMVAL Unsigned32                 */
+	/* 3GPP TS 29.230 V15.7.0 (2019-12) section 8.1                     */
+	{
+		struct dict_object 	*type;
+		struct dict_type_data 	 tdata = { AVP_TYPE_UNSIGNED32,	"Enumerated(3GPP/Experimental-Result-Code)", NULL, NULL};
+		struct dict_enumval_data tvals[] = {
+			enumval_def_u32(2001,	"DIAMETER_FIRST_REGISTRATION"),
+			enumval_def_u32(2002,	"DIAMETER_SUBSEQUENT_REGISTRATION"),
+			enumval_def_u32(2003,	"DIAMETER_UNREGISTERED_SERVICE"),
+			/*
+			 * 3GPP TS 29.229 V5.3.0 (2003-03) renamed 2004 from DIAMETER_SUCCESS_NOT SUPPORTED_USER_DATA.
+			 */
+			enumval_def_u32(2004,	"DIAMETER_SUCCESS_SERVER_NAME_NOT_STORED"),
+			/*
+			 * 3GPP TS 29.229 V5.3.0 (2003-03) renamed 2005 from DIAMETER_SUCCESS_SERVER_NAME_NOT_STORED.
+			 * 3GPP TS 29.229 V7.2.0 (2006-06) deprecated 2005 DIAMETER_SERVER_SELECTION.
+			 */
+			enumval_def_u32(2005,	"DIAMETER_SERVER_SELECTION"),
+			enumval_def_u32(2021,	"DIAMETER_PDP_CONTEXT_DELETION_INDICATION"),
+			enumval_def_u32(2421,	"DIAMETER_QOS_FLOW_DELETION_INDICATION"),
+			enumval_def_u32(4100,	"DIAMETER_USER_DATA_NOT_AVAILABLE"),
+			enumval_def_u32(4101,	"DIAMETER_PRIOR_UPDATE_IN_PROGRESS"),
+			enumval_def_u32(4121,	"DIAMETER_ERROR_OUT_OF_RESOURCES"),
+			enumval_def_u32(4141,	"DIAMETER_PCC_BEARER_EVENT"),
+			enumval_def_u32(4142,	"DIAMETER_BEARER_EVENT"),
+			enumval_def_u32(4143,	"DIAMETER_AN_GW_FAILED"),
+			enumval_def_u32(4144,	"DIAMETER_PENDING_TRANSACTION"),
+			enumval_def_u32(4145,	"DIAMETER_UE_STATUS_SUSPEND"),
+			enumval_def_u32(4181,	"DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE"),
+			enumval_def_u32(4182,	"DIAMETER_ERROR_CAMEL_SUBSCRIPTION_PRESENT"),
+			/*
+			 * DIAMETER_ERROR_ABSENT_USER name conflict between:
+			 * - 3GPP TS 29.173 § 6.3.4.1 DIAMETER_ERROR_ABSENT_USER (4201). (For SLh).
+			 * - 3GPP TS 29.338 § 7.3.3 DIAMETER_ERROR_ABSENT_USER (5550). (For S6c, SGd).
+			 * Rename 4201 from 3GPP TS 29.173 to DIAMETER_ERROR_ABSENT_USER-29.173.
+			 */
+			enumval_def_u32(4201,	"DIAMETER_ERROR_ABSENT_USER-29.173"),
+			enumval_def_u32(4221,	"DIAMETER_ERROR_UNREACHABLE_USER"),
+			enumval_def_u32(4222,	"DIAMETER_ERROR_SUSPENDED_USER"),
+			enumval_def_u32(4223,	"DIAMETER_ERROR_DETACHED_USER"),
+			enumval_def_u32(4224,	"DIAMETER_ERROR_POSITIONING_DENIED"),
+			enumval_def_u32(4225,	"DIAMETER_ERROR_POSITIONING_FAILED"),
+			enumval_def_u32(4226,	"DIAMETER_ERROR_UNKNOWN_UNREACHABLE LCS_CLIENT"),
+			enumval_def_u32(4241,	"DIAMETER_ERROR_NO_AVAILABLE_POLICY_COUNTERS"),
+			enumval_def_u32(4261,	"REQUESTED_SERVICE_TEMPORARILY_NOT_AUTHORIZED"),
+			enumval_def_u32(5001,	"DIAMETER_ERROR_USER_UNKNOWN"),
+			enumval_def_u32(5002,	"DIAMETER_ERROR_IDENTITIES_DONT_MATCH"),
+			enumval_def_u32(5003,	"DIAMETER_ERROR_IDENTITY_NOT_REGISTERED"),
+			enumval_def_u32(5004,	"DIAMETER_ERROR_ROAMING_NOT_ALLOWED"),
+			enumval_def_u32(5005,	"DIAMETER_ERROR_IDENTITY_ALREADY_REGISTERED"),
+			enumval_def_u32(5006,	"DIAMETER_ERROR_AUTH_SCHEME_NOT_SUPPORTED"),
+			enumval_def_u32(5007,	"DIAMETER_ERROR_IN_ASSIGNMENT_TYPE"),
+			enumval_def_u32(5008,	"DIAMETER_ERROR_TOO_MUCH_DATA"),
+			enumval_def_u32(5009,	"DIAMETER_ERROR_NOT_SUPPORTED_USER_DATA"),
+			enumval_def_u32(5011,	"DIAMETER_ERROR_FEATURE_UNSUPPORTED"),
+			enumval_def_u32(5012,	"DIAMETER_ERROR_SERVING_NODE_FEATURE_UNSUPPORTED"),
+			enumval_def_u32(5041,	"DIAMETER_ERROR_USER_NO_WLAN_SUBSCRIPTION"),
+			enumval_def_u32(5042,	"DIAMETER_ERROR_W-APN_UNUSED_BY_USER"),
+			enumval_def_u32(5043,	"DIAMETER_ERROR_NO_ACCESS_INDEPENDENT_SUBSCRIPTION"),
+			enumval_def_u32(5044,	"DIAMETER_ERROR_USER_NO_W-APN_SUBSCRIPTION"),
+			enumval_def_u32(5045,	"DIAMETER_ERROR_UNSUITABLE_NETWORK"),
+			enumval_def_u32(5061,	"INVALID_SERVICE_INFORMATION"),
+			enumval_def_u32(5062,	"FILTER_RESTRICTIONS"),
+			enumval_def_u32(5063,	"REQUESTED_SERVICE_NOT_AUTHORIZED"),
+			enumval_def_u32(5064,	"DUPLICATED_AF_SESSION"),
+			enumval_def_u32(5065,	"IP-CAN_SESSION_NOT_AVAILABLE"),
+			enumval_def_u32(5066,	"UNAUTHORIZED_NON_EMERGENCY_SESSION"),
+			enumval_def_u32(5067,	"UNAUTHORIZED_SPONSORED_DATA_CONNECTIVITY"),
+			enumval_def_u32(5068,	"TEMPORARY_NETWORK_FAILURE"),
+			enumval_def_u32(5100,	"DIAMETER_ERROR_USER_DATA_NOT_RECOGNIZED"),
+			enumval_def_u32(5101,	"DIAMETER_ERROR_OPERATION_NOT_ALLOWED"),
+			enumval_def_u32(5102,	"DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ"),
+			enumval_def_u32(5103,	"DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED"),
+			enumval_def_u32(5104,	"DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED"),
+			enumval_def_u32(5105,	"DIAMETER_ERROR_TRANSPARENT_DATA OUT_OF_SYNC"),
+			enumval_def_u32(5106,	"DIAMETER_ERROR_SUBS_DATA_ABSENT"),
+			enumval_def_u32(5107,	"DIAMETER_ERROR_NO_SUBSCRIPTION_TO_DATA"),
+			enumval_def_u32(5108,	"DIAMETER_ERROR_DSAI_NOT_AVAILABLE"),
+			enumval_def_u32(5120,	"DIAMETER_ERROR_START_INDICATION"),
+			enumval_def_u32(5121,	"DIAMETER_ERROR_STOP_INDICATION"),
+			enumval_def_u32(5122,	"DIAMETER_ERROR_UNKNOWN_MBMS_BEARER_SERVICE"),
+			enumval_def_u32(5123,	"DIAMETER_ERROR_SERVICE_AREA"),
+			enumval_def_u32(5140,	"DIAMETER_ERROR_INITIAL_PARAMETERS"),
+			enumval_def_u32(5141,	"DIAMETER_ERROR_TRIGGER_EVENT"),
+			enumval_def_u32(5142,	"DIAMETER_PCC_RULE_EVENT"),
+			enumval_def_u32(5143,	"DIAMETER_ERROR_BEARER_NOT_AUTHORIZED"),
+			enumval_def_u32(5144,	"DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED"),
+			enumval_def_u32(5145,	"DIAMETER_QOS_RULE_EVENT"),
+			enumval_def_u32(5147,	"DIAMETER_ERROR_CONFLICTING_REQUEST"),
+			enumval_def_u32(5148,	"DIAMETER_ADC_RULE_EVENT"),
+			enumval_def_u32(5149,	"DIAMETER_ERROR_NBIFOM_NOT_AUTHORIZED"),
+			enumval_def_u32(5401,	"DIAMETER_ERROR_IMPI_UNKNOWN"),
+			enumval_def_u32(5402,	"DIAMETER_ERROR_NOT_AUTHORIZED"),
+			enumval_def_u32(5403,	"DIAMETER_ERROR_TRANSACTION_IDENTIFIER_INVALID"),
+			enumval_def_u32(5420,	"DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION"),
+			enumval_def_u32(5421,	"DIAMETER_ERROR_RAT_NOT_ALLOWED"),
+			enumval_def_u32(5422,	"DIAMETER_ERROR_EQUIPMENT_UNKNOWN"),
+			enumval_def_u32(5423,	"DIAMETER_ERROR_UNKNOWN_SERVING_NODE"),
+			enumval_def_u32(5450,	"DIAMETER_ERROR_USER_NO_NON_3GPP_SUBSCRIPTION"),
+			enumval_def_u32(5451,	"DIAMETER_ERROR_USER_NO_APN_SUBSCRIPTION"),
+			enumval_def_u32(5452,	"DIAMETER_ERROR_RAT_TYPE_NOT_ALLOWED"),
+			enumval_def_u32(5453,	"DIAMETER_ERROR_LATE_OVERLAPPING_REQUEST"),
+			enumval_def_u32(5454,	"DIAMETER_ERROR_TIMED_OUT_REQUEST"),
+			enumval_def_u32(5470,	"DIAMETER_ERROR_SUBSESSION"),
+			enumval_def_u32(5471,	"DIAMETER_ERROR_ONGOING_SESSION_ESTABLISHMENT"),
+			enumval_def_u32(5490,	"DIAMETER_ERROR_UNAUTHORIZED_REQUESTING_NETWORK"),
+			enumval_def_u32(5510,	"DIAMETER_ERROR_UNAUTHORIZED_REQUESTING_ENTITY"),
+			enumval_def_u32(5511,	"DIAMETER_ERROR_UNAUTHORIZED_SERVICE"),
+			enumval_def_u32(5512,	"DIAMETER_ERROR_REQUESTED_RANGE_IS_NOT ALLOWED"),
+			enumval_def_u32(5513,	"DIAMETER_ERROR_CONFIGURATION_EVENT_STORAGE_NOT_SUCCESSFUL"),
+			enumval_def_u32(5514,	"DIAMETER_ERROR_CONFIGURATION_EVENT_NON_EXISTANT"),
+			enumval_def_u32(5515,	"DIAMETER_ERROR_SCEF_REFERENCE_ID_UNKNOWN"),
+			enumval_def_u32(5530,	"DIAMETER_ERROR_INVALID_SME_ADDRESS"),
+			enumval_def_u32(5531,	"DIAMETER_ERROR_SC_CONGESTION"),
+			enumval_def_u32(5532,	"DIAMETER_ERROR_SM_PROTOCOL"),
+			enumval_def_u32(5533,	"DIAMETER_ERROR_TRIGGER_REPLACE_FAILURE"),
+			enumval_def_u32(5534,	"DIAMETER_ERROR_TRIGGER_RECALL_FAILURE"),
+			enumval_def_u32(5535,	"DIAMETER_ERROR_ORIGINAL_MESSAGE_NOT_PENDING"),
+			enumval_def_u32(5550,	"DIAMETER_ERROR_ABSENT_USER"),
+			enumval_def_u32(5551,	"DIAMETER_ERROR_USER_BUSY_FOR_MT_SMS"),
+			enumval_def_u32(5552,	"DIAMETER_ERROR_FACILITY_NOT_SUPPORTED"),
+			enumval_def_u32(5553,	"DIAMETER_ERROR_ILLEGAL_USER"),
+			enumval_def_u32(5554,	"DIAMETER_ERROR_ILLEGAL_EQUIPMENT"),
+			enumval_def_u32(5555,	"DIAMETER_ERROR_SM_DELIVERY_FAILURE"),
+			enumval_def_u32(5556,	"DIAMETER_ERROR_SERVICE_NOT_SUBSCRIBED"),
+			enumval_def_u32(5557,	"DIAMETER_ERROR_SERVICE_BARRED"),
+			enumval_def_u32(5558,	"DIAMETER_ERROR_MWD_LIST_FULL"),
+			enumval_def_u32(5570,	"DIAMETER_ERROR_UNKNOWN_POLICY_COUNTERS"),
+			enumval_def_u32(5590,	"DIAMETER_ERROR_ORIGIN_ALUID_UNKNOWN"),
+			enumval_def_u32(5591,	"DIAMETER_ERROR_TARGET_ALUID_UNKNOWN"),
+			enumval_def_u32(5592,	"DIAMETER_ERROR_PFID_UNKNOWN"),
+			enumval_def_u32(5593,	"DIAMETER_ERROR_APP_REGISTER_REJECT"),
+			enumval_def_u32(5594,	"DIAMETER_ERROR_PROSE_MAP_REQUEST_DISALLOWED"),
+			enumval_def_u32(5595,	"DIAMETER_ERROR_MAP_REQUEST_REJECT"),
+			enumval_def_u32(5596,	"DIAMETER_ERROR_REQUESTING_RPAUID_UNKNOWN"),
+			enumval_def_u32(5597,	"DIAMETER_ERROR_UNKNOWN_OR_INVALID_TARGET_SET"),
+			enumval_def_u32(5598,	"DIAMETER_ERROR_MISSING_APPLICATION_DATA"),
+			enumval_def_u32(5599,	"DIAMETER_ERROR_AUTHORIZATION_REJECT"),
+			enumval_def_u32(5600,	"DIAMETER_ERROR_DISCOVERY_NOT_PERMITTED"),
+			enumval_def_u32(5601,	"DIAMETER_ERROR_TARGET_RPAUID_UNKNOWN"),
+			enumval_def_u32(5602,	"DIAMETER_ERROR_INVALID_APPLICATION_DATA"),
+			enumval_def_u32(5610,	"DIAMETER_ERROR_UNKNOWN_PROSE_SUBSCRIPTION"),
+			enumval_def_u32(5611,	"DIAMETER_ERROR_PROSE_NOT_ALLOWED"),
+			enumval_def_u32(5612,	"DIAMETER_ERROR_UE_LOCATION_UNKNOWN"),
+			enumval_def_u32(5630,	"DIAMETER_ERROR_NO_ASSOCIATED_DISCOVERY_FILTER"),
+			enumval_def_u32(5631,	"DIAMETER_ERROR_ANNOUNCING_UNAUTHORIZED_IN_PLMN"),
+			enumval_def_u32(5632,	"DIAMETER_ERROR_INVALID_APPLICATION_CODE"),
+			enumval_def_u32(5633,	"DIAMETER_ERROR_PROXIMITY_UNAUTHORIZED"),
+			enumval_def_u32(5634,	"DIAMETER_ERROR_PROXIMITY_REJECTED"),
+			enumval_def_u32(5635,	"DIAMETER_ERROR_NO_PROXIMITY_REQUEST"),
+			enumval_def_u32(5636,	"DIAMETER_ERROR_UNAUTHORIZED_SERVICE_IN_THIS_PLMN"),
+			enumval_def_u32(5637,	"DIAMETER_ERROR_PROXIMITY_CANCELLED"),
+			enumval_def_u32(5638,	"DIAMETER_ERROR_INVALID_TARGET_PDUID"),
+			enumval_def_u32(5639,	"DIAMETER_ERROR_INVALID_TARGET_RPAUID"),
+			enumval_def_u32(5640,	"DIAMETER_ERROR_NO_ASSOCIATED_RESTRICTED_CODE"),
+			enumval_def_u32(5641,	"DIAMETER_ERROR_INVALID_DISCOVERY_TYPE"),
+			enumval_def_u32(5650,	"DIAMETER_ERROR_REQUESTED_LOCATION_NOT_SERVED"),
+			enumval_def_u32(5651,	"DIAMETER_ERROR_INVALID_EPS_BEARER"),
+			enumval_def_u32(5652,	"DIAMETER_ERROR_NIDD_CONFIGURATION_NOT_AVAILABLE"),
+			enumval_def_u32(5653,	"DIAMETER_ERROR_USER_TEMPORARILY_UNREACHABLE"),
+			enumval_def_u32(5670,	"DIAMETER_ERROR_UNKNKOWN_DATA"),
+			enumval_def_u32(5671,	"DIAMETER_ERROR_REQUIRED_KEY_NOT_PROVIDED"),
+			enumval_def_u32(5690,	"DIAMETER_ERROR_UNKNOWN_V2X_SUBSCRIPTION"),
+			enumval_def_u32(5691,	"DIAMETER_ERROR_V2X_NOT_ALLOWED"),
+		};
+		int i;
+		/* Create the Enumerated type and enumerated values */
+		CHECK_dict_new( DICT_TYPE, &tdata , NULL, &type);
+		for (i = 0; i < sizeof(tvals) / sizeof(tvals[0]); i++) {
+			CHECK_dict_new( DICT_ENUMVAL, &tvals[i], type, NULL);
+		}
+	}
+
 	/*==================================================================*/
 	/* Start of generated data.                                         */
 	/*                                                                  */
@@ -182,9 +368,11 @@
 	/* Do not modify; modify the source .org file instead.              */
 	/*==================================================================*/
 
+
 	/* 3GPP 29.061-c00 (12.0.0 2012.12.20)                              */
 	/* 3GPP 29.061 is not very clear and self-inconsistent about M      */
 	/* for this reason, other sources are assumed more trustworthy      */
+
 	/* M inconsistently specified                                       */
 	/* 3GPP-IMSI, UTF8String, code 1, section 16.4.7                    */
 	{
@@ -882,7 +1070,340 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+
+	/* 3GPP TS 29.128 V15.6.0 (2019-09)                                 */
+	/* From 3GPP 29128-f60.docx                                         */
+
+	/* Communication-Failure-Information, Grouped, code 4300, section 6.4.4 */
+	{
+		struct dict_avp_data data = {
+			4300,	/* Code */
+			10415,	/* Vendor */
+			"Communication-Failure-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Cause-Type, Unsigned32, code 4301, section 6.4.5                 */
+	{
+		struct dict_avp_data data = {
+			4301,	/* Code */
+			10415,	/* Vendor */
+			"Cause-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* S1AP-Cause, Unsigned32, code 4302, section 6.4.6                 */
+	{
+		struct dict_avp_data data = {
+			4302,	/* Code */
+			10415,	/* Vendor */
+			"S1AP-Cause",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* RANAP-Cause, Unsigned32, code 4303, section 6.4.7                */
+	{
+		struct dict_avp_data data = {
+			4303,	/* Code */
+			10415,	/* Vendor */
+			"RANAP-Cause",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* BSSGP-Cause, Unsigned32, code 4309, section 6.4.8                */
+	{
+		struct dict_avp_data data = {
+			4309,	/* Code */
+			10415,	/* Vendor */
+			"BSSGP-Cause",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* GMM-Cause, Unsigned32, code 4304, section 6.4.9                  */
+	{
+		struct dict_avp_data data = {
+			4304,	/* Code */
+			10415,	/* Vendor */
+			"GMM-Cause",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SM-Cause, Unsigned32, code 4305, section 6.4.10                  */
+	{
+		struct dict_avp_data data = {
+			4305,	/* Code */
+			10415,	/* Vendor */
+			"SM-Cause",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Number-Of-UE-Per-Location-Configuration, Grouped, code 4306, section 6.4.11 */
+	{
+		struct dict_avp_data data = {
+			4306,	/* Code */
+			10415,	/* Vendor */
+			"Number-Of-UE-Per-Location-Configuration",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Number-Of-UE-Per-Location-Report, Grouped, code 4307, section 6.4.12 */
+	{
+		struct dict_avp_data data = {
+			4307,	/* Code */
+			10415,	/* Vendor */
+			"Number-Of-UE-Per-Location-Report",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* UE-Count, Unsigned32, code 4308, section 6.4.13                  */
+	{
+		struct dict_avp_data data = {
+			4308,	/* Code */
+			10415,	/* Vendor */
+			"UE-Count",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Connection-Action, Unsigned32, code 4314, section 6.4.18         */
+	{
+		struct dict_avp_data data = {
+			4314,	/* Code */
+			10415,	/* Vendor */
+			"Connection-Action",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 3GPP TS 29.128 table 6.4.1-1 row Non-IP-Data                     */
+	/* has type "Octetstring" instead of "OctetString".                 */
+	/* Non-IP-Data, OctetString, code 4315, section 6.4.19              */
+	{
+		struct dict_avp_data data = {
+			4315,	/* Code */
+			10415,	/* Vendor */
+			"Non-IP-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Serving-PLMN-Rate-Control, Grouped, code 4310, section 6.4.21    */
+	{
+		struct dict_avp_data data = {
+			4310,	/* Code */
+			10415,	/* Vendor */
+			"Serving-PLMN-Rate-Control",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Uplink-Rate-Limit, Unsigned32, code 4311, section 6.4.23         */
+	{
+		struct dict_avp_data data = {
+			4311,	/* Code */
+			10415,	/* Vendor */
+			"Uplink-Rate-Limit",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Downlink-Rate-Limit, Unsigned32, code 4312, section 6.4.22       */
+	{
+		struct dict_avp_data data = {
+			4312,	/* Code */
+			10415,	/* Vendor */
+			"Downlink-Rate-Limit",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Extended-PCO, OctetString, code 4313, section 6.4.26             */
+	{
+		struct dict_avp_data data = {
+			4313,	/* Code */
+			10415,	/* Vendor */
+			"Extended-PCO",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SCEF-Wait-Time, Time, code 4316, section 6.4.24                  */
+	{
+		struct dict_avp_data data = {
+			4316,	/* Code */
+			10415,	/* Vendor */
+			"SCEF-Wait-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* CMR-Flags, Unsigned32, code 4317, section 6.4.25                 */
+	{
+		struct dict_avp_data data = {
+			4317,	/* Code */
+			10415,	/* Vendor */
+			"CMR-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* RRC-Cause-Counter, Grouped, code 4318, section 6.4.27            */
+	{
+		struct dict_avp_data data = {
+			4318,	/* Code */
+			10415,	/* Vendor */
+			"RRC-Cause-Counter",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Counter-Value, Unsigned32, code 4319, section 6.4.28             */
+	{
+		struct dict_avp_data data = {
+			4319,	/* Code */
+			10415,	/* Vendor */
+			"Counter-Value",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* RRC-Counter-Timestamp, Time, code 4320, section 6.4.29           */
+	{
+		struct dict_avp_data data = {
+			4320,	/* Code */
+			10415,	/* Vendor */
+			"RRC-Counter-Timestamp",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* TDA-Flags, Unsigned32, code 4321, section 6.4.31                 */
+	{
+		struct dict_avp_data data = {
+			4321,	/* Code */
+			10415,	/* Vendor */
+			"TDA-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Idle-Status-Indication, Grouped, code 4322, section 6.4.32       */
+	{
+		struct dict_avp_data data = {
+			4322,	/* Code */
+			10415,	/* Vendor */
+			"Idle-Status-Indication",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Idle-Status-Timestamp, Time, code 4323, section 6.4.33           */
+	{
+		struct dict_avp_data data = {
+			4323,	/* Code */
+			10415,	/* Vendor */
+			"Idle-Status-Timestamp",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
+	};
+
+	/* Active-Time, Unsigned32, code 4324, section 6.4.34               */
+	{
+		struct dict_avp_data data = {
+			4324,	/* Code */
+			10415,	/* Vendor */
+			"Active-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+
 	/* 3GPP 29.140-700 (7.0.0 2007.07.05)                               */
+
 	/* Served-User-Identity, Grouped, code 1100, section 6.3.1          */
 	{
 		struct dict_avp_data data = {
@@ -1326,7 +1847,9 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+
 	/* 3GPP 29.210-670 (6.7.0 2006-12-18)                               */
+
 	/* PDP-Session-Operation, Enumerated, code 1015, section 5.2.21     */
 	{
 		struct dict_avp_data data = {
@@ -1343,8 +1866,11 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+
 	/* 3GPP 29.212-c00 (12.0.0 2013.03.15)                              */
+
 	/* Gx-specific                                                      */
+
 	/* ADC-Revalidation-Time, Time, code 2801, section 5.3.93           */
 	{
 		struct dict_avp_data data = {
@@ -3651,7 +4177,9 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+
 	/* 3GPP 29.229-b20 (11.2.0 2012.12.21)                              */
+
 	/* Associated-Identities, Grouped, code 632, section 6.3.33         */
 	{
 		struct dict_avp_data data = {
@@ -4355,7 +4883,10 @@
 		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
 	};
 
-	/* 3GPP 29.272-c50 (12.5.0 2014-06)                                 */
+
+	/* 3GPP TS 29.272 V15.10.0 (2019-12)                                */
+	/* From 3GPP 29272-fa0.docx                                         */
+
 	/* Subscription-Data, Grouped, code 1400, section 7.3.2             */
 	{
 		struct dict_avp_data data = {
@@ -6354,11 +6885,31 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Measurement-Period-UMTS, Enumerated, code 1655, section 7.3.166  */
+	/* 3GPP TS 29.272 V12.9.0 (2015-12) changed AVP code of             */
+	/* Measurement-Period-LTE from 1656 to 1655.                        */
+	/* Measurement-Period-LTE, Enumerated, code 1655, section 7.3.166   */
 	{
 		struct dict_avp_data data = {
 			1655,	/* Code */
 			10415,	/* Vendor */
+			"Measurement-Period-LTE",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Measurement-Period-LTE)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* 3GPP TS 29.272 V12.9.0 (2015-12) changed AVP code of             */
+	/* Measurement-Period-UMTS from 1655 to 1656.                       */
+	/* Measurement-Period-UMTS, Enumerated, code 1656, section 7.3.167  */
+	{
+		struct dict_avp_data data = {
+			1656,	/* Code */
+			10415,	/* Vendor */
 			"Measurement-Period-UMTS",	/* Name */
 			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
 			AVP_FLAG_VENDOR,	/* Fixed flag values */
@@ -6370,22 +6921,6 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Measurement-Period-LTE, Enumerated, code 1656, section 7.3.167   */
-	{
-		struct dict_avp_data data = {
-			1656,	/* Code */
-			10415,	/* Vendor */
-			"Measurement-Period-LTE",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Measurement-Period-LTE)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
 	/* Collection-Period-RRM-LTE, Enumerated, code 1657, section 7.3.168 */
 	{
 		struct dict_avp_data data = {
@@ -6470,7 +7005,593 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Restoration-Priority, Unsigned32, code 1663, section 7.3.174     */
+	{
+		struct dict_avp_data data = {
+			1663,	/* Code */
+			10415,	/* Vendor */
+			"Restoration-Priority",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SGs-MME-Identity, UTF8String, code 1664, section 7.3.175         */
+	{
+		struct dict_avp_data data = {
+			1664,	/* Code */
+			10415,	/* Vendor */
+			"SGs-MME-Identity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
+	};
+
+	/* SIPTO-Local-Network-Permission, Unsigned32, code 1665, section 7.3.176 */
+	{
+		struct dict_avp_data data = {
+			1665,	/* Code */
+			10415,	/* Vendor */
+			"SIPTO-Local-Network-Permission",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Coupled-Node-Diameter-ID, DiameterIdentity, code 1666, section 7.3.177 */
+	{
+		struct dict_avp_data data = {
+			1666,	/* Code */
+			10415,	/* Vendor */
+			"Coupled-Node-Diameter-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterIdentity_type, NULL);
+	};
+
+	/* WLAN-offloadability, Grouped, code 1667, section 7.3.181         */
+	{
+		struct dict_avp_data data = {
+			1667,	/* Code */
+			10415,	/* Vendor */
+			"WLAN-offloadability",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* WLAN-offloadability-EUTRAN, Unsigned32, code 1668, section 7.3.182 */
+	{
+		struct dict_avp_data data = {
+			1668,	/* Code */
+			10415,	/* Vendor */
+			"WLAN-offloadability-EUTRAN",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* WLAN-offloadability-UTRAN, Unsigned32, code 1669, section 7.3.183 */
+	{
+		struct dict_avp_data data = {
+			1669,	/* Code */
+			10415,	/* Vendor */
+			"WLAN-offloadability-UTRAN",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Reset-ID, OctetString, code 1670, section 7.3.184                */
+	{
+		struct dict_avp_data data = {
+			1670,	/* Code */
+			10415,	/* Vendor */
+			"Reset-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MDT-Allowed-PLMN-Id, OctetString, code 1671, section 7.3.185     */
+	{
+		struct dict_avp_data data = {
+			1671,	/* Code */
+			10415,	/* Vendor */
+			"MDT-Allowed-PLMN-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Adjacent-PLMNs, Grouped, code 1672, section 7.3.186              */
+	{
+		struct dict_avp_data data = {
+			1672,	/* Code */
+			10415,	/* Vendor */
+			"Adjacent-PLMNs",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Adjacent-Access-Restriction-Data, Grouped, code 1673, section 7.3.187 */
+	{
+		struct dict_avp_data data = {
+			1673,	/* Code */
+			10415,	/* Vendor */
+			"Adjacent-Access-Restriction-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* DL-Buffering-Suggested-Packet-Count, Integer32, code 1674, section 7.3.188 */
+	{
+		struct dict_avp_data data = {
+			1674,	/* Code */
+			10415,	/* Vendor */
+			"DL-Buffering-Suggested-Packet-Count",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* IMSI-Group-Id, Grouped, code 1675, section 7.3.189               */
+	{
+		struct dict_avp_data data = {
+			1675,	/* Code */
+			10415,	/* Vendor */
+			"IMSI-Group-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Group-Service-Id, Unsigned32, code 1676, section 7.3.190         */
+	{
+		struct dict_avp_data data = {
+			1676,	/* Code */
+			10415,	/* Vendor */
+			"Group-Service-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Group-PLMN-Id, OctetString, code 1677, section 7.3.191           */
+	{
+		struct dict_avp_data data = {
+			1677,	/* Code */
+			10415,	/* Vendor */
+			"Group-PLMN-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Local-Group-Id, OctetString, code 1678, section 7.3.192          */
+	{
+		struct dict_avp_data data = {
+			1678,	/* Code */
+			10415,	/* Vendor */
+			"Local-Group-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* AIR-Flags, Unsigned32, code 1679, section 7.3.201                */
+	{
+		struct dict_avp_data data = {
+			1679,	/* Code */
+			10415,	/* Vendor */
+			"AIR-Flags",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* UE-Usage-Type, Unsigned32, code 1680, section 7.3.202            */
+	{
+		struct dict_avp_data data = {
+			1680,	/* Code */
+			10415,	/* Vendor */
+			"UE-Usage-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Non-IP-PDN-Type-Indicator, Enumerated, code 1681, section 7.3.204 */
+	{
+		struct dict_avp_data data = {
+			1681,	/* Code */
+			10415,	/* Vendor */
+			"Non-IP-PDN-Type-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Non-IP-PDN-Type-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Non-IP-Data-Delivery-Mechanism, Unsigned32, code 1682, section 7.3.205 */
+	{
+		struct dict_avp_data data = {
+			1682,	/* Code */
+			10415,	/* Vendor */
+			"Non-IP-Data-Delivery-Mechanism",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Additional-Context-ID, Unsigned32, code 1683, section 7.3.206    */
+	{
+		struct dict_avp_data data = {
+			1683,	/* Code */
+			10415,	/* Vendor */
+			"Additional-Context-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* SCEF-Realm, DiameterIdentity, code 1684, section 7.3.207         */
+	{
+		struct dict_avp_data data = {
+			1684,	/* Code */
+			10415,	/* Vendor */
+			"SCEF-Realm",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, DiameterIdentity_type, NULL);
+	};
+
+	/* Subscription-Data-Deletion, Grouped, code 1685, section 7.3.208  */
+	{
+		struct dict_avp_data data = {
+			1685,	/* Code */
+			10415,	/* Vendor */
+			"Subscription-Data-Deletion",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* 3GPP TS 29.272 table 7.3.1/1 row Preferred-Data-Mode             */
+	/* incorrectly has value type Grouped instead of Unsigned32,        */
+	/* conflicting with clause 7.3.209.                                 */
+	/* Preferred-Data-Mode, Unsigned32, code 1686, section 7.3.209      */
+	{
+		struct dict_avp_data data = {
+			1686,	/* Code */
+			10415,	/* Vendor */
+			"Preferred-Data-Mode",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Emergency-Info, Grouped, code 1687, section 7.3.210              */
+	{
+		struct dict_avp_data data = {
+			1687,	/* Code */
+			10415,	/* Vendor */
+			"Emergency-Info",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* V2X-Subscription-Data, Grouped, code 1688, section 7.3.212       */
+	{
+		struct dict_avp_data data = {
+			1688,	/* Code */
+			10415,	/* Vendor */
+			"V2X-Subscription-Data",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* V2X-Permission, Unsigned32, code 1689, section 7.3.213           */
+	{
+		struct dict_avp_data data = {
+			1689,	/* Code */
+			10415,	/* Vendor */
+			"V2X-Permission",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* PDN-Connection-Continuity, Unsigned32, code 1690, section 7.3.214 */
+	{
+		struct dict_avp_data data = {
+			1690,	/* Code */
+			10415,	/* Vendor */
+			"PDN-Connection-Continuity",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* eDRX-Cycle-Length, Grouped, code 1691, section 7.3.215           */
+	{
+		struct dict_avp_data data = {
+			1691,	/* Code */
+			10415,	/* Vendor */
+			"eDRX-Cycle-Length",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* eDRX-Cycle-Length-Value, OctetString, code 1692, section 7.3.216 */
+	{
+		struct dict_avp_data data = {
+			1692,	/* Code */
+			10415,	/* Vendor */
+			"eDRX-Cycle-Length-Value",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* UE-PC5-AMBR, Unsigned32, code 1693, section 7.3.217              */
+	{
+		struct dict_avp_data data = {
+			1693,	/* Code */
+			10415,	/* Vendor */
+			"UE-PC5-AMBR",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBSFN-Area, Grouped, code 1694, section 7.3.219                  */
+	{
+		struct dict_avp_data data = {
+			1694,	/* Code */
+			10415,	/* Vendor */
+			"MBSFN-Area",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* MBSFN-Area-ID, Unsigned32, code 1695, section 7.3.220            */
+	{
+		struct dict_avp_data data = {
+			1695,	/* Code */
+			10415,	/* Vendor */
+			"MBSFN-Area-ID",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Carrier-Frequency, Unsigned32, code 1696, section 7.3.221        */
+	{
+		struct dict_avp_data data = {
+			1696,	/* Code */
+			10415,	/* Vendor */
+			"Carrier-Frequency",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* RDS-Indicator, Enumerated, code 1697, section 7.3.222            */
+	{
+		struct dict_avp_data data = {
+			1697,	/* Code */
+			10415,	/* Vendor */
+			"RDS-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/RDS-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Service-Gap-Time, Unsigned32, code 1698, section 7.3.223         */
+	{
+		struct dict_avp_data data = {
+			1698,	/* Code */
+			10415,	/* Vendor */
+			"Service-Gap-Time",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Aerial-UE-Subscription-Information, Unsigned32, code 1699, section 7.3.224 */
+	{
+		struct dict_avp_data data = {
+			1699,	/* Code */
+			10415,	/* Vendor */
+			"Aerial-UE-Subscription-Information",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Broadcast-Location-Assistance-Data-Types, Unsigned64, code 1700, section 7.3.225 */
+	{
+		struct dict_avp_data data = {
+			1700,	/* Code */
+			10415,	/* Vendor */
+			"Broadcast-Location-Assistance-Data-Types",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED64	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Paging-Time-Window, Grouped, code 1701, section 7.3.226          */
+	{
+		struct dict_avp_data data = {
+			1701,	/* Code */
+			10415,	/* Vendor */
+			"Paging-Time-Window",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Operation-Mode, Unsigned32, code 1702, section 7.3.227           */
+	{
+		struct dict_avp_data data = {
+			1702,	/* Code */
+			10415,	/* Vendor */
+			"Operation-Mode",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Paging-Time-Window-Length, OctetString, code 1703, section 7.3.228 */
+	{
+		struct dict_avp_data data = {
+			1703,	/* Code */
+			10415,	/* Vendor */
+			"Paging-Time-Window-Length",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Core-Network-Restrictions, Unsigned32, code 1704, section 7.3.230 */
+	{
+		struct dict_avp_data data = {
+			1704,	/* Code */
+			10415,	/* Vendor */
+			"Core-Network-Restrictions",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* eDRX-Related-RAT, Grouped, code 1705, section 7.3.229            */
+	{
+		struct dict_avp_data data = {
+			1705,	/* Code */
+			10415,	/* Vendor */
+			"eDRX-Related-RAT",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Interworking-5GS-Indicator, Enumerated, code 1706, section 7.3.231 */
+	{
+		struct dict_avp_data data = {
+			1706,	/* Code */
+			10415,	/* Vendor */
+			"Interworking-5GS-Indicator",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Interworking-5GS-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+
 	/* 3GPP 29.329-b50 (11.5.0 2012.12.21)                              */
+
 	/* User-Identity, Grouped, code 700, section 6.3.1                  */
 	{
 		struct dict_avp_data data = {
@@ -6754,7 +7875,9 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+
 	/* 3GPP 32.299-b80 (11.8.0 2013-07)                                 */
+
 	/* AF-Correlation-Information, Grouped, code 1276                   */
 	{
 		struct dict_avp_data data = {
@@ -10472,7 +11595,9 @@
 		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
 	};
 
+
 	/* OMA DDS Charging_Data V1.0 20110201-A                            */
+
 	/* Application-Server-Id, UTF8String, code 2101, section 8.4        */
 	{
 		struct dict_avp_data data = {
@@ -10659,6 +11784,11 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+
+	/*==================================================================*/
+	/* Rules section                                                    */
+	/*==================================================================*/
+
 	/* 29.212 */
 	
 	{
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.org	Thu Feb 27 15:41:12 2020 +0100
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.org	Thu Feb 27 15:46:27 2020 +0100
@@ -1,7 +1,9 @@
 | Attribute Name                                                | Code | Section defined | Value Type       | MUST | MAY | SHLD NOT | MUST NOT | Encr |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # 3GPP 29.061-c00 (12.0.0 2012.12.20)                         |      |                 |                  |      |     |          |          |      |
 | # 3GPP 29.061 is not very clear and self-inconsistent about M |      |                 |                  |      |     |          |          |      |
 | # for this reason, other sources are assumed more trustworthy |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # M inconsistently specified                                  |      |                 |                  |      |     |          |          |      |
 | 3GPP-IMSI                                                     |    1 |          16.4.7 | UTF8String       | M,V  | P   |          |          |      |
 | # 29.061 says OctetString; dumps say UInt32; manually changed |      |                 |                  |      |     |          |          |      |
@@ -75,7 +77,40 @@
 | MBMS-Flow-Identifier                                          |  920 |         17.7.23 | OctetString      | M,V  | P   |          |          |      |
 | CN-IP-Multicast-Distribution                                  |  921 |         17.7.24 | Enumerated       | M,V  | P   |          |          |      |
 | MBMS-HC-Indicator                                             |  922 |         17.7.25 | Enumerated       | M,V  | P   |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
+| # 3GPP TS 29.128 V15.6.0 (2019-09)                            |      |                 |                  |      |     |          |          |      |
+| # From 3GPP 29128-f60.docx                                    |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
+| Communication-Failure-Information                             | 4300 |           6.4.4 | Grouped          | M,V  |     |          |          | No   |
+| Cause-Type                                                    | 4301 |           6.4.5 | Unsigned32       | M,V  |     |          |          | No   |
+| S1AP-Cause                                                    | 4302 |           6.4.6 | Unsigned32       | M,V  |     |          |          | No   |
+| RANAP-Cause                                                   | 4303 |           6.4.7 | Unsigned32       | M,V  |     |          |          | No   |
+| BSSGP-Cause                                                   | 4309 |           6.4.8 | Unsigned32       | M,V  |     |          |          | No   |
+| GMM-Cause                                                     | 4304 |           6.4.9 | Unsigned32       | M,V  |     |          |          | No   |
+| SM-Cause                                                      | 4305 |          6.4.10 | Unsigned32       | M,V  |     |          |          | No   |
+| Number-Of-UE-Per-Location-Configuration                       | 4306 |          6.4.11 | Grouped          | M,V  |     |          |          | No   |
+| Number-Of-UE-Per-Location-Report                              | 4307 |          6.4.12 | Grouped          | M,V  |     |          |          | No   |
+| UE-Count                                                      | 4308 |          6.4.13 | Unsigned32       | M,V  |     |          |          | No   |
+| Connection-Action                                             | 4314 |          6.4.18 | Unsigned32       | M,V  |     |          |          | No   |
+| # 3GPP TS 29.128 table 6.4.1-1 row Non-IP-Data                |      |                 |                  |      |     |          |          |      |
+| # has type "Octetstring" instead of "OctetString".            |      |                 |                  |      |     |          |          |      |
+| Non-IP-Data                                                   | 4315 |          6.4.19 | OctetString      | M,V  |     |          |          | No   |
+| Serving-PLMN-Rate-Control                                     | 4310 |          6.4.21 | Grouped          | M,V  |     |          |          | No   |
+| Uplink-Rate-Limit                                             | 4311 |          6.4.23 | Unsigned32       | M,V  |     |          |          | No   |
+| Downlink-Rate-Limit                                           | 4312 |          6.4.22 | Unsigned32       | M,V  |     |          |          | No   |
+| Extended-PCO                                                  | 4313 |          6.4.26 | OctetString      | M,V  |     |          |          | No   |
+| SCEF-Wait-Time                                                | 4316 |          6.4.24 | Time             | M,V  |     |          |          | No   |
+| CMR-Flags                                                     | 4317 |          6.4.25 | Unsigned32       | M,V  |     |          |          | No   |
+| RRC-Cause-Counter                                             | 4318 |          6.4.27 | Grouped          | M,V  |     |          |          | No   |
+| Counter-Value                                                 | 4319 |          6.4.28 | Unsigned32       | M,V  |     |          |          | No   |
+| RRC-Counter-Timestamp                                         | 4320 |          6.4.29 | Time             | M,V  |     |          |          | No   |
+| TDA-Flags                                                     | 4321 |          6.4.31 | Unsigned32       | V    |     |          | M        | No   |
+| Idle-Status-Indication                                        | 4322 |          6.4.32 | Grouped          | V    |     |          | M        | No   |
+| Idle-Status-Timestamp                                         | 4323 |          6.4.33 | Time             | V    |     |          | M        | No   |
+| Active-Time                                                   | 4324 |          6.4.34 | Unsigned32       | V    |     |          | M        | No   |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # 3GPP 29.140-700 (7.0.0 2007.07.05)                          |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | Served-User-Identity                                          | 1100 |           6.3.1 | Grouped          | M,V  |     |          |          | N    |
 | # reuses: MSISDN                                              |  701 |           6.3.2 | OctetString      | M,V  |     |          |          | N    |
 | VASP-ID                                                       | 1101 |           6.3.3 | UTF8String       | M,V  |     |          |          | N    |
@@ -117,10 +152,15 @@
 | SGSN-Name                                                     | 2409 |          6.4.13 | DiameterIdentity | V    |     |          | M        | N    |
 | SGSN-Realm                                                    | 2410 |          6.4.14 | DiameterIdentity | V    |     |          | M        | N    |
 | RIA-Flags                                                     | 2411 |          6.4.15 | Unsigned32       | V    |     |          | M        | N    |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # 3GPP 29.210-670 (6.7.0 2006-12-18)                          |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | PDP-Session-Operation                                         | 1015 |          5.2.21 | Enumerated       | M,V  | P   |          |          | Y    |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # 3GPP 29.212-c00 (12.0.0 2013.03.15)                         |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # Gx-specific                                                 |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | ADC-Revalidation-Time                                         | 2801 |          5.3.93 | Time             | V    | P   |          | M        | Y    |
 | ADC-Rule-Install                                              | 1092 |          5.3.85 | Grouped          | V    | P   |          | M        | Y    |
 | ADC-Rule-Remove                                               | 1093 |          5.3.86 | Grouped          | V    | P   |          | M        | Y    |
@@ -297,7 +337,9 @@
 | Sponsor-Identity                                              |  531 |          5.3.28 | UTF8String       | V    | P   |          | M        | Y    |
 | Sponsored-Connectivity-Data                                   |  530 |          5.3.27 | Grouped          | V    | P   |          | M        | Y    |
 | Sponsoring-Action                                             |  542 |          5.3.40 | Enumerated       | V    | P   |          | M        | Y    |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # 3GPP 29.229-b20 (11.2.0 2012.12.21)                         |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | Associated-Identities                                         |  632 |          6.3.33 | Grouped          | V    |     |          | M        | N    |
 | Associated-Registered-Identities                              |  647 |          6.3.50 | Grouped          | V    |     |          | M        | N    |
 | Call-ID-SIP-Header                                            |  643 |        6.3.49.1 | OctetString      | V    |     |          | M        | N    |
@@ -350,7 +392,10 @@
 | User-Data-Already-Available                                   |  624 |          6.3.26 | Enumerated       | M,V  |     |          |          | N    |
 | Visited-Network-Identifier                                    |  600 |           6.3.1 | OctetString      | M,V  |     |          |          | N    |
 | Wildcarded-Public-Identity                                    |  634 |          6.3.35 | UTF8String       | V    |     |          | M        | N    |
-| # 3GPP 29.272-c50 (12.5.0 2014-06)                            |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
+| # 3GPP TS 29.272 V15.10.0 (2019-12)                           |      |                 |                  |      |     |          |          |      |
+| # From 3GPP 29272-fa0.docx                                    |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | Subscription-Data                                             | 1400 |           7.3.2 | Grouped          | M,V  |     |          |          | N    |
 | Terminal-Information                                          | 1401 |           7.3.3 | Grouped          | M,V  |     |          |          | N    |
 | IMEI                                                          | 1402 |           7.3.4 | UTF8String       | M,V  |     |          |          | N    |
@@ -504,15 +549,68 @@
 | Local-Time-Zone                                               | 1649 |         7.3.156 | Grouped          | V    |     |          | M        | N    |
 | Daylight-Saving-Time                                          | 1650 |         7.3.164 | Enumerated       | V    |     |          | M        | N    |
 | Subscription-Data-Flags                                       | 1654 |         7.3.165 | Unsigned32       | V    |     |          | M        | N    |
-| Measurement-Period-UMTS                                       | 1655 |         7.3.166 | Enumerated       | V    |     |          | M        | N    |
-| Measurement-Period-LTE                                        | 1656 |         7.3.167 | Enumerated       | V    |     |          | M        | N    |
+| # 3GPP TS 29.272 V12.9.0 (2015-12) changed AVP code of        |      |                 |                  |      |     |          |          |      |
+| # Measurement-Period-LTE from 1656 to 1655.                   |      |                 |                  |      |     |          |          |      |
+| Measurement-Period-LTE                                        | 1655 |         7.3.166 | Enumerated       | V    |     |          | M        | N    |
+| # 3GPP TS 29.272 V12.9.0 (2015-12) changed AVP code of        |      |                 |                  |      |     |          |          |      |
+| # Measurement-Period-UMTS from 1655 to 1656.                  |      |                 |                  |      |     |          |          |      |
+| Measurement-Period-UMTS                                       | 1656 |         7.3.167 | Enumerated       | V    |     |          | M        | N    |
 | Collection-Period-RRM-LTE                                     | 1657 |         7.3.168 | Enumerated       | V    |     |          | M        | N    |
 | Collection-Period-RRM-UMTS                                    | 1658 |         7.3.169 | Enumerated       | V    |     |          | M        | N    |
 | Positioning-Method                                            | 1659 |         7.3.170 | OctetString      | V    |     |          | M        | N    |
 | Measurement-Quantity                                          | 1660 |         7.3.171 | OctetString      | V    |     |          | M        | N    |
 | Event-Threshold-Event-1F                                      | 1661 |         7.3.172 | Integer32        | V    |     |          | M        | N    |
 | Event-Threshold-Event-1I                                      | 1662 |         7.3.173 | Integer32        | V    |     |          | M        | N    |
+| Restoration-Priority                                          | 1663 |         7.3.174 | Unsigned32       | V    |     |          | M        | N    |
+| SGs-MME-Identity                                              | 1664 |         7.3.175 | UTF8String       | V    |     |          | M        | N    |
+| SIPTO-Local-Network-Permission                                | 1665 |         7.3.176 | Unsigned32       | V    |     |          | M        | N    |
+| Coupled-Node-Diameter-ID                                      | 1666 |         7.3.177 | DiameterIdentity | V    |     |          | M        | N    |
+| WLAN-offloadability                                           | 1667 |         7.3.181 | Grouped          | V    |     |          | M        | N    |
+| WLAN-offloadability-EUTRAN                                    | 1668 |         7.3.182 | Unsigned32       | V    |     |          | M        | N    |
+| WLAN-offloadability-UTRAN                                     | 1669 |         7.3.183 | Unsigned32       | V    |     |          | M        | N    |
+| Reset-ID                                                      | 1670 |         7.3.184 | OctetString      | V    |     |          | M        | N    |
+| MDT-Allowed-PLMN-Id                                           | 1671 |         7.3.185 | OctetString      | V    |     |          | M        | N    |
+| Adjacent-PLMNs                                                | 1672 |         7.3.186 | Grouped          | V    |     |          | M        | N    |
+| Adjacent-Access-Restriction-Data                              | 1673 |         7.3.187 | Grouped          | V    |     |          | M        | N    |
+| DL-Buffering-Suggested-Packet-Count                           | 1674 |         7.3.188 | Integer32        | V    |     |          | M        | N    |
+| IMSI-Group-Id                                                 | 1675 |         7.3.189 | Grouped          | V    |     |          | M        | N    |
+| Group-Service-Id                                              | 1676 |         7.3.190 | Unsigned32       | V    |     |          | M        | N    |
+| Group-PLMN-Id                                                 | 1677 |         7.3.191 | OctetString      | V    |     |          | M        | N    |
+| Local-Group-Id                                                | 1678 |         7.3.192 | OctetString      | V    |     |          | M        | N    |
+| AIR-Flags                                                     | 1679 |         7.3.201 | Unsigned32       | V    |     |          | M        | N    |
+| UE-Usage-Type                                                 | 1680 |         7.3.202 | Unsigned32       | V    |     |          | M        | N    |
+| Non-IP-PDN-Type-Indicator                                     | 1681 |         7.3.204 | Enumerated       | V    |     |          | M        | N    |
+| Non-IP-Data-Delivery-Mechanism                                | 1682 |         7.3.205 | Unsigned32       | V    |     |          | M        | N    |
+| Additional-Context-ID                                         | 1683 |         7.3.206 | Unsigned32       | V    |     |          | M        | N    |
+| SCEF-Realm                                                    | 1684 |         7.3.207 | DiameterIdentity | V    |     |          | M        | N    |
+| Subscription-Data-Deletion                                    | 1685 |         7.3.208 | Grouped          | V    |     |          | M        | N    |
+| # 3GPP TS 29.272 table 7.3.1/1 row Preferred-Data-Mode        |      |                 |                  |      |     |          |          |      |
+| # incorrectly has value type Grouped instead of Unsigned32,   |      |                 |                  |      |     |          |          |      |
+| # conflicting with clause 7.3.209.                            |      |                 |                  |      |     |          |          |      |
+| Preferred-Data-Mode                                           | 1686 |         7.3.209 | Unsigned32       | V    |     |          | M        | N    |
+| Emergency-Info                                                | 1687 |         7.3.210 | Grouped          | V    |     |          | M        | N    |
+| V2X-Subscription-Data                                         | 1688 |         7.3.212 | Grouped          | V    |     |          | M        | N    |
+| V2X-Permission                                                | 1689 |         7.3.213 | Unsigned32       | V    |     |          | M        | N    |
+| PDN-Connection-Continuity                                     | 1690 |         7.3.214 | Unsigned32       | V    |     |          | M        | N    |
+| eDRX-Cycle-Length                                             | 1691 |         7.3.215 | Grouped          | V    |     |          | M        | N    |
+| eDRX-Cycle-Length-Value                                       | 1692 |         7.3.216 | OctetString      | V    |     |          | M        | N    |
+| UE-PC5-AMBR                                                   | 1693 |         7.3.217 | Unsigned32       | V    |     |          | M        | N    |
+| MBSFN-Area                                                    | 1694 |         7.3.219 | Grouped          | V    |     |          | M        | N    |
+| MBSFN-Area-ID                                                 | 1695 |         7.3.220 | Unsigned32       | V    |     |          | M        | N    |
+| Carrier-Frequency                                             | 1696 |         7.3.221 | Unsigned32       | V    |     |          | M        | N    |
+| RDS-Indicator                                                 | 1697 |         7.3.222 | Enumerated       | V    |     |          | M        | N    |
+| Service-Gap-Time                                              | 1698 |         7.3.223 | Unsigned32       | V    |     |          | M        | N    |
+| Aerial-UE-Subscription-Information                            | 1699 |         7.3.224 | Unsigned32       | V    |     |          | M        | N    |
+| Broadcast-Location-Assistance-Data-Types                      | 1700 |         7.3.225 | Unsigned64       | V    |     |          | M        | N    |
+| Paging-Time-Window                                            | 1701 |         7.3.226 | Grouped          | V    |     |          | M        | N    |
+| Operation-Mode                                                | 1702 |         7.3.227 | Unsigned32       | V    |     |          | M        | N    |
+| Paging-Time-Window-Length                                     | 1703 |         7.3.228 | OctetString      | V    |     |          | M        | N    |
+| Core-Network-Restrictions                                     | 1704 |         7.3.230 | Unsigned32       | V    |     |          | M        | N    |
+| eDRX-Related-RAT                                              | 1705 |         7.3.229 | Grouped          | V    |     |          | M        | N    |
+| Interworking-5GS-Indicator                                    | 1706 |         7.3.231 | Enumerated       | V    |     |          | M        | N    |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # 3GPP 29.329-b50 (11.5.0 2012.12.21)                         |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | User-Identity                                                 |  700 |           6.3.1 | Grouped          | M,V  |     |          |          | N    |
 | MSISDN                                                        |  701 |           6.3.2 | OctetString      | M,V  |     |          |          | N    |
 | # Name conflict with 29.229 User-Data (606), renamed          |      |                 |                  |      |     |          |          |      |
@@ -544,7 +642,9 @@
 | Repository-Data-ID                                            |  715 |          6.3.24 | Grouped          | V    |     |          | M        | N    |
 | Sequence-Number                                               |  716 |          6.3.25 | Unsigned32       | V    |     |          | M        | N    |
 | UDR-Flags                                                     |  719 |          6.3.28 | Unsigned32       | V    |     |          | M        | N    |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # 3GPP 32.299-b80 (11.8.0 2013-07)                            |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | AF-Correlation-Information                                    | 1276 |                 | Grouped          | M,V  | P   |          |          | N    |
 | Access-Network-Information                                    | 1263 |                 | OctetString      | M,V  | P   |          |          | N    |
 | Access-Transfer-Information                                   | 2709 |                 | Grouped          | M,V  | P   |          |          | N    |
@@ -818,7 +918,9 @@
 | WLAN-Session-Id                                               | 1246 |                 | UTF8String       | M,V  | P   |          |          | N    |
 | WLAN-Technology                                               |  893 |                 | Unsigned32       | M,V  | P   |          |          | N    |
 | WLAN-UE-Local-IPAddress                                       |  894 |                 | Address          | M,V  | P   |          |          | N    |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | # OMA DDS Charging_Data V1.0 20110201-A                       |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | Application-Server-Id                                         | 2101 |             8.4 | UTF8String       | M,V  |     |          |          | Y    |
 | Application-Service-Type                                      | 2102 |             8.4 | UTF8String       | M,V  |     |          |          | Y    |
 | Application-Session-Id                                        | 2103 |             8.4 | UTF8String       | M,V  |     |          |          | Y    |
"Welcome to our mercurial repository"