Index: extensions/dict_dcca_3gpp/add_avps.c
===================================================================
--- extensions/dict_dcca_3gpp/add_avps.c	(revision 1504)
+++ extensions/dict_dcca_3gpp/add_avps.c	(revision 1505)
@@ -6119,4 +6119,198 @@
 
 	/*==================================================================*/
+	/* 3GPP TS 29.217 V15.1.0 (2019-09)                                 */
+	/* Policy and Charging Control (PCC);                               */
+	/* Congestion reporting over Np reference point                     */
+	/*                                                                  */
+	/* From 3GPP 29217-f10.doc                                          */
+	/*==================================================================*/
+
+	/*==================================================================*/
+	/* 3GPP TS 29.217 Table 5.3.1.1: Np specific Diameter AVPs          */
+	/*==================================================================*/
+
+	/* Aggregated-Congestion-Info, Grouped, code 4000, section 5.3.2    */
+	{
+		struct dict_avp_data data = {
+			4000,	/* Code */
+			10415,	/* Vendor */
+			"Aggregated-Congestion-Info",	/* 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);
+	};
+
+	/* Aggregated-RUCI-Report, Grouped, code 4001, section 5.3.3        */
+	{
+		struct dict_avp_data data = {
+			4001,	/* Code */
+			10415,	/* Vendor */
+			"Aggregated-RUCI-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);
+	};
+
+	/* Congestion-Level-Definition, Grouped, code 4002, section 5.3.4   */
+	{
+		struct dict_avp_data data = {
+			4002,	/* Code */
+			10415,	/* Vendor */
+			"Congestion-Level-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);
+	};
+
+	/* Congestion-Level-Range, Unsigned32, code 4003, section 5.3.5     */
+	{
+		struct dict_avp_data data = {
+			4003,	/* Code */
+			10415,	/* Vendor */
+			"Congestion-Level-Range",	/* 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);
+	};
+
+	/* Congestion-Level-Set-Id, Unsigned32, code 4004, section 5.3.6    */
+	{
+		struct dict_avp_data data = {
+			4004,	/* Code */
+			10415,	/* Vendor */
+			"Congestion-Level-Set-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Congestion-Level-Value, Unsigned32, code 4005, section 5.3.7     */
+	{
+		struct dict_avp_data data = {
+			4005,	/* Code */
+			10415,	/* Vendor */
+			"Congestion-Level-Value",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED32	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Congestion-Location-Id, Grouped, code 4006, section 5.3.8        */
+	{
+		struct dict_avp_data data = {
+			4006,	/* Code */
+			10415,	/* Vendor */
+			"Congestion-Location-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_GROUPED	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Conditional-Restriction, Unsigned32, code 4007, section 5.3.9    */
+	{
+		struct dict_avp_data data = {
+			4007,	/* Code */
+			10415,	/* Vendor */
+			"Conditional-Restriction",	/* 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);
+	};
+
+	/* eNodeB-Id, OctetString, code 4008, section 5.3.10                */
+	{
+		struct dict_avp_data data = {
+			4008,	/* Code */
+			10415,	/* Vendor */
+			"eNodeB-Id",	/* 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);
+	};
+
+	/* IMSI-List, OctetString, code 4009, section 5.3.11                */
+	{
+		struct dict_avp_data data = {
+			4009,	/* Code */
+			10415,	/* Vendor */
+			"IMSI-List",	/* 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);
+	};
+
+	/* RCAF-Id, DiameterIdentity, code 4010, section 5.3.12             */
+	{
+		struct dict_avp_data data = {
+			4010,	/* Code */
+			10415,	/* Vendor */
+			"RCAF-Id",	/* 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, DiameterIdentity_type, NULL);
+	};
+
+	/* Reporting-Restriction, Unsigned32, code 4011, section 5.3.13     */
+	{
+		struct dict_avp_data data = {
+			4011,	/* Code */
+			10415,	/* Vendor */
+			"Reporting-Restriction",	/* 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);
+	};
+
+	/* RUCI-Action, Unsigned32, code 4012, section 5.3.14               */
+	{
+		struct dict_avp_data data = {
+			4012,	/* Code */
+			10415,	/* Vendor */
+			"RUCI-Action",	/* 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-eNodeB-Id, OctetString, code 4013, section 5.3.15       */
+	{
+		struct dict_avp_data data = {
+			4013,	/* Code */
+			10415,	/* Vendor */
+			"Extended-eNodeB-Id",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_OCTETSTRING	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/*==================================================================*/
 	/* 3GPP TS 29.229 V15.2.0 (2019-09)                                 */
 	/* Cx and Dx interfaces based on the Diameter protocol;             */
Index: extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv
===================================================================
--- extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	(revision 1504)
+++ extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	(revision 1505)
@@ -701,4 +701,32 @@
 #,,,,,,,
 UE-Local-IPv6-Prefix,2205,A.8.3.1,OctetString,"V,M",P,,
+,,,,,,,
+@standard,3GPP TS 29.217,,,,,,
+#=,,,,,,,
+# 3GPP TS 29.217 V15.1.0 (2019-09),,,,,,,
+# Policy and Charging Control (PCC);,,,,,,,
+# Congestion reporting over Np reference point,,,,,,,
+# ,,,,,,,
+# From 3GPP 29217-f10.doc,,,,,,,
+#=,,,,,,,
+#,,,,,,,
+#=,,,,,,,
+# 3GPP TS 29.217 Table 5.3.1.1: Np specific Diameter AVPs ,,,,,,,
+#=,,,,,,,
+#,,,,,,,
+Aggregated-Congestion-Info,4000,5.3.2,Grouped,"V, M",P,,
+Aggregated-RUCI-Report,4001,5.3.3,Grouped,"V, M",P,,
+Congestion-Level-Definition,4002,5.3.4,Grouped,V,P,,M
+Congestion-Level-Range,4003,5.3.5,Unsigned32,V,P,,M
+Congestion-Level-Set-Id,4004,5.3.6,Unsigned32,V,P,,M
+Congestion-Level-Value,4005,5.3.7,Unsigned32,"V, M",P,,
+Congestion-Location-Id,4006,5.3.8,Grouped,V,P,,M
+Conditional-Restriction,4007,5.3.9,Unsigned32,V,P,,M
+eNodeB-Id,4008,5.3.10,OctetString,"V, M",P,,
+IMSI-List,4009,5.3.11,OctetString,"V, M",P,,
+RCAF-Id,4010,5.3.12,DiameterIdentity,"V, M",P,,
+Reporting-Restriction,4011,5.3.13,Unsigned32,V,P,,M
+RUCI-Action,4012,5.3.14,Unsigned32,V,P,,M
+Extended-eNodeB-Id,4013,5.3.15,OctetString,"V, ",P,,M
 ,,,,,,,
 @standard,3GPP TS 29.229,,,,,,
