changeset 1473:8f953829c5d3

Update to 3GPP TS 29.212 V15.9.0 (2019-12) Update sections for various AVPs that were moved from section 5 to section 5a, 5b, or 5c. Add AVPs from 3GPP TS 29.212 V15.9.0 (2019-12): - Credit-Management-Status, Unsigned32, code 1082, section 5.3.102 - AN-GW-Status, Enumerated, code 2811, section 5.3.100 - User-Location-Info-Time, Time, code 2812, section 5.3.101 - CS-Service-Resource-Report, Grouped, code 2813, section E.6.3.6 - CS-Service-Resource-Failure-Cause, Enumerated, code 2814, section E.6.3.5 - CS-Service-Resource-Result-Operation, Enumerated, code 2815, section E.6.3.4 - Default-QoS-Information, Grouped, code 2816, section 5.3.103 - Default-QoS-Name, UTF8String, code 2817, section 5.3.104 - Conditional-APN-Aggregate-Max-Bitrate, Grouped, code 2818, section 5.3.105 - RAN-NAS-Release-Cause, OctetString, code 2819, section 5.3.106 - Presence-Reporting-Area-Elements-List, OctetString, code 2820, section 5.3.107 - Presence-Reporting-Area-Identifier, OctetString, code 2821, section 5.3.108 - Presence-Reporting-Area-Information, Grouped, code 2822, section 5.3.109 - Presence-Reporting-Area-Status, Unsigned32, code 2823, section 5.3.110 - NetLoc-Access-Support, Unsigned32, code 2824, section 5.3.111 - Fixed-User-Location-Info, Grouped, code 2825, section 5.3.112 - PCSCF-Restoration-Indication, Unsigned32, code 2826, section 5.3.113 - IP-CAN-Session-Charging-Scope, Enumerated, code 2827, section 5.3.114 - Monitoring-Flags, Unsigned32, code 2828, section 5.3.115 - Default-Access, Enumerated, code 2829, section 5.3.120 - NBIFOM-Mode, Enumerated, code 2830, section 5.3.117 - NBIFOM-Support, Enumerated, code 2831, section 5.3.116 - RAN-Rule-Support, Unsigned32, code 2832, section 5.3.122 - Access-Availability-Change-Reason, Unsigned32, code 2833, section 5.3.121 - Routing-Rule-Failure-Code, Unsigned32, code 2834, section 5.3.119 - Routing-Rule-Report, Grouped, code 2835, section 5.3.118 - Traffic-Steering-Policy-Identifier-DL, OctetString, code 2836, section 5.3.123 - Traffic-Steering-Policy-Identifier-UL, OctetString, code 2837, section 5.3.124 - Request-Type, Unsigned32, code 2838, section 5c.3.2 - Execution-Time, Time, code 2839, section 5.3.127 - Conditional-Policy-Information, Grouped, code 2840, section 5.3.128 - Resource-Release-Notification, Enumerated, code 2841, section 5.3.125 - Removal-Of-Access, Enumerated, code 2842, section 5.3.126 - TCP-Source-Port, Unsigned32, code 2843, section 5.3.129 - Default-Bearer-Indication, Enumerated, code 2844, section 5.3.132 - PRA-Install, Grouped, code 2845, section 5.3.130 - PRA-Remove, Grouped, code 2846, section 5.3.131 - 3GPP-PS-Data-Off-Status, Enumerated, code 2847, section 5.3.133 - Extended-APN-AMBR-DL, Unsigned32, code 2848, section 5.3.134 - Extended-APN-AMBR-UL, Unsigned32, code 2849, section 5.3.135 - Extended-GBR-DL, Unsigned32, code 2850, section 5.3.136 - Extended-GBR-UL, Unsigned32, code 2851, section 5.3.137 - Max-PLR-DL, Float32, code 2852, section 5.3.138 - Max-PLR-UL, Float32, code 2853, section 5.3.139 - UE-Status, Unsigned32, code 2854, section 5.3.140 - Presence-Reporting-Area-Node, Unsigned32, code 2855, section 5.3.141 Set Must AVP Flag M (Mandatory) per 3GPP TS 29.212 Table 5b.3.0.1 for: - ADC-Rule-Install, Grouped, code 1092, section 5b.3.1 - ADC-Rule-Remove, Grouped, code 1093, section 5b.3.2 - ADC-Rule-Definition, Grouped, code 1094, section 5b.3.3 - ADC-Rule-Base-Name, UTF8String, code 1095, section 5b.3.4 - ADC-Rule-Name, OctetString, code 1096, section 5b.3.5 - ADC-Rule-Report, Grouped, code 1097, section 5b.3.6 Retain ADC-Revalidation-Time, Time, code 2801, section 5.3.93 Removed in 3GPP TS 29.212 V12.1.0 (2013-06). Add HeNB-BBF-FQDN, UTF8String, code 2803, section 5.3.94 Removed in 3GPP TS 29.212 V11.8.0 (2013-03).
author Luke Mewburn <luke@mewburn.net>
date Wed, 18 Mar 2020 14:06:08 +1100
parents 396f789b8c29
children cdc52f83097e
files extensions/dict_dcca_3gpp/dict_dcca_3gpp.c extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv
diffstat 2 files changed, 1146 insertions(+), 417 deletions(-) [+]
line wrap: on
line diff
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Wed Mar 18 13:57:11 2020 +1100
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Wed Mar 18 14:06:08 2020 +1100
@@ -1883,11 +1883,15 @@
 	};
 
 	/*==================================================================*/
-	/* 3GPP 29.212-c00 (12.0.0 2013.03.15)                              */
+	/* 3GPP TS 29.212 V15.9.0 (2019-12)                                 */
+	/* From 3GPP 29212-f90.doc                                          */
+	/*==================================================================*/
+
 	/*==================================================================*/
