Index: extensions/dict_dcca_3gpp/dict_dcca_3gpp.c
===================================================================
--- extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	(revision 1472)
+++ extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	(revision 1473)
@@ -1884,9 +1884,13 @@
 
 	/*==================================================================*/
-	/* 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           */
 	{
@@ -1902,51 +1906,212 @@
 	};
 
-	/* 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 */
+	/* 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);
+	};
+
+	/* Access-Network-Charging-Identifier-Gx, Grouped, code 1022, section 5.3.22 */
+	{
+		struct dict_avp_data data = {
+			1022,	/* Code */
+			10415,	/* Vendor */
+			"Access-Network-Charging-Identifier-Gx",	/* 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);
+	};
+
+	/* Allocation-Retention-Priority, Grouped, code 1034, section 5.3.32 */
+	{
+		struct dict_avp_data data = {
+			1034,	/* Code */
+			10415,	/* Vendor */
+			"Allocation-Retention-Priority",	/* 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);
+	};
+
+	/* AN-GW-Address, Address, code 1050, section 5.3.49                */
+	{
+		struct dict_avp_data data = {
+			1050,	/* Code */
+			10415,	/* Vendor */
+			"AN-GW-Address",	/* 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, 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 = {
+			1040,	/* Code */
+			10415,	/* Vendor */
+			"APN-Aggregate-Max-Bitrate-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);
+	};
+
+	/* APN-Aggregate-Max-Bitrate-UL, Unsigned32, code 1041, section 5.3.40 */
+	{
+		struct dict_avp_data data = {
+			1041,	/* Code */
+			10415,	/* Vendor */
+			"APN-Aggregate-Max-Bitrate-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);
+	};
+
+	/* 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 = {
+			1023,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-Control-Mode",	/* 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/Bearer-Control-Mode)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Bearer-Identifier, OctetString, code 1020, section 5.3.20        */
+	{
+		struct dict_avp_data data = {
+			1020,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-Identifier",	/* 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);
+	};
+
+	/* Bearer-Operation, Enumerated, code 1021, section 5.3.21          */
+	{
+		struct dict_avp_data data = {
+			1021,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-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/Bearer-Operation)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Bearer-Usage, Enumerated, code 1000, section 5.3.1               */
+	{
+		struct dict_avp_data data = {
+			1000,	/* Code */
+			10415,	/* Vendor */
+			"Bearer-Usage",	/* 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/Bearer-Usage)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Charging-Correlation-Indicator, Enumerated, code 1073, section 5.3.67 */
+	{
+		struct dict_avp_data data = {
+			1073,	/* Code */
+			10415,	/* Vendor */
+			"Charging-Correlation-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/Charging-Correlation-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		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 */
 		};
@@ -1954,75 +2119,88 @@
 	};
 
-	/* 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 */
-		};
-		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Access-Network-Charging-Identifier-Gx, Grouped, code 1022, section 5.3.22 */
-	{
-		struct dict_avp_data data = {
-			1022,	/* Code */
-			10415,	/* Vendor */
-			"Access-Network-Charging-Identifier-Gx",	/* 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);
-	};
-
-	/* Allocation-Retention-Priority, Grouped, code 1034, section 5.3.32 */
-	{
-		struct dict_avp_data data = {
-			1034,	/* Code */
-			10415,	/* Vendor */
-			"Allocation-Retention-Priority",	/* 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);
-	};
-
-	/* AN-GW-Address, Address, code 1050, section 5.3.49                */
-	{
-		struct dict_avp_data data = {
-			1050,	/* Code */
-			10415,	/* Vendor */
-			"AN-GW-Address",	/* Name */
+	/* 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 = {
+			1035,	/* Code */
+			10415,	/* Vendor */
+			"CoA-IP-Address",	/* Name */
 			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
 			AVP_FLAG_VENDOR,	/* Fixed flag values */
@@ -2032,138 +2210,125 @@
 	};
 
-	/* APN-Aggregate-Max-Bitrate-DL, Unsigned32, code 1040, section 5.3.39 */
-	{
-		struct dict_avp_data data = {
-			1040,	/* Code */
-			10415,	/* Vendor */
-			"APN-Aggregate-Max-Bitrate-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);
-	};
-
-	/* APN-Aggregate-Max-Bitrate-UL, Unsigned32, code 1041, section 5.3.40 */
-	{
-		struct dict_avp_data data = {
-			1041,	/* Code */
-			10415,	/* Vendor */
-			"APN-Aggregate-Max-Bitrate-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);
-	};
-
-	/* Bearer-Control-Mode, Enumerated, code 1023, section 5.3.23       */
-	{
-		struct dict_avp_data data = {
-			1023,	/* Code */
-			10415,	/* Vendor */
-			"Bearer-Control-Mode",	/* 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/Bearer-Control-Mode)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Bearer-Identifier, OctetString, code 1020, section 5.3.20        */
-	{
-		struct dict_avp_data data = {
-			1020,	/* Code */
-			10415,	/* Vendor */
-			"Bearer-Identifier",	/* 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);
-	};
-
-	/* Bearer-Operation, Enumerated, code 1021, section 5.3.21          */
-	{
-		struct dict_avp_data data = {
-			1021,	/* Code */
-			10415,	/* Vendor */
-			"Bearer-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/Bearer-Operation)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Bearer-Usage, Enumerated, code 1000, section 5.3.1               */
-	{
-		struct dict_avp_data data = {
-			1000,	/* Code */
-			10415,	/* Vendor */
-			"Bearer-Usage",	/* 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/Bearer-Usage)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		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 */
+	/* 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);
+	};
+
+	/* CSG-Information-Reporting, Enumerated, code 1071, section 5.3.64 */
+	{
+		struct dict_avp_data data = {
+			1071,	/* Code */
+			10415,	/* Vendor */
+			"CSG-Information-Reporting",	/* 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/CSG-Information-Reporting)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		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 = {
+			1049,	/* Code */
+			10415,	/* Vendor */
+			"Default-EPS-Bearer-QoS",	/* 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-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 */
 		};
@@ -2171,52 +2336,199 @@
 	};
 
-	/* 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 = {
-			1073,	/* Code */
-			10415,	/* Vendor */
-			"Charging-Correlation-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/Charging-Correlation-Indicator)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* CoA-IP-Address, Address, code 1035, section 5.3.33               */
-	{
-		struct dict_avp_data data = {
-			1035,	/* Code */
-			10415,	/* Vendor */
-			"CoA-IP-Address",	/* Name */
+	/* Event-Report-Indication, Grouped, code 1033, section 5.3.30      */
+	{
+		struct dict_avp_data data = {
+			1033,	/* Code */
+			10415,	/* Vendor */
+			"Event-Report-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);
+	};
+
+	/* Event-Trigger, Enumerated, code 1006, section 5.3.7              */
+	{
+		struct dict_avp_data data = {
+			1006,	/* Code */
+			10415,	/* Vendor */
+			"Event-Trigger",	/* 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/Event-Trigger)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		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 = {
+			1080,	/* Code */
+			10415,	/* Vendor */
+			"Flow-Direction",	/* 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/Flow-Direction)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Flow-Information, Grouped, code 1058, section 5.3.53             */
+	{
+		struct dict_avp_data data = {
+			1058,	/* Code */
+			10415,	/* Vendor */
+			"Flow-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);
+	};
+
+	/* Flow-Label, OctetString, code 1057, section 5.3.52               */
+	{
+		struct dict_avp_data data = {
+			1057,	/* Code */
+			10415,	/* Vendor */
+			"Flow-Label",	/* 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);
+	};
+
+	/* 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     */
+	{
+		struct dict_avp_data data = {
+			1025,	/* Code */
+			10415,	/* Vendor */
+			"Guaranteed-Bitrate-DL",	/* 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);
+	};
+
+	/* Guaranteed-Bitrate-UL, Unsigned32, code 1026, section 5.3.26     */
+	{
+		struct dict_avp_data data = {
+			1026,	/* Code */
+			10415,	/* Vendor */
+			"Guaranteed-Bitrate-UL",	/* 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 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 = {
+			2804,	/* Code */
+			10415,	/* Vendor */
+			"HeNB-Local-IP-Address",	/* Name */
 			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
 			AVP_FLAG_VENDOR,	/* Fixed flag values */
@@ -2226,115 +2538,18 @@
 	};
 
-	/* 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);
-	};
-
-	/* CSG-Information-Reporting, Enumerated, code 1071, section 5.3.64 */
-	{
-		struct dict_avp_data data = {
-			1071,	/* Code */
-			10415,	/* Vendor */
-			"CSG-Information-Reporting",	/* 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/CSG-Information-Reporting)", 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 = {
-			1049,	/* Code */
-			10415,	/* Vendor */
-			"Default-EPS-Bearer-QoS",	/* 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);
-	};
-
-	/* Event-Report-Indication, Grouped, code 1033, section 5.3.30      */
-	{
-		struct dict_avp_data data = {
-			1033,	/* Code */
-			10415,	/* Vendor */
-			"Event-Report-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);
-	};
-
-	/* Event-Trigger, Enumerated, code 1006, section 5.3.7              */
-	{
-		struct dict_avp_data data = {
-			1006,	/* Code */
-			10415,	/* Vendor */
-			"Event-Trigger",	/* 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/Event-Trigger)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Flow-Direction, Enumerated, code 1080, section 5.3.65            */
-	{
-		struct dict_avp_data data = {
-			1080,	/* Code */
-			10415,	/* Vendor */
-			"Flow-Direction",	/* 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/Flow-Direction)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Flow-Information, Grouped, code 1058, section 5.3.53             */
-	{
-		struct dict_avp_data data = {
-			1058,	/* Code */
-			10415,	/* Vendor */
-			"Flow-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);
-	};
-
-	/* Flow-Label, OctetString, code 1057, section 5.3.52               */
-	{
-		struct dict_avp_data data = {
-			1057,	/* Code */
-			10415,	/* Vendor */
-			"Flow-Label",	/* 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);
+	/* 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);
 	};
 
@@ -2355,41 +2570,28 @@
 	};
 
-	/* Guaranteed-Bitrate-DL, Unsigned32, code 1025, section 5.3.25     */
-	{
-		struct dict_avp_data data = {
-			1025,	/* Code */
-			10415,	/* Vendor */
-			"Guaranteed-Bitrate-DL",	/* 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);
-	};
-
-	/* Guaranteed-Bitrate-UL, Unsigned32, code 1026, section 5.3.26     */
-	{
-		struct dict_avp_data data = {
-			1026,	/* Code */
-			10415,	/* Vendor */
-			"Guaranteed-Bitrate-UL",	/* 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);
-	};
-
-	/* HeNB-Local-IP-Address, Address, code 2804, section 5.3.95        */
-	{
-		struct dict_avp_data data = {
-			2804,	/* Code */
-			10415,	/* Vendor */
-			"HeNB-Local-IP-Address",	/* 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, Address_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);
 	};
 
@@ -2410,4 +2612,17 @@
 	};
 
+	/* 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           */
 	{
@@ -2452,4 +2667,49 @@
 	};
 
+	/* 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   */
 	{
@@ -2567,4 +2827,20 @@
 		struct dict_object	*type;
 		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/Packet-Filter-Usage)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		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);
@@ -2584,4 +2860,30 @@
 	};
 
+	/* 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                */
 	{
@@ -2629,4 +2931,69 @@
 	};
 
+	/* 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            */
 	{
@@ -2640,298 +3007,4 @@
 		};
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
-	};
-
-	/* Redirect-Information, Grouped, code 1085, section 5.3.82         */
-	{
-		struct dict_avp_data data = {
-			1085,	/* Code */
-			10415,	/* Vendor */
-			"Redirect-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);
-	};
-
-	/* Redirect-Support, Enumerated, code 1086, section 5.3.83          */
-	{
-		struct dict_avp_data data = {
-			1086,	/* Code */
-			10415,	/* Vendor */
-			"Redirect-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/Redirect-Support)", 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 = {
-			1011,	/* Code */
-			10415,	/* Vendor */
-			"Reporting-Level",	/* 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/Reporting-Level)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Routing-Filter, Grouped, code 1078, section 5.3.72               */
-	{
-		struct dict_avp_data data = {
-			1078,	/* Code */
-			10415,	/* Vendor */
-			"Routing-Filter",	/* 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);
-	};
-
-	/* Routing-IP-Address, Address, code 1079, section 5.3.73           */
-	{
-		struct dict_avp_data data = {
-			1079,	/* Code */
-			10415,	/* Vendor */
-			"Routing-IP-Address",	/* 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, Address_type, NULL);
-	};
-
-	/* Routing-Rule-Definition, Grouped, code 1076, section 5.3.70      */
-	{
-		struct dict_avp_data data = {
-			1076,	/* Code */
-			10415,	/* Vendor */
-			"Routing-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);
-	};
-
-	/* Routing-Rule-Identifier, OctetString, code 1077, section 5.3.71  */
-	{
-		struct dict_avp_data data = {
-			1077,	/* Code */
-			10415,	/* Vendor */
-			"Routing-Rule-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);
-	};
-
-	/* Routing-Rule-Install, Grouped, code 1081, section 5.3.68         */
-	{
-		struct dict_avp_data data = {
-			1081,	/* Code */
-			10415,	/* Vendor */
-			"Routing-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);
-	};
-
-	/* Routing-Rule-Remove, Grouped, code 1075, section 5.3.69          */
-	{
-		struct dict_avp_data data = {
-			1075,	/* Code */
-			10415,	/* Vendor */
-			"Routing-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);
-	};
-
-	/* 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);
-	};
-
-	/* Session-Release-Cause, Enumerated, code 1045, section 5.3.44     */
-	{
-		struct dict_avp_data data = {
-			1045,	/* Code */
-			10415,	/* Vendor */
-			"Session-Release-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/Session-Release-Cause)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* TDF-Information, Grouped, code 1087, section 5.3.78              */
-	{
-		struct dict_avp_data data = {
-			1087,	/* Code */
-			10415,	/* Vendor */
-			"TDF-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);
-	};
-
-	/* TDF-Application-Identifier, OctetString, code 1088, section 5.3.77 */
-	{
-		struct dict_avp_data data = {
-			1088,	/* Code */
-			10415,	/* Vendor */
-			"TDF-Application-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);
-	};
-
-	/* TDF-Application-Instance-Identifier, OctetString, code 2802, section 5.3.92 */
-	{
-		struct dict_avp_data data = {
-			2802,	/* Code */
-			10415,	/* Vendor */
-			"TDF-Application-Instance-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);
-	};
-
-	/* TDF-Destination-Host, DiameterIdentity, code 1089, section 5.3.80 */
-	{
-		struct dict_avp_data data = {
-			1089,	/* Code */
-			10415,	/* Vendor */
-			"TDF-Destination-Host",	/* 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);
-	};
-
-	/* TDF-Destination-Realm, DiameterIdentity, code 1090, section 5.3.79 */
-	{
-		struct dict_avp_data data = {
-			1090,	/* Code */
-			10415,	/* Vendor */
-			"TDF-Destination-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);
-	};
-
-	/* TDF-IP-Address, Address, code 1091, section 5.3.81               */
-	{
-		struct dict_avp_data data = {
-			1091,	/* Code */
-			10415,	/* Vendor */
-			"TDF-IP-Address",	/* 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, 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);
 	};
 
@@ -2952,4 +3025,168 @@
 	};
 
+	/* 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 = {
+			1085,	/* Code */
+			10415,	/* Vendor */
+			"Redirect-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);
+	};
+
+	/* Redirect-Support, Enumerated, code 1086, section 5.3.83          */
+	{
+		struct dict_avp_data data = {
+			1086,	/* Code */
+			10415,	/* Vendor */
+			"Redirect-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/Redirect-Support)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		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 = {
+			1011,	/* Code */
+			10415,	/* Vendor */
+			"Reporting-Level",	/* 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/Reporting-Level)", 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 */
 	{
@@ -2968,4 +3205,163 @@
 	};
 
+	/* 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 = {
+			1078,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Filter",	/* 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);
+	};
+
+	/* Routing-IP-Address, Address, code 1079, section 5.3.73           */
+	{
+		struct dict_avp_data data = {
+			1079,	/* Code */
+			10415,	/* Vendor */
+			"Routing-IP-Address",	/* 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, Address_type, NULL);
+	};
+
+	/* Routing-Rule-Definition, Grouped, code 1076, section 5.3.70      */
+	{
+		struct dict_avp_data data = {
+			1076,	/* Code */
+			10415,	/* Vendor */
+			"Routing-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);
+	};
+
+	/* Routing-Rule-Identifier, OctetString, code 1077, section 5.3.71  */
+	{
+		struct dict_avp_data data = {
+			1077,	/* Code */
+			10415,	/* Vendor */
+			"Routing-Rule-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);
+	};
+
+	/* Routing-Rule-Install, Grouped, code 1081, section 5.3.68         */
+	{
+		struct dict_avp_data data = {
+			1081,	/* Code */
+			10415,	/* Vendor */
+			"Routing-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);
+	};
+
+	/* Routing-Rule-Remove, Grouped, code 1075, section 5.3.69          */
+	{
+		struct dict_avp_data data = {
+			1075,	/* Code */
+			10415,	/* Vendor */
+			"Routing-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);
+	};
+
+	/* 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         */
 	{
@@ -2997,4 +3393,111 @@
 	};
 
+	/* Session-Release-Cause, Enumerated, code 1045, section 5.3.44     */
+	{
+		struct dict_avp_data data = {
+			1045,	/* Code */
+			10415,	/* Vendor */
+			"Session-Release-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/Session-Release-Cause)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		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 = {
+			1087,	/* Code */
+			10415,	/* Vendor */
+			"TDF-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);
+	};
+
+	/* TDF-Application-Identifier, OctetString, code 1088, section 5.3.77 */
+	{
+		struct dict_avp_data data = {
+			1088,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Application-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);
+	};
+
+	/* TDF-Application-Instance-Identifier, OctetString, code 2802, section 5.3.92 */
+	{
+		struct dict_avp_data data = {
+			2802,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Application-Instance-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);
+	};
+
+	/* TDF-Destination-Host, DiameterIdentity, code 1089, section 5.3.80 */
+	{
+		struct dict_avp_data data = {
+			1089,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Destination-Host",	/* 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);
+	};
+
+	/* TDF-Destination-Realm, DiameterIdentity, code 1090, section 5.3.79 */
+	{
+		struct dict_avp_data data = {
+			1090,	/* Code */
+			10415,	/* Vendor */
+			"TDF-Destination-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);
+	};
+
+	/* TDF-IP-Address, Address, code 1091, section 5.3.81               */
+	{
+		struct dict_avp_data data = {
+			1091,	/* Code */
+			10415,	/* Vendor */
+			"TDF-IP-Address",	/* 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, Address_type, NULL);
+	};
+
 	/* TFT-Filter, IPFilterRule, code 1012, section 5.3.13              */
 	{
@@ -3023,4 +3526,30 @@
 	};
 
+	/* 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        */
 	{
@@ -3075,28 +3604,112 @@
 	};
 
-	/* 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 */
+	/* UDP-Source-Port, Unsigned32, code 2806, section 5.3.97           */
+	{
+		struct dict_avp_data data = {
+			2806,	/* Code */
+			10415,	/* Vendor */
+			"UDP-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);
+	};
+
+	/* UE-Local-IP-Address, Address, code 2805, section 5.3.96          */
+	{
+		struct dict_avp_data data = {
+			2805,	/* Code */
+			10415,	/* Vendor */
+			"UE-Local-IP-Address",	/* 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, 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 = {
+			1067,	/* Code */
+			10415,	/* Vendor */
+			"Usage-Monitoring-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);
+	};
+
+	/* Usage-Monitoring-Level, Enumerated, code 1068, section 5.3.61    */
+	{
+		struct dict_avp_data data = {
+			1068,	/* Code */
+			10415,	/* Vendor */
+			"Usage-Monitoring-Level",	/* 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/Usage-Monitoring-Level)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Usage-Monitoring-Report, Enumerated, code 1069, section 5.3.62   */
+	{
+		struct dict_avp_data data = {
+			1069,	/* Code */
+			10415,	/* Vendor */
+			"Usage-Monitoring-Report",	/* 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/Usage-Monitoring-Report)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Usage-Monitoring-Support, Enumerated, code 1070, section 5.3.63  */
+	{
+		struct dict_avp_data data = {
+			1070,	/* Code */
+			10415,	/* Vendor */
+			"Usage-Monitoring-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/Usage-Monitoring-Support)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* 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 */
 		};
@@ -3104,118 +3717,21 @@
 	};
 
-	/* 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 = {
-			2806,	/* Code */
-			10415,	/* Vendor */
-			"UDP-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);
-	};
-
-	/* UE-Local-IP-Address, Address, code 2805, section 5.3.96          */
-	{
-		struct dict_avp_data data = {
-			2805,	/* Code */
-			10415,	/* Vendor */
-			"UE-Local-IP-Address",	/* 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, Address_type, NULL);
-	};
-
-	/* Usage-Monitoring-Information, Grouped, code 1067, section 5.3.60 */
-	{
-		struct dict_avp_data data = {
-			1067,	/* Code */
-			10415,	/* Vendor */
-			"Usage-Monitoring-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);
-	};
-
-	/* 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 = {
-			1068,	/* Code */
-			10415,	/* Vendor */
-			"Usage-Monitoring-Level",	/* 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/Usage-Monitoring-Level)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Usage-Monitoring-Report, Enumerated, code 1069, section 5.3.62   */
-	{
-		struct dict_avp_data data = {
-			1069,	/* Code */
-			10415,	/* Vendor */
-			"Usage-Monitoring-Report",	/* 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/Usage-Monitoring-Report)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Usage-Monitoring-Support, Enumerated, code 1070, section 5.3.63  */
-	{
-		struct dict_avp_data data = {
-			1070,	/* Code */
-			10415,	/* Vendor */
-			"Usage-Monitoring-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/Usage-Monitoring-Support)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Gxx-specific                                                     */
+	/* 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             */
 	{
@@ -3312,5 +3828,107 @@
 	};
 
-	/* 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 */
 	{
@@ -3338,4 +3956,49 @@
 		struct dict_object	*type;
 		struct dict_type_data	 tdata = { AVP_TYPE_INTEGER32, "Enumerated(3GPP/CS-Service-QoS-Request-Operation)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		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);
Index: extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv
===================================================================
--- extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	(revision 1472)
+++ extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	(revision 1473)
@@ -187,50 +187,73 @@
 @standard,3GPP TS 29.212,,,,,,,
 #=,,,,,,,,
-# 3GPP 29.212-c00 (12.0.0 2013.03.15),,,,,,,,
-#=,,,,,,,,
-#,,,,,,,,
-# Gx-specific,,,,,,,,
-#,,,,,,,,
+# 3GPP TS 29.212 V15.9.0 (2019-12),,,,,,,,
+# From 3GPP 29212-f90.doc,,,,,,,,
+#=,,,,,,,,
+#,,,,,,,,
+#=,,,,,,,,
+# 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-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-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-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-Name,1005,5.3.6,OctetString,"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
@@ -241,12 +264,32 @@
 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
@@ -255,6 +298,12 @@
 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
@@ -263,29 +312,25 @@
 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
@@ -295,7 +340,28 @@
 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,,,,,,,
