changeset 1441:6029afe9bacb

Update to 3GPP TS 29.214 V15.7.0 (2019-09) Add GCS-Identifier, OctetString, code 538, section 5.3.36 Add Sharing-Key-DL, Unsigned32, code 539, section 5.3.37 Add Sharing-Key-UL, Unsigned32, code 540, section 5.3.38 Add Retry-Interval, Unsigned32, code 541, section 5.3.39 Add Sponsoring-Action, Enumerated, code 542, section 5.3.40 Add Max-Supported-Bandwidth-DL, Unsigned32, code 543, section 5.3.41 Add Max-Supported-Bandwidth-UL, Unsigned32, code 544, section 5.3.42 Add Min-Desired-Bandwidth-DL, Unsigned32, code 545, section 5.3.43 Add Min-Desired-Bandwidth-UL, Unsigned32, code 546, section 5.3.44 Add MCPTT-Identifier, OctetString, code 547, section 5.3.45 Add Service-Authorization-Info, Unsigned32, code 548, section 5.3.46 Add Media-Component-Status, Unsigned32, code 549, section 5.3.48 Add Priority-Sharing-Indicator, Enumerated, code 550, section 5.3.47 Add AF-Requested-Data, Unsigned32, code 551, section 5.3.50 Add Content-Version, Unsigned64, code 552, section 5.3.49 Add Pre-emption-Control-Info, Unsigned32, code 553, section 5.3.51 Add Extended-Max-Requested-BW-DL, Unsigned32, code 554, section 5.3.52 Add Extended-Max-Requested-BW-UL, Unsigned32, code 555, section 5.3.53 Add Extended-Max-Supported-BW-DL, Unsigned32, code 556, section 5.3.54 Add Extended-Max-Supported-BW-UL, Unsigned32, code 557, section 5.3.55 Add Extended-Min-Desired-BW-DL, Unsigned32, code 558, section 5.3.56 Add Extended-Min-Desired-BW-UL, Unsigned32, code 559, section 5.3.57 Add Extended-Min-Requested-BW-DL, Unsigned32, code 560, section 5.3.58 Add Extended-Min-Requested-BW-UL, Unsigned32, code 561, section 5.3.59 Add MCVideo-Identifier, OctetString, code 562, section 5.3.45a Add IMS-Content-Identifier, OctetString, code 563, section 5.3.60 with missing M assumed to be MUST-NOT. Add IMS-Content-Type, Enumerated, code 564, section 5.3.61 with missing M assumed to be MUST-NOT.
author Luke Mewburn <luke@mewburn.net>
date Tue, 25 Feb 2020 10:42:08 +1100
parents d6469b0f2111
children 915450ee91c7
files extensions/dict_dcca_3gpp/dict_dcca_3gpp.c extensions/dict_dcca_3gpp/dict_dcca_3gpp.org
diffstat 2 files changed, 495 insertions(+), 94 deletions(-) [+]
line wrap: on
line diff
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Tue Feb 25 09:58:59 2020 +1100
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.c	Tue Feb 25 10:42:08 2020 +1100
@@ -2798,7 +2798,10 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* 3GPP 29.214-b80 (11.8.0 2013.03.15)                              */
+
+	/* 3GPP TS 29.214 V15.7.0 (2019-09)                                 */
+	/* From 3GPP 29214-f70.doc                                          */
+
 	/* Abort-Cause, Enumerated, code 500, section 5.3.1                 */
 	{
 		struct dict_avp_data data = {
@@ -2893,6 +2896,35 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* AF-Requested-Data, Unsigned32, code 551, section 5.3.50          */
+	{
+		struct dict_avp_data data = {
+			551,	/* Code */
+			10415,	/* Vendor */
+			"AF-Requested-Data",	/* 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);
+	};
+
+	/* AF-Signalling-Protocol, Enumerated, code 529, section 5.3.26     */
+	{
+		struct dict_avp_data data = {
+			529,	/* Code */
+			10415,	/* Vendor */
+			"AF-Signalling-Protocol",	/* 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/AF-Signalling-Protocol)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/* Application-Service-Provider-Identity, UTF8String, code 532, section 5.3.29 */
 	{
 		struct dict_avp_data data = {
@@ -2919,6 +2951,123 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Content-Version, Unsigned64, code 552, section 5.3.49            */
+	{
+		struct dict_avp_data data = {
+			552,	/* Code */
+			10415,	/* Vendor */
+			"Content-Version",	/* Name */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
+			AVP_FLAG_VENDOR,	/* Fixed flag values */
+			AVP_TYPE_UNSIGNED64	/* base type of data */
+		};
+		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
+	};
+
+	/* Extended-Max-Requested-BW-DL, Unsigned32, code 554, section 5.3.52 */
+	{
+		struct dict_avp_data data = {
+			554,	/* Code */
+			10415,	/* Vendor */
+			"Extended-Max-Requested-BW-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-Max-Requested-BW-UL, Unsigned32, code 555, section 5.3.53 */
+	{
+		struct dict_avp_data data = {
+			555,	/* Code */
+			10415,	/* Vendor */
+			"Extended-Max-Requested-BW-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-Max-Supported-BW-DL, Unsigned32, code 556, section 5.3.54 */
+	{
+		struct dict_avp_data data = {
+			556,	/* Code */
+			10415,	/* Vendor */
+			"Extended-Max-Supported-BW-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-Max-Supported-BW-UL, Unsigned32, code 557, section 5.3.55 */
+	{
+		struct dict_avp_data data = {
+			557,	/* Code */
+			10415,	/* Vendor */
+			"Extended-Max-Supported-BW-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-Min-Desired-BW-DL, Unsigned32, code 558, section 5.3.56 */
+	{
+		struct dict_avp_data data = {
+			558,	/* Code */
+			10415,	/* Vendor */
+			"Extended-Min-Desired-BW-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-Min-Desired-BW-UL, Unsigned32, code 559, section 5.3.57 */
+	{
+		struct dict_avp_data data = {
+			559,	/* Code */
+			10415,	/* Vendor */
+			"Extended-Min-Desired-BW-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-Min-Requested-BW-DL, Unsigned32, code 560, section 5.3.58 */
+	{
+		struct dict_avp_data data = {
+			560,	/* Code */
+			10415,	/* Vendor */
+			"Extended-Min-Requested-BW-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-Min-Requested-BW-UL, Unsigned32, code 561, section 5.3.59 */
+	{
+		struct dict_avp_data data = {
+			561,	/* Code */
+			10415,	/* Vendor */
+			"Extended-Min-Requested-BW-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-Description, IPFilterRule, code 507, section 5.3.8          */
 	{
 		struct dict_avp_data data = {
@@ -2990,33 +3139,63 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Service-URN, OctetString, code 525, section 5.3.23               */
-	{
-		struct dict_avp_data data = {
-			525,	/* Code */
-			10415,	/* Vendor */
-			"Service-URN",	/* 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);
-	};
-
-	/* Specific-Action, Enumerated, code 513, section 5.3.13            */
-	{
-		struct dict_avp_data data = {
-			513,	/* Code */
-			10415,	/* Vendor */
-			"Specific-Action",	/* 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/Specific-Action)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	/* GCS-Identifier, OctetString, code 538, section 5.3.36            */
+	{
+		struct dict_avp_data data = {
+			538,	/* Code */
+			10415,	/* Vendor */
+			"GCS-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);
+	};
+
+	/* 3GPP TS 29.214 table 5.3.0.1 row IMS-Content-Identifier          */
+	/* missing M, assume MUST NOT.                                      */
+	/* IMS-Content-Identifier, OctetString, code 563, section 5.3.60    */
+	{
+		struct dict_avp_data data = {
+			563,	/* Code */
+			10415,	/* Vendor */
+			"IMS-Content-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);
+	};
+
+	/* 3GPP TS 29.214 table 5.3.0.1 row IMS-Content                     */
+	/* missing M, assume MUST NOT.                                      */
+	/* IMS-Content-Type, Enumerated, code 564, section 5.3.61           */
+	{
+		struct dict_avp_data data = {
+			564,	/* Code */
+			10415,	/* Vendor */
+			"IMS-Content-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/IMS-Content-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* IP-Domain-Id, OctetString, code 537, section 5.3.35              */
+	{
+		struct dict_avp_data data = {
+			537,	/* Code */
+			10415,	/* Vendor */
+			"IP-Domain-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);
 	};
 
 	/* Max-Requested-Bandwidth-DL, Unsigned32, code 515, section 5.3.14 */
@@ -3045,6 +3224,58 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Max-Supported-Bandwidth-DL, Unsigned32, code 543, section 5.3.41 */
+	{
+		struct dict_avp_data data = {
+			543,	/* Code */
+			10415,	/* Vendor */
+			"Max-Supported-Bandwidth-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);
+	};
+
+	/* Max-Supported-Bandwidth-UL, Unsigned32, code 544, section 5.3.42 */
+	{
+		struct dict_avp_data data = {
+			544,	/* Code */
+			10415,	/* Vendor */
+			"Max-Supported-Bandwidth-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);
+	};
+
+	/* MCPTT-Identifier, OctetString, code 547, section 5.3.45          */
+	{
+		struct dict_avp_data data = {
+			547,	/* Code */
+			10415,	/* Vendor */
+			"MCPTT-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);
+	};
+
+	/* MCVideo-Identifier, OctetString, code 562, section 5.3.45a       */
+	{
+		struct dict_avp_data data = {
+			562,	/* Code */
+			10415,	/* Vendor */
+			"MCVideo-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);
+	};
+
 	/* Media-Component-Description, Grouped, code 517, section 5.3.16   */
 	{
 		struct dict_avp_data data = {
@@ -3071,6 +3302,19 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Media-Component-Status, Unsigned32, code 549, section 5.3.48     */
+	{
+		struct dict_avp_data data = {
+			549,	/* Code */
+			10415,	/* Vendor */
+			"Media-Component-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);
+	};
+
 	/* Media-Sub-Component, Grouped, code 519, section 5.3.18           */
 	{
 		struct dict_avp_data data = {
@@ -3113,6 +3357,32 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Min-Desired-Bandwidth-DL, Unsigned32, code 545, section 5.3.43   */
+	{
+		struct dict_avp_data data = {
+			545,	/* Code */
+			10415,	/* Vendor */
+			"Min-Desired-Bandwidth-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);
+	};
+
+	/* Min-Desired-Bandwidth-UL, Unsigned32, code 546, section 5.3.44   */
+	{
+		struct dict_avp_data data = {
+			546,	/* Code */
+			10415,	/* Vendor */
+			"Min-Desired-Bandwidth-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);
+	};
+
 	/* Min-Requested-Bandwidth-DL, Unsigned32, code 534, section 5.3.32 */
 	{
 		struct dict_avp_data data = {
@@ -3139,6 +3409,80 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Priority-Sharing-Indicator, Enumerated, code 550, section 5.3.47 */
+	{
+		struct dict_avp_data data = {
+			550,	/* Code */
+			10415,	/* Vendor */
+			"Priority-Sharing-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/Priority-Sharing-Indicator)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Pre-emption-Control-Info, Unsigned32, code 553, section 5.3.51   */
+	{
+		struct dict_avp_data data = {
+			553,	/* Code */
+			10415,	/* Vendor */
+			"Pre-emption-Control-Info",	/* 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);
+	};
+
+	/* Required-Access-Info, Enumerated, code 536, section 5.3.34       */
+	{
+		struct dict_avp_data data = {
+			536,	/* Code */
+			10415,	/* Vendor */
+			"Required-Access-Info",	/* 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/Required-Access-Info)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
+	/* Retry-Interval, Unsigned32, code 541, section 5.3.39             */
+	{
+		struct dict_avp_data data = {
+			541,	/* Code */
+			10415,	/* Vendor */
+			"Retry-Interval",	/* 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);
+	};
+
+	/* Rx-Request-Type, Enumerated, code 533, section 5.3.31            */
+	{
+		struct dict_avp_data data = {
+			533,	/* Code */
+			10415,	/* Vendor */
+			"Rx-Request-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/Rx-Request-Type)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/* RR-Bandwidth, Unsigned32, code 521, section 5.3.20               */
 	{
 		struct dict_avp_data data = {
@@ -3165,6 +3509,32 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
+	/* Service-Authorization-Info, Unsigned32, code 548, section 5.3.46 */
+	{
+		struct dict_avp_data data = {
+			548,	/* Code */
+			10415,	/* Vendor */
+			"Service-Authorization-Info",	/* 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);
+	};
+
+	/* Service-URN, OctetString, code 525, section 5.3.23               */
+	{
+		struct dict_avp_data data = {
+			525,	/* Code */
+			10415,	/* Vendor */
+			"Service-URN",	/* 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);
+	};
+
 	/* Service-Info-Status, Enumerated, code 527, section 5.3.25        */
 	{
 		struct dict_avp_data data = {
@@ -3181,6 +3551,48 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
+	/* Sharing-Key-DL, Unsigned32, code 539, section 5.3.37             */
+	{
+		struct dict_avp_data data = {
+			539,	/* Code */
+			10415,	/* Vendor */
+			"Sharing-Key-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);
+	};
+
+	/* Sharing-Key-UL, Unsigned32, code 540, section 5.3.38             */
+	{
+		struct dict_avp_data data = {
+			540,	/* Code */
+			10415,	/* Vendor */
+			"Sharing-Key-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);
+	};
+
+	/* Specific-Action, Enumerated, code 513, section 5.3.13            */
+	{
+		struct dict_avp_data data = {
+			513,	/* Code */
+			10415,	/* Vendor */
+			"Specific-Action",	/* 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/Specific-Action)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
+	};
+
 	/* SIP-Forking-Indication, Enumerated, code 523, section 5.3.22     */
 	{
 		struct dict_avp_data data = {
@@ -3223,65 +3635,20 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* AF-Signalling-Protocol, Enumerated, code 529, section 5.3.26     */
-	{
-		struct dict_avp_data data = {
-			529,	/* Code */
-			10415,	/* Vendor */
-			"AF-Signalling-Protocol",	/* 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/AF-Signalling-Protocol)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Required-Access-Info, Enumerated, code 536, section 5.3.34       */
-	{
-		struct dict_avp_data data = {
-			536,	/* Code */
-			10415,	/* Vendor */
-			"Required-Access-Info",	/* 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/Required-Access-Info)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* Rx-Request-Type, Enumerated, code 533, section 5.3.31            */
-	{
-		struct dict_avp_data data = {
-			533,	/* Code */
-			10415,	/* Vendor */
-			"Rx-Request-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/Rx-Request-Type)", NULL, NULL, NULL };
-		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
-		CHECK_dict_new(DICT_AVP, &data, type, NULL);
-	};
-
-	/* IP-Domain-Id, OctetString, code 537, section 5.3.35              */
-	{
-		struct dict_avp_data data = {
-			537,	/* Code */
-			10415,	/* Vendor */
-			"IP-Domain-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);
+	/* Sponsoring-Action, Enumerated, code 542, section 5.3.40          */
+	{
+		struct dict_avp_data data = {
+			542,	/* Code */
+			10415,	/* Vendor */
+			"Sponsoring-Action",	/* 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/Sponsoring-Action)", NULL, NULL, NULL };
+		CHECK_dict_new(DICT_TYPE, &tdata, NULL, &type);
+		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
 	/* 3GPP 29.229-b20 (11.2.0 2012.12.21)                              */
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.org	Tue Feb 25 09:58:59 2020 +1100
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.org	Tue Feb 25 10:42:08 2020 +1100
@@ -227,7 +227,10 @@
 | # 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 29.214-b80 (11.8.0 2013.03.15)                         |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
+| # 3GPP TS 29.214 V15.7.0 (2019-09)                            |      |                 |                  |      |     |          |          |      |
+| # From 3GPP 29214-f70.doc                                     |      |                 |                  |      |     |          |          |      |
+| #                                                             |      |                 |                  |      |     |          |          |      |
 | Abort-Cause                                                   |  500 |           5.3.1 | Enumerated       | M,V  | P   |          |          | Y    |
 | Access-Network-Charging-Address                               |  501 |           5.3.2 | Address          | M,V  | P   |          |          | Y    |
 | Access-Network-Charging-Identifier                            |  502 |           5.3.3 | Grouped          | M,V  | P   |          |          | Y    |
@@ -235,34 +238,65 @@
 | Acceptable-Service-Info                                       |  526 |          5.3.24 | Grouped          | M,V  | P   |          |          | Y    |
 | AF-Application-Identifier                                     |  504 |           5.3.5 | OctetString      | M,V  | P   |          |          | Y    |
 | AF-Charging-Identifier                                        |  505 |           5.3.6 | OctetString      | M,V  | P   |          |          | Y    |
+| AF-Requested-Data                                             |  551 |          5.3.50 | Unsigned32       | V    | P   |          | M        | Y    |
+| AF-Signalling-Protocol                                        |  529 |          5.3.26 | Enumerated       | V    | P   |          | M        | Y    |
 | Application-Service-Provider-Identity                         |  532 |          5.3.29 | UTF8String       | V    | P   |          | M        | Y    |
 | Codec-Data                                                    |  524 |           5.3.7 | OctetString      | M,V  | P   |          |          | Y    |
+| Content-Version                                               |  552 |          5.3.49 | Unsigned64       | V    | P   |          | M        | Y    |
+| Extended-Max-Requested-BW-DL                                  |  554 |          5.3.52 | Unsigned32       | V    | P   |          | M        | Y    |
+| Extended-Max-Requested-BW-UL                                  |  555 |          5.3.53 | Unsigned32       | V    | P   |          | M        | Y    |
+| Extended-Max-Supported-BW-DL                                  |  556 |          5.3.54 | Unsigned32       | V    | P   |          | M        | Y    |
+| Extended-Max-Supported-BW-UL                                  |  557 |          5.3.55 | Unsigned32       | V    | P   |          | M        | Y    |
+| Extended-Min-Desired-BW-DL                                    |  558 |          5.3.56 | Unsigned32       | V    | P   |          | M        | Y    |
+| Extended-Min-Desired-BW-UL                                    |  559 |          5.3.57 | Unsigned32       | V    | P   |          | M        | Y    |
+| Extended-Min-Requested-BW-DL                                  |  560 |          5.3.58 | Unsigned32       | V    | P   |          | M        | Y    |
+| Extended-Min-Requested-BW-UL                                  |  561 |          5.3.59 | Unsigned32       | V    | P   |          | M        | Y    |
 | Flow-Description                                              |  507 |           5.3.8 | IPFilterRule     | M,V  | P   |          |          | Y    |
 | Flow-Number                                                   |  509 |           5.3.9 | Unsigned32       | M,V  | P   |          |          | Y    |
 | Flows                                                         |  510 |          5.3.10 | Grouped          | M,V  | P   |          |          | Y    |
 | Flow-Status                                                   |  511 |          5.3.11 | Enumerated       | M,V  | P   |          |          | Y    |
 | Flow-Usage                                                    |  512 |          5.3.12 | Enumerated       | M,V  | P   |          |          | Y    |
-| Service-URN                                                   |  525 |          5.3.23 | OctetString      | M,V  | P   |          |          | Y    |
-| Specific-Action                                               |  513 |          5.3.13 | Enumerated       | M,V  | P   |          |          | Y    |
+| GCS-Identifier                                                |  538 |          5.3.36 | OctetString      | V    | P   |          | M        | Y    |
+| # 3GPP TS 29.214 table 5.3.0.1 row IMS-Content-Identifier     |      |                 |                  |      |     |          |          |      |
+| # missing M, assume MUST NOT.                                 |      |                 |                  |      |     |          |          |      |
+| IMS-Content-Identifier                                        |  563 |          5.3.60 | OctetString      | V    | P   |          | M        | Y    |
+| # 3GPP TS 29.214 table 5.3.0.1 row IMS-Content                |      |                 |                  |      |     |          |          |      |
+| # missing M, assume MUST NOT.                                 |      |                 |                  |      |     |          |          |      |
+| IMS-Content-Type                                              |  564 |          5.3.61 | Enumerated       | V    | P   |          | M        | Y    |
+| IP-Domain-Id                                                  |  537 |          5.3.35 | OctetString      | V    | P   |          | M        | Y    |
 | Max-Requested-Bandwidth-DL                                    |  515 |          5.3.14 | Unsigned32       | M,V  | P   |          |          | Y    |
 | Max-Requested-Bandwidth-UL                                    |  516 |          5.3.15 | Unsigned32       | M,V  | P   |          |          | Y    |
+| Max-Supported-Bandwidth-DL                                    |  543 |          5.3.41 | Unsigned32       | V    | P   |          | M        | Y    |
+| Max-Supported-Bandwidth-UL                                    |  544 |          5.3.42 | Unsigned32       | V    | P   |          | M        | Y    |
+| MCPTT-Identifier                                              |  547 |          5.3.45 | OctetString      | V    | P   |          | M        | Y    |
+| MCVideo-Identifier                                            |  562 |         5.3.45a | OctetString      | V    | P   |          | M        | Y    |
 | Media-Component-Description                                   |  517 |          5.3.16 | Grouped          | M,V  | P   |          |          | Y    |
 | Media-Component-Number                                        |  518 |          5.3.17 | Unsigned32       | M,V  | P   |          |          | Y    |
+| Media-Component-Status                                        |  549 |          5.3.48 | Unsigned32       | V    | P   |          | M        | Y    |
 | Media-Sub-Component                                           |  519 |          5.3.18 | Grouped          | M,V  | P   |          |          | Y    |
 | Media-Type                                                    |  520 |          5.3.19 | Enumerated       | M,V  | P   |          |          | Y    |
 | MPS-Identifier                                                |  528 |          5.3.30 | OctetString      | V    | P   |          | M        | Y    |
+| Min-Desired-Bandwidth-DL                                      |  545 |          5.3.43 | Unsigned32       | V    | P   |          | M        |      |
+| Min-Desired-Bandwidth-UL                                      |  546 |          5.3.44 | Unsigned32       | V    | P   |          | M        |      |
 | Min-Requested-Bandwidth-DL                                    |  534 |          5.3.32 | Unsigned32       | V    | P   |          | M        | Y    |
 | Min-Requested-Bandwidth-UL                                    |  535 |          5.3.33 | Unsigned32       | V    | P   |          | M        | Y    |
+| Priority-Sharing-Indicator                                    |  550 |          5.3.47 | Enumerated       | V    | P   |          | M        | Y    |
+| Pre-emption-Control-Info                                      |  553 |          5.3.51 | Unsigned32       | V    | P   |          | M        | Y    |
+| Required-Access-Info                                          |  536 |          5.3.34 | Enumerated       | V    | P   |          | M        | Y    |
+| Retry-Interval                                                |  541 |          5.3.39 | Unsigned32       | V    | P   |          | M        | Y    |
+| Rx-Request-Type                                               |  533 |          5.3.31 | Enumerated       | V    | P   |          | M        | Y    |
 | RR-Bandwidth                                                  |  521 |          5.3.20 | Unsigned32       | M,V  | P   |          |          | Y    |
 | RS-Bandwidth                                                  |  522 |          5.3.21 | Unsigned32       | M,V  | P   |          |          | Y    |
+| Service-Authorization-Info                                    |  548 |          5.3.46 | Unsigned32       | V    | P   |          | M        | Y    |
+| Service-URN                                                   |  525 |          5.3.23 | OctetString      | M,V  | P   |          |          | Y    |
 | Service-Info-Status                                           |  527 |          5.3.25 | Enumerated       | M,V  | P   |          |          | Y    |
+| Sharing-Key-DL                                                |  539 |          5.3.37 | Unsigned32       | V    | P   |          | M        | Y    |
+| Sharing-Key-UL                                                |  540 |          5.3.38 | Unsigned32       | V    | P   |          | M        | Y    |
+| Specific-Action                                               |  513 |          5.3.13 | Enumerated       | M,V  | P   |          |          | Y    |
 | SIP-Forking-Indication                                        |  523 |          5.3.22 | Enumerated       | M,V  | P   |          |          | Y    |
 | Sponsor-Identity                                              |  531 |          5.3.28 | UTF8String       | V    | P   |          | M        | Y    |
 | Sponsored-Connectivity-Data                                   |  530 |          5.3.27 | Grouped          | V    | P   |          | M        | Y    |
-| AF-Signalling-Protocol                                        |  529 |          5.3.26 | Enumerated       | V    | P   |          | M        | Y    |
-| Required-Access-Info                                          |  536 |          5.3.34 | Enumerated       | V    | P   |          | M        | Y    |
-| Rx-Request-Type                                               |  533 |          5.3.31 | Enumerated       | V    | P   |          | M        | Y    |
-| IP-Domain-Id                                                  |  537 |          5.3.35 | OctetString      | V    | P   |          | M        | Y    |
+| Sponsoring-Action                                             |  542 |          5.3.40 | Enumerated       | V    | P   |          | M        | Y    |
 | # 3GPP 29.229-b20 (11.2.0 2012.12.21)                         |      |                 |                  |      |     |          |          |      |
 | Associated-Identities                                         |  632 |          6.3.33 | Grouped          | V    |     |          | M        | N    |
 | Associated-Registered-Identities                              |  647 |          6.3.50 | Grouped          | V    |     |          | M        | N    |
"Welcome to our mercurial repository"