-
-	/* Gx-specific                                                      */
-
+	/* 3GPP TS 29.212 Table 5.3.0.1: Gx specific Diameter AVPs          */
+	/*==================================================================*/
+
+	/* 3GPP TS 29.212 V12.1.0 (2013-06) removed ADC-Revalidation-Time.  */
 	/* ADC-Revalidation-Time, Time, code 2801, section 5.3.93           */
 	{
 		struct dict_avp_data data = {
@@ -1901,93 +1905,31 @@
 		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
 	};
 
-	/* ADC-Rule-Install, Grouped, code 1092, section 5.3.85             */
-	{
-		struct dict_avp_data data = {
-			1092,	/* Code */
-			10415,	/* Vendor */
-			"ADC-Rule-Install",	/* 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);
-	};
-
-	/* ADC-Rule-Remove, Grouped, code 1093, section 5.3.86              */
-	{
-		struct dict_avp_data data = {
-			1093,	/* Code */
-			10415,	/* Vendor */
-			"ADC-Rule-Remove",	/* 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);
-	};
-
-	/* ADC-Rule-Definition, Grouped, code 1094, section 5.3.87          */
-	{
-		struct dict_avp_data data = {
-			1094,	/* Code */
-			10415,	/* Vendor */
-			"ADC-Rule-Definition",	/* 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);
-	};
-
-	/* ADC-Rule-Base-Name, UTF8String, code 1095, section 5.3.88        */
-	{
-		struct dict_avp_data data = {
-			1095,	/* Code */
-			10415,	/* Vendor */
-			"ADC-Rule-Base-Name",	/* 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);
-	};
-
-	/* ADC-Rule-Name, OctetString, code 1096, section 5.3.89            */
-	{
-		struct dict_avp_data data = {
-			1096,	/* Code */
-			10415,	/* Vendor */
-			"ADC-Rule-Name",	/* 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);
-	};
-
-	/* ADC-Rule-Report, Grouped, code 1097, section 5.3.90              */
-	{
-		struct dict_avp_data data = {
-			1097,	/* Code */
-			10415,	/* Vendor */
-			"ADC-Rule-Report",	/* 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);
-	};
-
-	/* Application-Detection-Information, Grouped, code 1098, section 5.3.91 */
-	{
-		struct dict_avp_data data = {
-			1098,	/* Code */
-			10415,	/* Vendor */
-			"Application-Detection-Information",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
+	/* 3GPP-PS-Data-Off-Status, Enumerated, code 2847, section 5.3.133  */
+	{
+		struct dict_avp_data data = {
+			2847,	/* Code */
+			10415,	/* Vendor */
+			"3GPP-PS-Data-Off-Status",	/* 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/3GPP-PS-Data-Off-Status)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Access-Availability-Change-Reason, Unsigned32, code 2833, section 5.3.121 */
+	{
+		struct dict_avp_data data = {
+			2833,	/* Code */
+			10415,	/* Vendor */
+			"Access-Availability-Change-Reason",	/* 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);
 	};
@@ -2031,6 +1973,22 @@
 		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
 	};
 
+	/* AN-GW-Status, Enumerated, code 2811, section 5.3.100             */
+	{
+		struct dict_avp_data data = {
+			2811,	/* Code */
+			10415,	/* Vendor */
+			"AN-GW-Status",	/* 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/AN-GW-Status)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/* APN-Aggregate-Max-Bitrate-DL, Unsigned32, code 1040, section 5.3.39 */
 	{
 		struct dict_avp_data data = {
@@ -2057,6 +2015,19 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Application-Detection-Information, Grouped, code 1098, section 5.3.91 */
+	{
+		struct dict_avp_data data = {
+			1098,	/* Code */
+			10415,	/* Vendor */
+			"Application-Detection-Information",	/* 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);
+	};
+
 	/* Bearer-Control-Mode, Enumerated, code 1023, section 5.3.23       */
 	{
 		struct dict_avp_data data = {
@@ -2118,84 +2089,6 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Charging-Rule-Install, Grouped, code 1001, section 5.3.2         */
-	{
-		struct dict_avp_data data = {
-			1001,	/* Code */
-			10415,	/* Vendor */
-			"Charging-Rule-Install",	/* 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);
-	};
-
-	/* Charging-Rule-Remove, Grouped, code 1002, section 5.3.3          */
-	{
-		struct dict_avp_data data = {
-			1002,	/* Code */
-			10415,	/* Vendor */
-			"Charging-Rule-Remove",	/* 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);
-	};
-
-	/* Charging-Rule-Definition, Grouped, code 1003, section 5.3.4      */
-	{
-		struct dict_avp_data data = {
-			1003,	/* Code */
-			10415,	/* Vendor */
-			"Charging-Rule-Definition",	/* 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);
-	};
-
-	/* Charging-Rule-Base-Name, UTF8String, code 1004, section 5.3.5    */
-	{
-		struct dict_avp_data data = {
-			1004,	/* Code */
-			10415,	/* Vendor */
-			"Charging-Rule-Base-Name",	/* 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, UTF8String_type, NULL);
-	};
-
-	/* Charging-Rule-Name, OctetString, code 1005, section 5.3.6        */
-	{
-		struct dict_avp_data data = {
-			1005,	/* Code */
-			10415,	/* Vendor */
-			"Charging-Rule-Name",	/* 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);
-	};
-
-	/* Charging-Rule-Report, Grouped, code 1018, section 5.3.18         */
-	{
-		struct dict_avp_data data = {
-			1018,	/* Code */
-			10415,	/* Vendor */
-			"Charging-Rule-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);
-	};
-
 	/* Charging-Correlation-Indicator, Enumerated, code 1073, section 5.3.67 */
 	{
 		struct dict_avp_data data = {
@@ -2212,6 +2105,97 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* Charging-Rule-Base-Name, UTF8String, code 1004, section 5.3.5    */
+	{
+		struct dict_avp_data data = {
+			1004,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Base-Name",	/* 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, UTF8String_type, NULL);
+	};
+
+	/* Charging-Rule-Definition, Grouped, code 1003, section 5.3.4      */
+	{
+		struct dict_avp_data data = {
+			1003,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Definition",	/* 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);
+	};
+
+	/* Charging-Rule-Install, Grouped, code 1001, section 5.3.2         */
+	{
+		struct dict_avp_data data = {
+			1001,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Install",	/* 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);
+	};
+
+	/* Charging-Rule-Name, OctetString, code 1005, section 5.3.6        */
+	{
+		struct dict_avp_data data = {
+			1005,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Name",	/* 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);
+	};
+
+	/* Charging-Rule-Remove, Grouped, code 1002, section 5.3.3          */
+	{
+		struct dict_avp_data data = {
+			1002,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-Remove",	/* 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);
+	};
+
+	/* Charging-Rule-Report, Grouped, code 1018, section 5.3.18         */
+	{
+		struct dict_avp_data data = {
+			1018,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Rule-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);
+	};
+
+	/* CoA-Information, Grouped, code 1039, section 5.3.37              */
+	{
+		struct dict_avp_data data = {
+			1039,	/* Code */
+			10415,	/* Vendor */
+			"CoA-Information",	/* 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);
+	};
+
 	/* CoA-IP-Address, Address, code 1035, section 5.3.33               */
 	{
 		struct dict_avp_data data = {
@@ -2225,15 +2209,41 @@
 		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
 	};
 
-	/* CoA-Information, Grouped, code 1039, section 5.3.37              */
-	{
-		struct dict_avp_data data = {
-			1039,	/* Code */
-			10415,	/* Vendor */
-			"CoA-Information",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR,	/* Fixed flag values */
-			AVP_TYPE_GROUPED	/* base type of data */
+	/* Conditional-APN-Aggregate-Max-Bitrate, Grouped, code 2818, section 5.3.105 */
+	{
+		struct dict_avp_data data = {
+			2818,	/* Code */
+			10415,	/* Vendor */
+			"Conditional-APN-Aggregate-Max-Bitrate",	/* 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);
+	};
+
+	/* Conditional-Policy-Information, Grouped, code 2840, section 5.3.128 */
+	{
+		struct dict_avp_data data = {
+			2840,	/* Code */
+			10415,	/* Vendor */
+			"Conditional-Policy-Information",	/* 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);
+	};
+
+	/* Credit-Management-Status, Unsigned32, code 1082, section 5.3.102 */
+	{
+		struct dict_avp_data data = {
+			1082,	/* Code */
+			10415,	/* Vendor */
+			"Credit-Management-Status",	/* 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);
 	};
@@ -2254,6 +2264,38 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* Default-Access, Enumerated, code 2829, section 5.3.120           */
+	{
+		struct dict_avp_data data = {
+			2829,	/* Code */
+			10415,	/* Vendor */
+			"Default-Access",	/* 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/Default-Access)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Default-Bearer-Indication, Enumerated, code 2844, section 5.3.132 */
+	{
+		struct dict_avp_data data = {
+			2844,	/* Code */
+			10415,	/* Vendor */
+			"Default-Bearer-Indication",	/* 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/Default-Bearer-Indication)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/* Default-EPS-Bearer-QoS, Grouped, code 1049, section 5.3.48       */
 	{
 		struct dict_avp_data data = {
@@ -2267,6 +2309,32 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Default-QoS-Information, Grouped, code 2816, section 5.3.103     */
+	{
+		struct dict_avp_data data = {
+			2816,	/* Code */
+			10415,	/* Vendor */
+			"Default-QoS-Information",	/* 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);
+	};
+
+	/* Default-QoS-Name, UTF8String, code 2817, section 5.3.104         */
+	{
+		struct dict_avp_data data = {
+			2817,	/* Code */
+			10415,	/* Vendor */
+			"Default-QoS-Name",	/* 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);
+	};
+
 	/* Event-Report-Indication, Grouped, code 1033, section 5.3.30      */
 	{
 		struct dict_avp_data data = {
@@ -2296,6 +2364,71 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* Execution-Time, Time, code 2839, section 5.3.127                 */
+	{
+		struct dict_avp_data data = {
+			2839,	/* Code */
+			10415,	/* Vendor */
+			"Execution-Time",	/* 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);
+	};
+
+	/* Extended-APN-AMBR-DL, Unsigned32, code 2848, section 5.3.134     */
+	{
+		struct dict_avp_data data = {
+			2848,	/* Code */
+			10415,	/* Vendor */
+			"Extended-APN-AMBR-DL",	/* 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);
+	};
+
+	/* Extended-APN-AMBR-UL, Unsigned32, code 2849, section 5.3.135     */
+	{
+		struct dict_avp_data data = {
+			2849,	/* Code */
+			10415,	/* Vendor */
+			"Extended-APN-AMBR-UL",	/* 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);
+	};
+
+	/* Extended-GBR-DL, Unsigned32, code 2850, section 5.3.136          */
+	{
+		struct dict_avp_data data = {
+			2850,	/* Code */
+			10415,	/* Vendor */
+			"Extended-GBR-DL",	/* 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);
+	};
+
+	/* Extended-GBR-UL, Unsigned32, code 2851, section 5.3.137          */
+	{
+		struct dict_avp_data data = {
+			2851,	/* Code */
+			10415,	/* Vendor */
+			"Extended-GBR-UL",	/* 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);
+	};
+
 	/* Flow-Direction, Enumerated, code 1080, section 5.3.65            */
 	{
 		struct dict_avp_data data = {
@@ -2338,20 +2471,17 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* IP-CAN-Type, Enumerated, code 1027, section 5.3.27               */
-	{
-		struct dict_avp_data data = {
-			1027,	/* Code */
-			10415,	/* Vendor */
-			"IP-CAN-Type",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/IP-CAN-Type)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	/* Fixed-User-Location-Info, Grouped, code 2825, section 5.3.112    */
+	{
+		struct dict_avp_data data = {
+			2825,	/* Code */
+			10415,	/* Vendor */
+			"Fixed-User-Location-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);
 	};
 
 	/* Guaranteed-Bitrate-DL, Unsigned32, code 1025, section 5.3.25     */
@@ -2380,6 +2510,20 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* 3GPP TS 29.212 V11.8.0 (2013-03) removed HeNB-BBF-FQDN.          */
+	/* HeNB-BBF-FQDN, UTF8String, code 2803, section 5.3.94             */
+	{
+		struct dict_avp_data data = {
+			2803,	/* Code */
+			10415,	/* Vendor */
+			"HeNB-BBF-FQDN",	/* 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);
+	};
+
 	/* HeNB-Local-IP-Address, Address, code 2804, section 5.3.95        */
 	{
 		struct dict_avp_data data = {
@@ -2393,6 +2537,64 @@
 		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
 	};
 
+	/* IP-CAN-Session-Charging-Scope, Enumerated, code 2827, section 5.3.114 */
+	{
+		struct dict_avp_data data = {
+			2827,	/* Code */
+			10415,	/* Vendor */
+			"IP-CAN-Session-Charging-Scope",	/* 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/IP-CAN-Session-Charging-Scope)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* IP-CAN-Type, Enumerated, code 1027, section 5.3.27               */
+	{
+		struct dict_avp_data data = {
+			1027,	/* Code */
+			10415,	/* Vendor */
+			"IP-CAN-Type",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/IP-CAN-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Max-PLR-DL, Float32, code 2852, section 5.3.138                  */
+	{
+		struct dict_avp_data data = {
+			2852,	/* Code */
+			10415,	/* Vendor */
+			"Max-PLR-DL",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_FLOAT32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Max-PLR-UL, Float32, code 2853, section 5.3.139                  */
+	{
+		struct dict_avp_data data = {
+			2853,	/* Code */
+			10415,	/* Vendor */
+			"Max-PLR-UL",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_FLOAT32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
 	/* Metering-Method, Enumerated, code 1007, section 5.3.8            */
 	{
 		struct dict_avp_data data = {
@@ -2409,6 +2611,19 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* Monitoring-Flags, Unsigned32, code 2828, section 5.3.115         */
+	{
+		struct dict_avp_data data = {
+			2828,	/* Code */
+			10415,	/* Vendor */
+			"Monitoring-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);
+	};
+
 	/* Monitoring-Key, OctetString, code 1066, section 5.3.59           */
 	{
 		struct dict_avp_data data = {
@@ -2451,6 +2666,51 @@
 		CHECK_dict_new(DICT_AVP, &data, Time_type, NULL);
 	};
 
+	/* NBIFOM-Mode, Enumerated, code 2830, section 5.3.117              */
+	{
+		struct dict_avp_data data = {
+			2830,	/* Code */
+			10415,	/* Vendor */
+			"NBIFOM-Mode",	/* 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/NBIFOM-Mode)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* NBIFOM-Support, Enumerated, code 2831, section 5.3.116           */
+	{
+		struct dict_avp_data data = {
+			2831,	/* Code */
+			10415,	/* Vendor */
+			"NBIFOM-Support",	/* 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/NBIFOM-Support)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* NetLoc-Access-Support, Unsigned32, code 2824, section 5.3.111    */
+	{
+		struct dict_avp_data data = {
+			2824,	/* Code */
+			10415,	/* Vendor */
+			"NetLoc-Access-Support",	/* 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);
+	};
+
 	/* Network-Request-Support, Enumerated, code 1024, section 5.3.24   */
 	{
 		struct dict_avp_data data = {
@@ -2570,6 +2830,22 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* PCC-Rule-Status, Enumerated, code 1019, section 5.3.19           */
+	{
+		struct dict_avp_data data = {
+			1019,	/* Code */
+			10415,	/* Vendor */
+			"PCC-Rule-Status",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/PCC-Rule-Status)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/* PDN-Connection-ID, OctetString, code 1065, section 5.3.58        */
 	{
 		struct dict_avp_data data = {
@@ -2583,6 +2859,32 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* PRA-Install, Grouped, code 2845, section 5.3.130                 */
+	{
+		struct dict_avp_data data = {
+			2845,	/* Code */
+			10415,	/* Vendor */
+			"PRA-Install",	/* 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);
+	};
+
+	/* PRA-Remove, Grouped, code 2846, section 5.3.131                  */
+	{
+		struct dict_avp_data data = {
+			2846,	/* Code */
+			10415,	/* Vendor */
+			"PRA-Remove",	/* 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);
+	};
+
 	/* Precedence, Unsigned32, code 1010, section 5.3.11                */
 	{
 		struct dict_avp_data data = {
@@ -2628,6 +2930,71 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* Presence-Reporting-Area-Elements-List, OctetString, code 2820, section 5.3.107 */
+	{
+		struct dict_avp_data data = {
+			2820,	/* Code */
+			10415,	/* Vendor */
+			"Presence-Reporting-Area-Elements-List",	/* 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);
+	};
+
+	/* Presence-Reporting-Area-Identifier, OctetString, code 2821, section 5.3.108 */
+	{
+		struct dict_avp_data data = {
+			2821,	/* Code */
+			10415,	/* Vendor */
+			"Presence-Reporting-Area-Identifier",	/* 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);
+	};
+
+	/* Presence-Reporting-Area-Information, Grouped, code 2822, section 5.3.109 */
+	{
+		struct dict_avp_data data = {
+			2822,	/* Code */
+			10415,	/* Vendor */
+			"Presence-Reporting-Area-Information",	/* 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);
+	};
+
+	/* Presence-Reporting-Area-Node, Unsigned32, code 2855, section 5.3.141 */
+	{
+		struct dict_avp_data data = {
+			2855,	/* Code */
+			10415,	/* Vendor */
+			"Presence-Reporting-Area-Node",	/* 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);
+	};
+
+	/* Presence-Reporting-Area-Status, Unsigned32, code 2823, section 5.3.110 */
+	{
+		struct dict_avp_data data = {
+			2823,	/* Code */
+			10415,	/* Vendor */
+			"Presence-Reporting-Area-Status",	/* 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);
+	};
+
 	/* Priority-Level, Unsigned32, code 1046, section 5.3.45            */
 	{
 		struct dict_avp_data data = {
@@ -2641,6 +3008,125 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* PS-to-CS-Session-Continuity, Enumerated, code 1099, section 5.3.84 */
+	{
+		struct dict_avp_data data = {
+			1099,	/* Code */
+			10415,	/* Vendor */
+			"PS-to-CS-Session-Continuity",	/* Name */
+			AVP_FLAG_VENDOR,	/* 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/PS-to-CS-Session-Continuity)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* QoS-Class-Identifier, Enumerated, code 1028, section 5.3.17      */
+	{
+		struct dict_avp_data data = {
+			1028,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Class-Identifier",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/QoS-Class-Identifier)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* QoS-Information, Grouped, code 1016, section 5.3.16              */
+	{
+		struct dict_avp_data data = {
+			1016,	/* Code */
+			10415,	/* Vendor */
+			"QoS-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);
+	};
+
+	/* QoS-Negotiation, Enumerated, code 1029, section 5.3.28           */
+	{
+		struct dict_avp_data data = {
+			1029,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Negotiation",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/QoS-Negotiation)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* QoS-Upgrade, Enumerated, code 1030, section 5.3.29               */
+	{
+		struct dict_avp_data data = {
+			1030,	/* Code */
+			10415,	/* Vendor */
+			"QoS-Upgrade",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/QoS-Upgrade)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* RAN-NAS-Release-Cause, OctetString, code 2819, section 5.3.106   */
+	{
+		struct dict_avp_data data = {
+			2819,	/* Code */
+			10415,	/* Vendor */
+			"RAN-NAS-Release-Cause",	/* 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);
+	};
+
+	/* RAN-Rule-Support, Unsigned32, code 2832, section 5.3.122         */
+	{
+		struct dict_avp_data data = {
+			2832,	/* Code */
+			10415,	/* Vendor */
+			"RAN-Rule-Support",	/* 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);
+	};
+
+	/* RAT-Type, Enumerated, code 1032, section 5.3.31                  */
+	{
+		struct dict_avp_data data = {
+			1032,	/* Code */
+			10415,	/* Vendor */
+			"RAT-Type",	/* 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/RAT-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/* Redirect-Information, Grouped, code 1085, section 5.3.82         */
 	{
 		struct dict_avp_data data = {
@@ -2670,6 +3156,22 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* Removal-Of-Access, Enumerated, code 2842, section 5.3.126        */
+	{
+		struct dict_avp_data data = {
+			2842,	/* Code */
+			10415,	/* Vendor */
+			"Removal-Of-Access",	/* 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/Removal-Of-Access)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/* Reporting-Level, Enumerated, code 1011, section 5.3.12           */
 	{
 		struct dict_avp_data data = {
@@ -2686,6 +3188,51 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* Resource-Allocation-Notification, Enumerated, code 1063, section 5.3.50 */
+	{
+		struct dict_avp_data data = {
+			1063,	/* Code */
+			10415,	/* Vendor */
+			"Resource-Allocation-Notification",	/* 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/Resource-Allocation-Notification)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Resource-Release-Notification, Enumerated, code 2841, section 5.3.125 */
+	{
+		struct dict_avp_data data = {
+			2841,	/* Code */
+			10415,	/* Vendor */
+			"Resource-Release-Notification",	/* 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/Resource-Release-Notification)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Revalidation-Time, Time, code 1042, section 5.3.41               */
+	{
+		struct dict_avp_data data = {
+			1042,	/* Code */
+			10415,	/* Vendor */
+			"Revalidation-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);
+	};
+
 	/* Routing-Filter, Grouped, code 1078, section 5.3.72               */
 	{
 		struct dict_avp_data data = {
@@ -2764,20 +3311,85 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* PCC-Rule-Status, Enumerated, code 1019, section 5.3.19           */
-	{
-		struct dict_avp_data data = {
-			1019,	/* Code */
-			10415,	/* Vendor */
-			"PCC-Rule-Status",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/PCC-Rule-Status)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	/* Routing-Rule-Failure-Code, Unsigned32, code 2834, section 5.3.119 */
+	{
+		struct dict_avp_data data = {
+			2834,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Rule-Failure-Code",	/* 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);
+	};
+
+	/* Routing-Rule-Report, Grouped, code 2835, section 5.3.118         */
+	{
+		struct dict_avp_data data = {
+			2835,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Rule-Report",	/* 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);
+	};
+
+	/* Rule-Activation-Time, Time, code 1043, section 5.3.42            */
+	{
+		struct dict_avp_data data = {
+			1043,	/* Code */
+			10415,	/* Vendor */
+			"Rule-Activation-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);
+	};
+
+	/* Rule-Deactivation-Time, Time, code 1044, section 5.3.43          */
+	{
+		struct dict_avp_data data = {
+			1044,	/* Code */
+			10415,	/* Vendor */
+			"Rule-Deactivation-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);
+	};
+
+	/* Rule-Failure-Code, Enumerated, code 1031, section 5.3.38         */
+	{
+		struct dict_avp_data data = {
+			1031,	/* Code */
+			10415,	/* Vendor */
+			"Rule-Failure-Code",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Rule-Failure-Code)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Security-Parameter-Index, OctetString, code 1056, section 5.3.51 */
+	{
+		struct dict_avp_data data = {
+			1056,	/* Code */
+			10415,	/* Vendor */
+			"Security-Parameter-Index",	/* 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);
 	};
 
 	/* Session-Release-Cause, Enumerated, code 1045, section 5.3.44     */
@@ -2796,6 +3408,19 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* TCP-Source-Port, Unsigned32, code 2843, section 5.3.129          */
+	{
+		struct dict_avp_data data = {
+			2843,	/* Code */
+			10415,	/* Vendor */
+			"TCP-Source-Port",	/* 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);
+	};
+
 	/* TDF-Information, Grouped, code 1087, section 5.3.78              */
 	{
 		struct dict_avp_data data = {
@@ -2874,128 +3499,6 @@
 		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
 	};
 
-	/* QoS-Class-Identifier, Enumerated, code 1028, section 5.3.17      */
-	{
-		struct dict_avp_data data = {
-			1028,	/* Code */
-			10415,	/* Vendor */
-			"QoS-Class-Identifier",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/QoS-Class-Identifier)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* QoS-Information, Grouped, code 1016, section 5.3.16              */
-	{
-		struct dict_avp_data data = {
-			1016,	/* Code */
-			10415,	/* Vendor */
-			"QoS-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);
-	};
-
-	/* QoS-Negotiation, Enumerated, code 1029, section 5.3.28           */
-	{
-		struct dict_avp_data data = {
-			1029,	/* Code */
-			10415,	/* Vendor */
-			"QoS-Negotiation",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/QoS-Negotiation)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* QoS-Upgrade, Enumerated, code 1030, section 5.3.29               */
-	{
-		struct dict_avp_data data = {
-			1030,	/* Code */
-			10415,	/* Vendor */
-			"QoS-Upgrade",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/QoS-Upgrade)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* PS-to-CS-Session-Continuity, Enumerated, code 1099, section 5.3.84 */
-	{
-		struct dict_avp_data data = {
-			1099,	/* Code */
-			10415,	/* Vendor */
-			"PS-to-CS-Session-Continuity",	/* Name */
-			AVP_FLAG_VENDOR,	/* 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/PS-to-CS-Session-Continuity)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Resource-Allocation-Notification, Enumerated, code 1063, section 5.3.50 */
-	{
-		struct dict_avp_data data = {
-			1063,	/* Code */
-			10415,	/* Vendor */
-			"Resource-Allocation-Notification",	/* 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/Resource-Allocation-Notification)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Rule-Failure-Code, Enumerated, code 1031, section 5.3.38         */
-	{
-		struct dict_avp_data data = {
-			1031,	/* Code */
-			10415,	/* Vendor */
-			"Rule-Failure-Code",	/* Name */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
-			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
-			AVP_TYPE_INTEGER32	/* base type of data */
-		};
-		struct dict_object	*type;
-		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Rule-Failure-Code)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Security-Parameter-Index, OctetString, code 1056, section 5.3.51 */
-	{
-		struct dict_avp_data data = {
-			1056,	/* Code */
-			10415,	/* Vendor */
-			"Security-Parameter-Index",	/* 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);
-	};
-
 	/* TFT-Filter, IPFilterRule, code 1012, section 5.3.13              */
 	{
 		struct dict_avp_data data = {
@@ -3022,6 +3525,32 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Traffic-Steering-Policy-Identifier-DL, OctetString, code 2836, section 5.3.123 */
+	{
+		struct dict_avp_data data = {
+			2836,	/* Code */
+			10415,	/* Vendor */
+			"Traffic-Steering-Policy-Identifier-DL",	/* 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);
+	};
+
+	/* Traffic-Steering-Policy-Identifier-UL, OctetString, code 2837, section 5.3.124 */
+	{
+		struct dict_avp_data data = {
+			2837,	/* Code */
+			10415,	/* Vendor */
+			"Traffic-Steering-Policy-Identifier-UL",	/* 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);
+	};
+
 	/* ToS-Traffic-Class, OctetString, code 1014, section 5.3.15        */
 	{
 		struct dict_avp_data data = {
@@ -3074,48 +3603,6 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* RAT-Type, Enumerated, code 1032, section 5.3.31                  */
-	{
-		struct dict_avp_data data = {
-			1032,	/* Code */
-			10415,	/* Vendor */
-			"RAT-Type",	/* 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/RAT-Type)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Revalidation-Time, Time, code 1042, section 5.3.41               */
-	{
-		struct dict_avp_data data = {
-			1042,	/* Code */
-			10415,	/* Vendor */
-			"Revalidation-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);
-	};
-
-	/* Rule-Activation-Time, Time, code 1043, section 5.3.42            */
-	{
-		struct dict_avp_data data = {
-			1043,	/* Code */
-			10415,	/* Vendor */
-			"Rule-Activation-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);
-	};
-
 	/* UDP-Source-Port, Unsigned32, code 2806, section 5.3.97           */
 	{
 		struct dict_avp_data data = {
@@ -3142,6 +3629,19 @@
 		CHECK_dict_new(DICT_AVP, &data, Address_type, NULL);
 	};
 
+	/* UE-Status, Unsigned32, code 2854, section 5.3.140                */
+	{
+		struct dict_avp_data data = {
+			2854,	/* Code */
+			10415,	/* Vendor */
+			"UE-Status",	/* 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);
+	};
+
 	/* Usage-Monitoring-Information, Grouped, code 1067, section 5.3.60 */
 	{
 		struct dict_avp_data data = {
@@ -3155,19 +3655,6 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Rule-Deactivation-Time, Time, code 1044, section 5.3.43          */
-	{
-		struct dict_avp_data data = {
-			1044,	/* Code */
-			10415,	/* Vendor */
-			"Rule-Deactivation-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);
-	};
-
 	/* Usage-Monitoring-Level, Enumerated, code 1068, section 5.3.61    */
 	{
 		struct dict_avp_data data = {
@@ -3216,7 +3703,36 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Gxx-specific                                                     */
+	/* User-Location-Info-Time, Time, code 2812, section 5.3.101        */
+	{
+		struct dict_avp_data data = {
+			2812,	/* Code */
+			10415,	/* Vendor */
+			"User-Location-Info-Time",	/* 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);
+	};
+
+	/* PCSCF-Restoration-Indication, Unsigned32, code 2826, section 5.3.113 */
+	{
+		struct dict_avp_data data = {
+			2826,	/* Code */
+			10415,	/* Vendor */
+			"PCSCF-Restoration-Indication",	/* 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 TS 29.212 Table 5a.3.0.1: Gxx specific Diameter AVPs        */
+	/*==================================================================*/
+
 	/* QoS-Rule-Install, Grouped, code 1051, section 5a.3.1             */
 	{
 		struct dict_avp_data data = {
@@ -3311,7 +3827,109 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* S15-specific                                                     */
+	/*==================================================================*/
+	/* 3GPP TS 29.212 Table 5b.3.0.1: Sd specific Diameter AVPs         */
+	/*==================================================================*/
+
+	/* ADC-Rule-Base-Name, UTF8String, code 1095, section 5b.3.4        */
+	{
+		struct dict_avp_data data = {
+			1095,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Base-Name",	/* 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, UTF8String_type, NULL);
+	};
+
+	/* ADC-Rule-Definition, Grouped, code 1094, section 5b.3.3          */
+	{
+		struct dict_avp_data data = {
+			1094,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Definition",	/* 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);
+	};
+
+	/* ADC-Rule-Install, Grouped, code 1092, section 5b.3.1             */
+	{
+		struct dict_avp_data data = {
+			1092,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Install",	/* 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);
+	};
+
+	/* ADC-Rule-Name, OctetString, code 1096, section 5b.3.5            */
+	{
+		struct dict_avp_data data = {
+			1096,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Name",	/* 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);
+	};
+
+	/* ADC-Rule-Remove, Grouped, code 1093, section 5b.3.2              */
+	{
+		struct dict_avp_data data = {
+			1093,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-Remove",	/* 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);
+	};
+
+	/* ADC-Rule-Report, Grouped, code 1097, section 5b.3.6              */
+	{
+		struct dict_avp_data data = {
+			1097,	/* Code */
+			10415,	/* Vendor */
+			"ADC-Rule-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);
+	};
+
+	/*==================================================================*/
+	/* 3GPP TS 29.212 Table 5c.3.1.1: St specific Diameter AVPs         */
+	/*==================================================================*/
+
+	/* Request-Type, Unsigned32, code 2838, section 5c.3.2              */
+	{
+		struct dict_avp_data data = {
+			2838,	/* Code */
+			10415,	/* Vendor */
+			"Request-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);
+	};
+
+	/*==================================================================*/
+	/* 3GPP TS 29.212 Table E.6.3.1.1: S15 specific Diameter AVPs       */
+	/*==================================================================*/
+
 	/* CS-Service-Qos-Request-Identifier, OctetString, code 2807, section E.6.3.2 */
 	{
 		struct dict_avp_data data = {
@@ -3341,6 +3959,51 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* CS-Service-Resource-Report, Grouped, code 2813, section E.6.3.6  */
+	{
+		struct dict_avp_data data = {
+			2813,	/* Code */
+			10415,	/* Vendor */
+			"CS-Service-Resource-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);
+	};
+
+	/* CS-Service-Resource-Failure-Cause, Enumerated, code 2814, section E.6.3.5 */
+	{
+		struct dict_avp_data data = {
+			2814,	/* Code */
+			10415,	/* Vendor */
+			"CS-Service-Resource-Failure-Cause",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/CS-Service-Resource-Failure-Cause)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* CS-Service-Resource-Result-Operation, Enumerated, code 2815, section E.6.3.4 */
+	{
+		struct dict_avp_data data = {
+			2815,	/* Code */
+			10415,	/* Vendor */
+			"CS-Service-Resource-Result-Operation",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_INTEGER32	/* base type of data */
+		};
+		struct dict_object	*type;
+		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/CS-Service-Resource-Result-Operation)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/*==================================================================*/
 	/* 3GPP TS 29.214 V15.7.0 (2019-09)                                 */
 	/* From 3GPP 29214-f70.doc                                          */
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	Wed Mar 18 13:57:11 2020 +1100
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	Wed Mar 18 14:06:08 2020 +1100
@@ -186,52 +186,75 @@
 ,,,,,,,,
 @standard,3GPP TS 29.212,,,,,,,
 #=,,,,,,,,
-# 3GPP 29.212-c00 (12.0.0 2013.03.15),,,,,,,,
+# 3GPP TS 29.212 V15.9.0 (2019-12),,,,,,,,
+# From 3GPP 29212-f90.doc,,,,,,,,
 #=,,,,,,,,
 #,,,,,,,,
-# Gx-specific,,,,,,,,
+#=,,,,,,,,
+# 3GPP TS 29.212 Table 5.3.0.1: Gx specific Diameter AVPs,,,,,,,,
+#=,,,,,,,,
 #,,,,,,,,
+# 3GPP TS 29.212 V12.1.0 (2013-06) removed ADC-Revalidation-Time.,,,,,,,,
 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
-ADC-Rule-Definition,1094,5.3.87,Grouped,V,P,,M,Y
-ADC-Rule-Base-Name,1095,5.3.88,UTF8String,V,P,,M,Y
-ADC-Rule-Name,1096,5.3.89,OctetString,V,P,,M,Y
-ADC-Rule-Report,1097,5.3.90,Grouped,V,P,,M,Y
-Application-Detection-Information,1098,5.3.91,Grouped,V,P,,M,Y
+3GPP-PS-Data-Off-Status,2847,5.3.133,Enumerated,V,P,,M,Y
+Access-Availability-Change-Reason,2833,5.3.121,Unsigned32,V,P,,M,Y
 Access-Network-Charging-Identifier-Gx,1022,5.3.22,Grouped,"M,V",P,,,Y
 Allocation-Retention-Priority,1034,5.3.32,Grouped,V,P,,M,Y
 AN-GW-Address,1050,5.3.49,Address,V,P,,M,Y
+AN-GW-Status,2811,5.3.100,Enumerated,V,P,,M,Y
 APN-Aggregate-Max-Bitrate-DL,1040,5.3.39,Unsigned32,V,P,,M,Y
 APN-Aggregate-Max-Bitrate-UL,1041,5.3.40,Unsigned32,V,P,,M,Y
+Application-Detection-Information,1098,5.3.91,Grouped,V,P,,M,Y
 Bearer-Control-Mode,1023,5.3.23,Enumerated,"M,V",P,,,Y
 Bearer-Identifier,1020,5.3.20,OctetString,"M,V",P,,,Y
 Bearer-Operation,1021,5.3.21,Enumerated,"M,V",P,,,Y
 Bearer-Usage,1000,5.3.1,Enumerated,"M,V",P,,,Y
-Charging-Rule-Install,1001,5.3.2,Grouped,"M,V",P,,,Y
-Charging-Rule-Remove,1002,5.3.3,Grouped,"M,V",P,,,Y
+Charging-Correlation-Indicator,1073,5.3.67,Enumerated,V,P,,M,Y
+Charging-Rule-Base-Name,1004,5.3.5,UTF8String,"M,V",P,,,Y
 Charging-Rule-Definition,1003,5.3.4,Grouped,"M,V",P,,,Y
-Charging-Rule-Base-Name,1004,5.3.5,UTF8String,"M,V",P,,,Y
+Charging-Rule-Install,1001,5.3.2,Grouped,"M,V",P,,,Y
 Charging-Rule-Name,1005,5.3.6,OctetString,"M,V",P,,,Y
+Charging-Rule-Remove,1002,5.3.3,Grouped,"M,V",P,,,Y
 Charging-Rule-Report,1018,5.3.18,Grouped,"M,V",P,,,Y
-Charging-Correlation-Indicator,1073,5.3.67,Enumerated,V,P,,M,Y
+CoA-Information,1039,5.3.37,Grouped,V,P,,M,Y
 CoA-IP-Address,1035,5.3.33,Address,V,P,,M,Y
-CoA-Information,1039,5.3.37,Grouped,V,P,,M,Y
+Conditional-APN-Aggregate-Max-Bitrate,2818,5.3.105,Grouped,V,P,,M,Y
+Conditional-Policy-Information,2840,5.3.128,Grouped,V,P,,M,Y
+Credit-Management-Status,1082,5.3.102,Unsigned32,V,P,,M,Y
 CSG-Information-Reporting,1071,5.3.64,Enumerated,V,P,,M,Y
+Default-Access,2829,5.3.120,Enumerated,V,P,,M,Y
+Default-Bearer-Indication,2844,5.3.132,Enumerated,V,P,,M,Y
 Default-EPS-Bearer-QoS,1049,5.3.48,Grouped,V,P,,M,Y
+Default-QoS-Information,2816,5.3.103,Grouped,V,P,,M,Y
+Default-QoS-Name,2817,5.3.104,UTF8String,V,P,,M,Y
 Event-Report-Indication,1033,5.3.30,Grouped,V,P,,M,Y
 Event-Trigger,1006,5.3.7,Enumerated,"M,V",P,,,Y
+Execution-Time,2839,5.3.127,Time,V,P,,M,Y
+Extended-APN-AMBR-DL,2848,5.3.134,Unsigned32,V,P,,M,Y
+Extended-APN-AMBR-UL,2849,5.3.135,Unsigned32,V,P,,M,Y
+Extended-GBR-DL,2850,5.3.136,Unsigned32,V,P,,M,Y
+Extended-GBR-UL,2851,5.3.137,Unsigned32,V,P,,M,Y
 Flow-Direction,1080,5.3.65,Enumerated,V,P,,M,Y
 Flow-Information,1058,5.3.53,Grouped,V,P,,M,Y
 Flow-Label,1057,5.3.52,OctetString,V,P,,M,Y
-IP-CAN-Type,1027,5.3.27,Enumerated,"M,V",P,,,Y
+Fixed-User-Location-Info,2825,5.3.112,Grouped,V,P,,M,Y
 Guaranteed-Bitrate-DL,1025,5.3.25,Unsigned32,"M,V",P,,,Y
 Guaranteed-Bitrate-UL,1026,5.3.26,Unsigned32,"M,V",P,,,Y
+# 3GPP TS 29.212 V11.8.0 (2013-03) removed HeNB-BBF-FQDN.,,,,,,,,
+HeNB-BBF-FQDN,2803,5.3.94,UTF8String,V,P,,M,Y
 HeNB-Local-IP-Address,2804,5.3.95,Address,V,P,,M,Y
+IP-CAN-Session-Charging-Scope,2827,5.3.114,Enumerated,V,P,,M,Y
+IP-CAN-Type,1027,5.3.27,Enumerated,"M,V",P,,,Y
+Max-PLR-DL,2852,5.3.138,Float32,V,P,,M,Y
+Max-PLR-UL,2853,5.3.139,Float32,V,P,,M,Y
 Metering-Method,1007,5.3.8,Enumerated,"M,V",P,,,Y
+Monitoring-Flags,2828,5.3.115,Unsigned32,V,,,M,Y
 Monitoring-Key,1066,5.3.59,OctetString,V,P,,M,Y
 Mute-Notification,2809,5.3.98,Enumerated,V,P,,M,Y
 Monitoring-Time,2810,5.3.99,Time,V,P,,M,Y
+NBIFOM-Mode,2830,5.3.117,Enumerated,V,P,,M,Y
+NBIFOM-Support,2831,5.3.116,Enumerated,V,P,,M,Y
+NetLoc-Access-Support,2824,5.3.111,Unsigned32,V,P,,M,Y
 Network-Request-Support,1024,5.3.24,Enumerated,"M,V",P,,,Y
 Offline,1008,5.3.9,Enumerated,"M,V",P,,,Y
 Online,1009,5.3.10,Enumerated,"M,V",P,,,Y
@@ -240,53 +263,75 @@
 Packet-Filter-Information,1061,5.3.56,Grouped,V,P,,M,Y
 Packet-Filter-Operation,1062,5.3.57,Enumerated,V,P,,M,Y
 Packet-Filter-Usage,1072,5.3.66,Enumerated,V,P,,M,Y
+PCC-Rule-Status,1019,5.3.19,Enumerated,"M,V",P,,,Y
 PDN-Connection-ID,1065,5.3.58,OctetString,V,P,,,Y
+PRA-Install,2845,5.3.130,Grouped,V,P,,M,
+PRA-Remove,2846,5.3.131,Grouped,V,P,,M,
 Precedence,1010,5.3.11,Unsigned32,"M,V",P,,,Y
 Pre-emption-Capability,1047,5.3.46,Enumerated,V,P,,M,Y
 Pre-emption-Vulnerability,1048,5.3.47,Enumerated,V,P,,M,Y
+Presence-Reporting-Area-Elements-List,2820,5.3.107,OctetString,V,P,,M,Y
+Presence-Reporting-Area-Identifier,2821,5.3.108,OctetString,V,P,,M,Y
+Presence-Reporting-Area-Information,2822,5.3.109,Grouped,V,P,,M,Y
+Presence-Reporting-Area-Node,2855,5.3.141,Unsigned32,V,P,,M,Y
+Presence-Reporting-Area-Status,2823,5.3.110,Unsigned32,V,P,,M,Y
 Priority-Level,1046,5.3.45,Unsigned32,V,P,,M,Y
+PS-to-CS-Session-Continuity,1099,5.3.84,Enumerated,V,P,,,Y
+QoS-Class-Identifier,1028,5.3.17,Enumerated,"M,V",P,,,Y
+QoS-Information,1016,5.3.16,Grouped,"M,V",P,,,Y
+QoS-Negotiation,1029,5.3.28,Enumerated,"M,V",P,,,Y
+QoS-Upgrade,1030,5.3.29,Enumerated,"M,V",P,,,Y
+RAN-NAS-Release-Cause,2819,5.3.106,OctetString,V,P,,M,Y
+RAN-Rule-Support,2832,5.3.122,Unsigned32,V,P,,M,Y
+RAT-Type,1032,5.3.31,Enumerated,V,P,,M,Y
 Redirect-Information,1085,5.3.82,Grouped,V,P,,M,Y
 Redirect-Support,1086,5.3.83,Enumerated,V,P,,M,Y
+Removal-Of-Access,2842,5.3.126,Enumerated,V,P,,M,Y
 Reporting-Level,1011,5.3.12,Enumerated,"M,V",P,,,Y
+Resource-Allocation-Notification,1063,5.3.50,Enumerated,V,P,,M,Y
+Resource-Release-Notification,2841,5.3.125,Enumerated,V,P,,M,Y
+Revalidation-Time,1042,5.3.41,Time,"M,V",P,,,Y
 Routing-Filter,1078,5.3.72,Grouped,V,P,,M,Y
 Routing-IP-Address,1079,5.3.73,Address,V,P,,M,Y
 Routing-Rule-Definition,1076,5.3.70,Grouped,V,P,,M,Y
 Routing-Rule-Identifier,1077,5.3.71,OctetString,V,P,,M,Y
 Routing-Rule-Install,1081,5.3.68,Grouped,V,P,,M,Y
 Routing-Rule-Remove,1075,5.3.69,Grouped,V,P,,M,Y
-PCC-Rule-Status,1019,5.3.19,Enumerated,"M,V",P,,,Y
+Routing-Rule-Failure-Code,2834,5.3.119,Unsigned32,V,P,,M,Y
+Routing-Rule-Report,2835,5.3.118,Grouped,V,P,,M,Y
+Rule-Activation-Time,1043,5.3.42,Time,"M,V",P,,,Y
+Rule-Deactivation-Time,1044,5.3.43,Time,"M,V",P,,,Y
+Rule-Failure-Code,1031,5.3.38,Enumerated,"M,V",P,,,Y
+Security-Parameter-Index,1056,5.3.51,OctetString,V,P,,M,Y
 Session-Release-Cause,1045,5.3.44,Enumerated,"M,V",P,,,Y
+TCP-Source-Port,2843,5.3.129,Unsigned32,V,P,,M,Y
 TDF-Information,1087,5.3.78,Grouped,V,P,,M,Y
 TDF-Application-Identifier,1088,5.3.77,OctetString,V,P,,M,Y
 TDF-Application-Instance-Identifier,2802,5.3.92,OctetString,V,P,,M,Y
 TDF-Destination-Host,1089,5.3.80,DiameterIdentity,V,P,,M,Y
 TDF-Destination-Realm,1090,5.3.79,DiameterIdentity,V,P,,M,Y
 TDF-IP-Address,1091,5.3.81,Address,V,P,,M,Y
-QoS-Class-Identifier,1028,5.3.17,Enumerated,"M,V",P,,,Y
-QoS-Information,1016,5.3.16,Grouped,"M,V",P,,,Y
-QoS-Negotiation,1029,5.3.28,Enumerated,"M,V",P,,,Y
-QoS-Upgrade,1030,5.3.29,Enumerated,"M,V",P,,,Y
-PS-to-CS-Session-Continuity,1099,5.3.84,Enumerated,V,P,,,Y
-Resource-Allocation-Notification,1063,5.3.50,Enumerated,V,P,,M,Y
-Rule-Failure-Code,1031,5.3.38,Enumerated,"M,V",P,,,Y
-Security-Parameter-Index,1056,5.3.51,OctetString,V,P,,M,Y
 TFT-Filter,1012,5.3.13,IPFilterRule,"M,V",P,,,Y
 TFT-Packet-Filter-Information,1013,5.3.14,Grouped,"M,V",P,,,Y
+Traffic-Steering-Policy-Identifier-DL,2836,5.3.123,OctetString,V,P,,M,Y
+Traffic-Steering-Policy-Identifier-UL,2837,5.3.124,OctetString,V,P,,M,Y
 ToS-Traffic-Class,1014,5.3.15,OctetString,"M,V",P,,,Y
 Tunnel-Header-Filter,1036,5.3.34,IPFilterRule,V,P,,M,Y
 Tunnel-Header-Length,1037,5.3.35,Unsigned32,V,P,,M,Y
 Tunnel-Information,1038,5.3.36,Grouped,V,P,,M,Y
-RAT-Type,1032,5.3.31,Enumerated,V,P,,M,Y
-Revalidation-Time,1042,5.3.41,Time,"M,V",P,,,Y
-Rule-Activation-Time,1043,5.3.42,Time,"M,V",P,,,Y
 UDP-Source-Port,2806,5.3.97,Unsigned32,V,P,,M,Y
 UE-Local-IP-Address,2805,5.3.96,Address,V,P,,M,Y
+UE-Status,2854,5.3.140,Unsigned32,V,P,,M,Y
 Usage-Monitoring-Information,1067,5.3.60,Grouped,V,P,,M,Y
-Rule-Deactivation-Time,1044,5.3.43,Time,"M,V",P,,,Y
 Usage-Monitoring-Level,1068,5.3.61,Enumerated,V,P,,M,Y
 Usage-Monitoring-Report,1069,5.3.62,Enumerated,V,P,,M,Y
 Usage-Monitoring-Support,1070,5.3.63,Enumerated,V,P,,M,Y
-# Gxx-specific,,,,,,,,
+User-Location-Info-Time,2812,5.3.101,Time,V,P,,M,Y
+PCSCF-Restoration-Indication,2826,5.3.113,Unsigned32,V,P,,M,Y
+#=,,,,,,,,
+# 3GPP TS 29.212 Table 5a.3.0.1: Gxx specific Diameter AVPs,,,,,,,,
+#=,,,,,,,,
+#,,,,,,,,
 QoS-Rule-Install,1051,5a.3.1,Grouped,"M,V",P,,,Y
 QoS-Rule-Remove,1052,5a.3.2,Grouped,"M,V",P,,,Y
 QoS-Rule-Definition,1053,5a.3.3,Grouped,"M,V",P,,,Y
@@ -294,9 +339,30 @@
 QoS-Rule-Base-Name,1074,5a.3.7,UTF8String,V,P,,M,Y
 QoS-Rule-Report,1055,5a.3.5,Grouped,"M,V",P,,,Y
 Session-Linking-Indicator,1064,5a.3.6,Enumerated,"M,V",P,,,Y
-# S15-specific,,,,,,,,
-CS-Service-Qos-Request-Identifier,2807,E.6.3.2,OctetString,"M,V",P,,,Y
-CS-Service-QoS-Request-Operation,2808,E.6.3.3,Enumerated,"M,V",P,,,Y
+#=,,,,,,,,
+# 3GPP TS 29.212 Table 5b.3.0.1: Sd specific Diameter AVPs,,,,,,,,
+#=,,,,,,,,
+#,,,,,,,,
+ADC-Rule-Base-Name,1095,5b.3.4,UTF8String,"M,V",P,,,Y
+ADC-Rule-Definition,1094,5b.3.3,Grouped,"M,V",P,,,Y
+ADC-Rule-Install,1092,5b.3.1,Grouped,"M,V",P,,,Y
+ADC-Rule-Name,1096,5b.3.5,OctetString,"M,V",P,,,Y
+ADC-Rule-Remove,1093,5b.3.2,Grouped,"M,V",P,,,Y
+ADC-Rule-Report,1097,5b.3.6,Grouped,"M,V",P,,,Y
+#=,,,,,,,,
+# 3GPP TS 29.212 Table 5c.3.1.1: St specific Diameter AVPs,,,,,,,,
+#=,,,,,,,,
+#,,,,,,,,
+Request-Type,2838,5c.3.2,Unsigned32,"M,V",P,,,Y
+#=,,,,,,,,
+# 3GPP TS 29.212 Table E.6.3.1.1: S15 specific Diameter AVPs,,,,,,,,
+#=,,,,,,,,
+#,,,,,,,,
+CS-Service-Qos-Request-Identifier,2807,E.6.3.2,OctetString,"M, V",P,,,Y
+CS-Service-QoS-Request-Operation,2808,E.6.3.3,Enumerated,"M, V",P,,,Y
+CS-Service-Resource-Report,2813,E.6.3.6,Grouped,"M, V",P,,,Y
+CS-Service-Resource-Failure-Cause,2814,E.6.3.5,Enumerated,"M, V",P,,,Y
+CS-Service-Resource-Result-Operation,2815,E.6.3.4,Enumerated,"M, V",P,,,Y
 ,,,,,,,,
 @standard,3GPP TS 29.214,,,,,,,
 #=,,,,,,,,
"Welcome to our mercurial repository"