changeset 1530:2c92c6b73ac9

dict_dcca_3gpp: highlight more local fixes Mark local fixes with "Fix:" Use "Table" vs "table". Minor formatting consistency. No change to generated dictionary.
author Luke Mewburn <luke@mewburn.net>
date Sat, 18 Apr 2020 15:16:18 +1000
parents 7d121fbf269a
children ac39a776eb65
files extensions/dict_dcca_3gpp/add_avps.c extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv
diffstat 2 files changed, 104 insertions(+), 80 deletions(-) [+]
line wrap: on
line diff
--- a/extensions/dict_dcca_3gpp/add_avps.c	Sat Apr 18 15:06:44 2020 +1000
+++ b/extensions/dict_dcca_3gpp/add_avps.c	Sat Apr 18 15:16:18 2020 +1000
@@ -49,7 +49,7 @@
 	/* For this reason, other sources are assumed more trustworthy.     */
 	/*==================================================================*/
 
-	/* Note: 3GPP-IMSI (1) changed to Must M.                           */
+	/* Fix: 3GPP-IMSI (1) changed to Must M.                            */
 	/* 3GPP-IMSI, UTF8String, code 1, section 16.4.7                    */
 	{
 		struct dict_avp_data data = {
@@ -78,7 +78,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP-PDP-Type (3) changed to Must M.                       */
+	/* Fix: 3GPP-PDP-Type (3) changed to Must M.                        */
 	/* 3GPP-PDP-Type, Enumerated, code 3, section 16.4.7                */
 	{
 		struct dict_avp_data data = {
@@ -108,7 +108,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP-GPRS-Negotiated-QoS-Profile (5) changed to Must M per contrib/3gpp. */
+	/* Fix: 3GPP-GPRS-Negotiated-QoS-Profile (5) changed to Must M per contrib/3gpp. */
 	/* 3GPP-GPRS-Negotiated-QoS-Profile, UTF8String, code 5, section 16.4.7 */
 	{
 		struct dict_avp_data data = {
@@ -148,7 +148,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP-IMSI-MCC-MNC (8) changed to Must M per packet dumps.  */
+	/* Fix: 3GPP-IMSI-MCC-MNC (8) changed to Must M per packet dumps.   */
 	/* 3GPP-IMSI-MCC-MNC, UTF8String, code 8, section 16.4.7            */
 	{
 		struct dict_avp_data data = {
@@ -162,7 +162,7 @@
 		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
 	};
 
-	/* Note: 3GPP-GGSN-MCC-MNC (9) changed to Must M per contrib/3gpp.  */
+	/* Fix: 3GPP-GGSN-MCC-MNC (9) changed to Must M per contrib/3gpp.   */
 	/* 3GPP-GGSN-MCC-MNC, UTF8String, code 9, section 16.4.7            */
 	{
 		struct dict_avp_data data = {
@@ -176,7 +176,7 @@
 		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
 	};
 
-	/* Note: 3GPP-NSAPI (10) changed to Must M per contrib/3gpp.        */
+	/* Fix: 3GPP-NSAPI (10) changed to Must M per contrib/3gpp.         */
 	/* 3GPP-NSAPI, OctetString, code 10, section 16.4.7                 */
 	{
 		struct dict_avp_data data = {
@@ -190,9 +190,11 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.061 table 9a does not define                    */
+	/* Note: 3GPP TS 29.061 Table 9a does not define                    */
 	/* 3GPP-Session-Stop-Indicator (11) even when it is referenced      */
 	/* by other 3GPP Diameter AVPs including PS-Information (874).      */
+	/*                                                                  */
+	/* Fix: Add 3GPP-Session-Stop-Indicator (11) OctetString.           */
 	/* 3GPP-Session-Stop-Indicator, OctetString, code 11, section 16.4.7 */
 	{
 		struct dict_avp_data data = {
@@ -206,7 +208,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP-Selection-Mode (12) changed to Must M per contrib/3gpp. */
+	/* Fix: 3GPP-Selection-Mode (12) changed to Must M per contrib/3gpp. */
 	/* 3GPP-Selection-Mode, UTF8String, code 12, section 16.4.7         */
 	{
 		struct dict_avp_data data = {
@@ -220,7 +222,7 @@
 		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
 	};
 
-	/* Note: 3GPP-Charging-Characteristics (13) changed to Must M per contrib/3gpp. */
+	/* Fix: 3GPP-Charging-Characteristics (13) changed to Must M per contrib/3gpp. */
 	/* 3GPP-Charging-Characteristics, UTF8String, code 13, section 16.4.7 */
 	{
 		struct dict_avp_data data = {
@@ -237,7 +239,8 @@
 	/* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed                   */
 	/* 3GPP-CG-IPv6-Address (14) to 3GPP-CG-Ipv6-Address;               */
 	/* this rename was not applied.                                     */
-	/* 3GPP-CG-IPv6-Address (14) changed to Must M per contrib/3gpp.    */
+	/*                                                                  */
+	/* Fix: 3GPP-CG-IPv6-Address (14) changed to Must M per contrib/3gpp. */
 	/* 3GPP-CG-IPv6-Address, OctetString, code 14, section 16.4.7       */
 	{
 		struct dict_avp_data data = {
@@ -254,7 +257,8 @@
 	/* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed                   */
 	/* 3GPP-SGSN-IPv6-Address (15) to 3GPP-SGSN-Ipv6-Address;           */
 	/* this rename was not applied.                                     */
-	/* 3GPP-SGSN-IPv6-Address (15) changed to Must M per contrib/3gpp.  */
+	/*                                                                  */
+	/* Fix: 3GPP-SGSN-IPv6-Address (15) changed to Must M per contrib/3gpp. */
 	/* 3GPP-SGSN-IPv6-Address, OctetString, code 15, section 16.4.7     */
 	{
 		struct dict_avp_data data = {
@@ -271,7 +275,8 @@
 	/* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed                   */
 	/* 3GPP-GGSN-IPv6-Address (16) to 3GPP-GGSN-Ipv6-Address;           */
 	/* this rename was not applied.                                     */
-	/* 3GPP-GGSN-IPv6-Address (16) changed to Must M per contrib/3gpp.  */
+	/*                                                                  */
+	/* Fix: 3GPP-GGSN-IPv6-Address (16) changed to Must M per contrib/3gpp. */
 	/* 3GPP-GGSN-IPv6-Address, OctetString, code 16, section 16.4.7     */
 	{
 		struct dict_avp_data data = {
@@ -288,7 +293,8 @@
 	/* Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed                   */
 	/* 3GPP-IPv6-DNS-Servers (17) to 3GPP-Ipv6-DNS-Servers;             */
 	/* this rename was not applied.                                     */
-	/* 3GPP-IPv6-DNS-Servers (17) changed to Must M per contrib/3gpp.   */
+	/*                                                                  */
+	/* Fix: 3GPP-IPv6-DNS-Servers (17) changed to Must M per contrib/3gpp. */
 	/* 3GPP-IPv6-DNS-Servers, OctetString, code 17, section 16.4.7      */
 	{
 		struct dict_avp_data data = {
@@ -302,7 +308,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP-SGSN-MCC-MNC (18) changed to Must M per contrib/3gpp. */
+	/* Fix: 3GPP-SGSN-MCC-MNC (18) changed to Must M per contrib/3gpp.  */
 	/* 3GPP-SGSN-MCC-MNC, UTF8String, code 18, section 16.4.7           */
 	{
 		struct dict_avp_data data = {
@@ -316,7 +322,7 @@
 		CHECK_dict_new(DICT_AVP, &data, UTF8String_type, NULL);
 	};
 
-	/* Note: 3GPP-IMEISV (20) changed to Must M.                        */
+	/* Fix: 3GPP-IMEISV (20) changed to Must M.                         */
 	/* 3GPP-IMEISV, OctetString, code 20, section 16.4.7                */
 	{
 		struct dict_avp_data data = {
@@ -330,7 +336,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP-RAT-Type (21) changed to Must M.                      */
+	/* Fix: 3GPP-RAT-Type (21) changed to Must M.                       */
 	/* 3GPP-RAT-Type, OctetString, code 21, section 16.4.7              */
 	{
 		struct dict_avp_data data = {
@@ -344,7 +350,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP-User-Location-Info (22) changed to Must M.            */
+	/* Fix: 3GPP-User-Location-Info (22) changed to Must M.             */
 	/* 3GPP-User-Location-Info, OctetString, code 22, section 16.4.7    */
 	{
 		struct dict_avp_data data = {
@@ -358,7 +364,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP-MS-TimeZone (23) changed to Must M.                   */
+	/* Fix: 3GPP-MS-TimeZone (23) changed to Must M.                    */
 	/* 3GPP-MS-TimeZone, OctetString, code 23, section 16.4.7           */
 	{
 		struct dict_avp_data data = {
@@ -424,9 +430,9 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.061 table 9a does not define                    */
+	/* Note: 3GPP TS 29.061 Table 9a does not define                    */
 	/* External-Identifier (28) for Diameter; it is RADIUS only.        */
-	/* 3GPP TS 29.061 table 9b refers to 3GPP TS 29.336                 */
+	/* 3GPP TS 29.061 Table 9b refers to 3GPP TS 29.336                 */
 	/* for External-Identifier (3111).                                  */
 	/*                                                                  */
 	/* Change since freeDiameter 1.4.0.                                 */
@@ -924,7 +930,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.061 table 20.5a.1 row MBMS-Flag (931) has       */
+	/* Note: 3GPP TS 29.061 Table 20.5a.1 row MBMS-Flag (931) has       */
 	/* incorrect name and should be "MBMS-Flags" per clause 20.5a.9.    */
 	/*                                                                  */
 	/* Fix: MBMS-Flag (931) renamed to MBMS-Flags (931).                */
@@ -1084,7 +1090,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.109 table 6.1 row GBA_U-Awareness-Indicator (407) */
+	/* Note: 3GPP TS 29.109 Table 6.1 row GBA_U-Awareness-Indicator (407) */
 	/* has an underscore in the name (contrary to RFC 6733 section 4.1). */
 	/*                                                                  */
 	/* Fix: GBA_U-Awareness-Indicator (407) renamed to GBA-U-Awareness-Indicator (407). */
@@ -4041,7 +4047,7 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Note: 3GPP TS 29.212 table 5.3.0.1 row Max-PLR-DL (2852)         */
+	/* Note: 3GPP TS 29.212 Table 5.3.0.1 row Max-PLR-DL (2852)         */
 	/* incorrectly lists type as Unsigned32 instead of Float32.         */
 	/* 3GPP TS 29.212 clause 5.3.138 uses Float32.                      */
 	/*                                                                  */
@@ -4059,7 +4065,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.212 table 5.3.0.1 row Max-PLR-UL (2853)         */
+	/* Note: 3GPP TS 29.212 Table 5.3.0.1 row Max-PLR-UL (2853)         */
 	/* incorrectly lists type as Unsigned32 instead of Float32.         */
 	/* 3GPP TS 29.212 clause 5.3.139 uses Float32.                      */
 	/*                                                                  */
@@ -4328,15 +4334,17 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Note: 3GPP TS 29.212 table 5.3.0.1 row PDN-Connection-ID (1065)  */
-	/* missing M.                                                       */
+	/* Note: 3GPP TS 29.212 Table 5.3.0.1 row PDN-Connection-ID (1065)  */
+	/* missing M, assume MUST NOT.                                      */
+	/*                                                                  */
+	/* Fix: PDN-Connection-ID (1065) flag M MUST NOT.                   */
 	/* PDN-Connection-ID, OctetString, code 1065, section 5.3.58        */
 	{
 		struct dict_avp_data data = {
 			1065,	/* Code */
 			10415,	/* Vendor */
 			"PDN-Connection-ID",	/* Name */
-			AVP_FLAG_VENDOR,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
 			AVP_FLAG_VENDOR,	/* Fixed flag values */
 			AVP_TYPE_OCTETSTRING	/* base type of data */
 		};
@@ -4492,15 +4500,17 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.212 table 5.3.0.1 row PS-to-CS-Session-Continuity (1099) */
-	/* missing M.                                                       */
+	/* Note: 3GPP TS 29.212 Table 5.3.0.1 row PS-to-CS-Session-Continuity (1099) */
+	/* missing M, assume MUST NOT.                                      */
+	/*                                                                  */
+	/* Fix: PS-to-CS-Session-Continuity (1099) flag M MUST NOT.         */
 	/* PS-to-CS-Session-Continuity, Enumerated, code 1099, section 5.3.84 */
 	{
 		struct dict_avp_data data = {
 			1099,	/* Code */
 			10415,	/* Vendor */
 			"PS-to-CS-Session-Continuity",	/* Name */
-			AVP_FLAG_VENDOR,	/* Fixed flags */
+			AVP_FLAG_VENDOR |AVP_FLAG_MANDATORY,	/* Fixed flags */
 			AVP_FLAG_VENDOR,	/* Fixed flag values */
 			AVP_TYPE_INTEGER32	/* base type of data */
 		};
@@ -5851,7 +5861,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.214 table 5.3.0.1 row IMS-Content-Identifier (563) */
+	/* Note: 3GPP TS 29.214 Table 5.3.0.1 row IMS-Content-Identifier (563) */
 	/* missing M, assume MUST NOT.                                      */
 	/*                                                                  */
 	/* Fix: IMS-Content-Identifier (563) flag M MUST NOT.               */
@@ -5868,7 +5878,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.214 table 5.3.0.1 row IMS-Content (564)         */
+	/* Note: 3GPP TS 29.214 Table 5.3.0.1 row IMS-Content (564)         */
 	/* missing M, assume MUST NOT.                                      */
 	/*                                                                  */
 	/* Fix: IMS-Content (564) flag M MUST NOT.                          */
@@ -8913,7 +8923,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.272 V12.5.0 (2014-06) table 7.3.1/1             */
+	/* Note: 3GPP TS 29.272 V12.5.0 (2014-06) Table 7.3.1/1             */
 	/* changed row SS-Status (1477) to be OctetString instead of Grouped. */
 	/* Clause 7.3.88 already described SS-Status (1147) as OctetString. */
 	/*                                                                  */
@@ -9244,7 +9254,7 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Note: 3GPP TS 29.272 table 7.3.1/1 row MME-Location-Information (1600) */
+	/* Note: 3GPP TS 29.272 Table 7.3.1/1 row MME-Location-Information (1600) */
 	/* incorrectly has a space instead of hyphen in the name.           */
 	/*                                                                  */
 	/* Change since freeDiameter 1.4.0.                                 */
@@ -10323,7 +10333,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.272 table 7.3.1/1 row Additional-Context-ID (1683) has */
+	/* Note: 3GPP TS 29.272 Table 7.3.1/1 row Additional-Context-ID (1683) has */
 	/* incorrect name and should be "Additional-Context-Identifier" per clause 7.3.206. */
 	/*                                                                  */
 	/* Fix: Additional-Context-ID (1683) renamed to Additional-Context-Identifier (1683). */
@@ -10366,9 +10376,11 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.272 table 7.3.1/1 row Preferred-Data-Mode (1686) */
+	/* Note: 3GPP TS 29.272 Table 7.3.1/1 row Preferred-Data-Mode (1686) */
 	/* incorrectly has value type Grouped instead of Unsigned32,        */
 	/* conflicting with clause 7.3.209.                                 */
+	/*                                                                  */
+	/* Fix: Preferred-Data-Mode (1686) type changed from Grouped to Unsigned32. */
 	/* Preferred-Data-Mode, Unsigned32, code 1686, section 7.3.209      */
 	{
 		struct dict_avp_data data = {
@@ -13335,7 +13347,7 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.338 table 6.3.3.1/1 row HSS-ID (3325)           */
+	/* Note: 3GPP TS 29.338 Table 6.3.3.1/1 row HSS-ID (3325)           */
 	/* incorrectly lists type as OctetString instead of UTF8String.     */
 	/* 3GPP TS 29.338 clause 6.3.3.14 uses UTF8String.                  */
 	/*                                                                  */
@@ -13717,9 +13729,9 @@
 		CHECK_dict_new(DICT_AVP, &data, NULL, NULL);
 	};
 
-	/* Note: 3GPP TS 29.344 table 6.3.1-1 missing Authorized-Discovery-Range. */
+	/* Note: 3GPP TS 29.344 Table 6.3.1-1 missing Authorized-Discovery-Range. */
 	/* Present in 3GPP TS 29.344 clause 6.3.13 and 3GPP TS 29.230 Table 7.1. */
-
+	/*                                                                  */
 	/* Fix: Add Authorized-Discovery-Range (3708) Unsigned32.           */
 	/* Authorized-Discovery-Range, Unsigned32, code 3708, section 6.3.13 */
 	{
@@ -17833,7 +17845,7 @@
 		CHECK_dict_new(DICT_AVP, &data, type, NULL);
 	};
 
-	/* Note: 3GPP TS 32.299 V11.8.0 (2013-07) table 7.2 changed         */
+	/* Note: 3GPP TS 32.299 V11.8.0 (2013-07) Table 7.2 changed         */
 	/* row MBMS-GW-Address (2307) to have a hyphen instead of space.    */
 	/*                                                                  */
 	/* Change since freeDiameter 1.4.0.                                 */
--- a/extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	Sat Apr 18 15:06:44 2020 +1000
+++ b/extensions/dict_dcca_3gpp/dict_dcca_3gpp.csv	Sat Apr 18 15:16:18 2020 +1000
@@ -18,69 +18,75 @@
 "# For this reason, other sources are assumed more trustworthy.",,,,,,,
 #=,,,,,,,
 #,,,,,,,
-# Note: 3GPP-IMSI (1) changed to Must M.,,,,,,,
+# Fix: 3GPP-IMSI (1) changed to Must M.,,,,,,,
 3GPP-IMSI,1,16.4.7,UTF8String,"M,V",P,,
 "# Fix: 3GPP-Charging-Id (2) type changed from OctetString to Unsigned32,",,,,,,,
 # per 3GPP TS 29.061 clause 16.4.7.2/2 and packet dumps.,,,,,,,
 3GPP-Charging-Id,2,16.4.7,Unsigned32,"M,V",P,,
-# Note: 3GPP-PDP-Type (3) changed to Must M.,,,,,,,
+# Fix: 3GPP-PDP-Type (3) changed to Must M.,,,,,,,
 3GPP-PDP-Type,3,16.4.7,Enumerated,"M,V",P,,
 3GPP-CG-Address,4,16.4.7,OctetString,V,P,,M
-# Note: 3GPP-GPRS-Negotiated-QoS-Profile (5) changed to Must M per contrib/3gpp.,,,,,,,
+# Fix: 3GPP-GPRS-Negotiated-QoS-Profile (5) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-GPRS-Negotiated-QoS-Profile,5,16.4.7,UTF8String,"M,V",P,,
 3GPP-SGSN-Address,6,16.4.7,OctetString,V,P,,M
 3GPP-GGSN-Address,7,16.4.7,OctetString,V,P,,M
-# Note: 3GPP-IMSI-MCC-MNC (8) changed to Must M per packet dumps.,,,,,,,
+# Fix: 3GPP-IMSI-MCC-MNC (8) changed to Must M per packet dumps.,,,,,,,
 3GPP-IMSI-MCC-MNC,8,16.4.7,UTF8String,"M,V",P,,
-# Note: 3GPP-GGSN-MCC-MNC (9) changed to Must M per contrib/3gpp.,,,,,,,
+# Fix: 3GPP-GGSN-MCC-MNC (9) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-GGSN-MCC-MNC,9,16.4.7,UTF8String,"M,V",P,,
-# Note: 3GPP-NSAPI (10) changed to Must M per contrib/3gpp.,,,,,,,
+# Fix: 3GPP-NSAPI (10) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-NSAPI,10,16.4.7,OctetString,"M,V",P,,
-# Note: 3GPP TS 29.061 table 9a does not define,,,,,,,
+# Note: 3GPP TS 29.061 Table 9a does not define,,,,,,,
 # 3GPP-Session-Stop-Indicator (11) even when it is referenced,,,,,,,
 # by other 3GPP Diameter AVPs including PS-Information (874).,,,,,,,
+# ,,,,,,,
+# Fix: Add 3GPP-Session-Stop-Indicator (11) OctetString.,,,,,,,
 3GPP-Session-Stop-Indicator,11,16.4.7,OctetString,V,P,,M
-# Note: 3GPP-Selection-Mode (12) changed to Must M per contrib/3gpp.,,,,,,,
+# Fix: 3GPP-Selection-Mode (12) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-Selection-Mode,12,16.4.7,UTF8String,"M,V",P,,
-# Note: 3GPP-Charging-Characteristics (13) changed to Must M per contrib/3gpp.,,,,,,,
+# Fix: 3GPP-Charging-Characteristics (13) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-Charging-Characteristics,13,16.4.7,UTF8String,"M,V",P,,
 # Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed,,,,,,,
 # 3GPP-CG-IPv6-Address (14) to 3GPP-CG-Ipv6-Address;,,,,,,,
 # this rename was not applied.,,,,,,,
-# 3GPP-CG-IPv6-Address (14) changed to Must M per contrib/3gpp.,,,,,,,
+# ,,,,,,,
+# Fix: 3GPP-CG-IPv6-Address (14) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-CG-IPv6-Address,14,16.4.7,OctetString,"M,V",P,,
 # Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed,,,,,,,
 # 3GPP-SGSN-IPv6-Address (15) to 3GPP-SGSN-Ipv6-Address;,,,,,,,
 # this rename was not applied.,,,,,,,
-# 3GPP-SGSN-IPv6-Address (15) changed to Must M per contrib/3gpp.,,,,,,,
+# ,,,,,,,
+# Fix: 3GPP-SGSN-IPv6-Address (15) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-SGSN-IPv6-Address,15,16.4.7,OctetString,"M,V",P,,
 # Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed,,,,,,,
 # 3GPP-GGSN-IPv6-Address (16) to 3GPP-GGSN-Ipv6-Address;,,,,,,,
 # this rename was not applied.,,,,,,,
-# 3GPP-GGSN-IPv6-Address (16) changed to Must M per contrib/3gpp.,,,,,,,
+# ,,,,,,,
+# Fix: 3GPP-GGSN-IPv6-Address (16) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-GGSN-IPv6-Address,16,16.4.7,OctetString,"M,V",P,,
 # Note: 3GPP TS 29.061 V12.6.0 (2014-06) renamed,,,,,,,
 # 3GPP-IPv6-DNS-Servers (17) to 3GPP-Ipv6-DNS-Servers;,,,,,,,
 # this rename was not applied.,,,,,,,
-# 3GPP-IPv6-DNS-Servers (17) changed to Must M per contrib/3gpp.,,,,,,,
+# ,,,,,,,
+# Fix: 3GPP-IPv6-DNS-Servers (17) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-IPv6-DNS-Servers,17,16.4.7,OctetString,"M,V",P,,
-# Note: 3GPP-SGSN-MCC-MNC (18) changed to Must M per contrib/3gpp.,,,,,,,
+# Fix: 3GPP-SGSN-MCC-MNC (18) changed to Must M per contrib/3gpp.,,,,,,,
 3GPP-SGSN-MCC-MNC,18,16.4.7,UTF8String,"M,V",P,,
-# Note: 3GPP-IMEISV (20) changed to Must M.,,,,,,,
+# Fix: 3GPP-IMEISV (20) changed to Must M.,,,,,,,
 3GPP-IMEISV,20,16.4.7,OctetString,"M,V",P,,
-# Note: 3GPP-RAT-Type (21) changed to Must M.,,,,,,,
+# Fix: 3GPP-RAT-Type (21) changed to Must M.,,,,,,,
 3GPP-RAT-Type,21,16.4.7,OctetString,"M,V",P,,
-# Note: 3GPP-User-Location-Info (22) changed to Must M.,,,,,,,
+# Fix: 3GPP-User-Location-Info (22) changed to Must M.,,,,,,,
 3GPP-User-Location-Info,22,16.4.7,OctetString,"M,V",P,,
-# Note: 3GPP-MS-TimeZone (23) changed to Must M.,,,,,,,
+# Fix: 3GPP-MS-TimeZone (23) changed to Must M.,,,,,,,
 3GPP-MS-TimeZone,23,16.4.7,OctetString,"M,V",P,,
 3GPP-CAMEL-Charging-Info,24,16.4.7,OctetString,V,P,,M
 3GPP-Packet-Filter,25,16.4.7,OctetString,V,P,,M
 3GPP-Negotiated-DSCP,26,16.4.7,OctetString,V,P,,M
 3GPP-Allocate-IP-Type,27,16.4.7,OctetString,V,P,,M
-# Note: 3GPP TS 29.061 table 9a does not define,,,,,,,
+# Note: 3GPP TS 29.061 Table 9a does not define,,,,,,,
 # External-Identifier (28) for Diameter; it is RADIUS only.,,,,,,,
-# 3GPP TS 29.061 table 9b refers to 3GPP TS 29.336,,,,,,,
+# 3GPP TS 29.061 Table 9b refers to 3GPP TS 29.336,,,,,,,
 # for External-Identifier (3111).,,,,,,,
 # ,,,,,,,
 # Change since freeDiameter 1.4.0.,,,,,,,
@@ -143,7 +149,7 @@
 MBMS-GW-UDP-Port-Indicator,928,20.5a.6,Enumerated,V,P,,M
 MBMS-Data-Transfer-Start,929,20.5a.7,Unsigned64,V,P,,M
 MBMS-Data-Transfer-Stop,930,20.5a.8,Unsigned64,V,P,,M
-# Note: 3GPP TS 29.061 table 20.5a.1 row MBMS-Flag (931) has,,,,,,,
+# Note: 3GPP TS 29.061 Table 20.5a.1 row MBMS-Flag (931) has,,,,,,,
 "# incorrect name and should be ""MBMS-Flags"" per clause 20.5a.9.",,,,,,,
 # ,,,,,,,
 # Fix: MBMS-Flag (931) renamed to MBMS-Flags (931).,,,,,,,
@@ -173,7 +179,7 @@
 Key-ExpiryTime,404,6.3.1.5,Time,"M, V",,,
 ME-Key-Material,405,6.3.1.6,OctetString,"M, V",,,
 UICC-Key-Material,406,6.3.1.7,OctetString,"M, V",,,
-# Note: 3GPP TS 29.109 table 6.1 row GBA_U-Awareness-Indicator (407),,,,,,,
+# Note: 3GPP TS 29.109 Table 6.1 row GBA_U-Awareness-Indicator (407),,,,,,,
 # has an underscore in the name (contrary to RFC 6733 section 4.1).,,,,,,,
 # ,,,,,,,
 # Fix: GBA_U-Awareness-Indicator (407) renamed to GBA-U-Awareness-Indicator (407).,,,,,,,
@@ -553,13 +559,13 @@
 HeNB-Local-IP-Address,2804,5.3.95,Address,V,P,,M
 IP-CAN-Session-Charging-Scope,2827,5.3.114,Enumerated,V,P,,M
 IP-CAN-Type,1027,5.3.27,Enumerated,"M,V",P,,
-# Note: 3GPP TS 29.212 table 5.3.0.1 row Max-PLR-DL (2852),,,,,,,
+# Note: 3GPP TS 29.212 Table 5.3.0.1 row Max-PLR-DL (2852),,,,,,,
 # incorrectly lists type as Unsigned32 instead of Float32.,,,,,,,
 # 3GPP TS 29.212 clause 5.3.138 uses Float32.,,,,,,,
 # ,,,,,,,
 # Fix: Max-PLR-DL (2852) type changed from Float32 to Unsigned32.,,,,,,,
 Max-PLR-DL,2852,5.3.138,Unsigned32,V,P,,M
-# Note: 3GPP TS 29.212 table 5.3.0.1 row Max-PLR-UL (2853),,,,,,,
+# Note: 3GPP TS 29.212 Table 5.3.0.1 row Max-PLR-UL (2853),,,,,,,
 # incorrectly lists type as Unsigned32 instead of Float32.,,,,,,,
 # 3GPP TS 29.212 clause 5.3.139 uses Float32.,,,,,,,
 # ,,,,,,,
@@ -582,9 +588,11 @@
 Packet-Filter-Operation,1062,5.3.57,Enumerated,V,P,,M
 Packet-Filter-Usage,1072,5.3.66,Enumerated,V,P,,M
 PCC-Rule-Status,1019,5.3.19,Enumerated,"M,V",P,,
-# Note: 3GPP TS 29.212 table 5.3.0.1 row PDN-Connection-ID (1065),,,,,,,
-# missing M.,,,,,,,
-PDN-Connection-ID,1065,5.3.58,OctetString,V,P,,
+# Note: 3GPP TS 29.212 Table 5.3.0.1 row PDN-Connection-ID (1065),,,,,,,
+"# missing M, assume MUST NOT.",,,,,,,
+# ,,,,,,,
+# Fix: PDN-Connection-ID (1065) flag M MUST NOT.,,,,,,,
+PDN-Connection-ID,1065,5.3.58,OctetString,V,P,,M
 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,,
@@ -596,9 +604,11 @@
 Presence-Reporting-Area-Node,2855,5.3.141,Unsigned32,V,P,,M
 Presence-Reporting-Area-Status,2823,5.3.110,Unsigned32,V,P,,M
 Priority-Level,1046,5.3.45,Unsigned32,V,P,,M
-# Note: 3GPP TS 29.212 table 5.3.0.1 row PS-to-CS-Session-Continuity (1099),,,,,,,
-# missing M.,,,,,,,
-PS-to-CS-Session-Continuity,1099,5.3.84,Enumerated,V,P,,
+# Note: 3GPP TS 29.212 Table 5.3.0.1 row PS-to-CS-Session-Continuity (1099),,,,,,,
+"# missing M, assume MUST NOT.",,,,,,,
+# ,,,,,,,
+# Fix: PS-to-CS-Session-Continuity (1099) flag M MUST NOT.,,,,,,,
+PS-to-CS-Session-Continuity,1099,5.3.84,Enumerated,V,P,,M
 QoS-Class-Identifier,1028,5.3.17,Enumerated,"M,V",P,,
 QoS-Information,1016,5.3.16,Grouped,"M,V",P,,
 QoS-Negotiation,1029,5.3.28,Enumerated,"M,V",P,,
@@ -724,12 +734,12 @@
 Flow-Status,511,5.3.11,Enumerated,"M,V",P,,
 Flow-Usage,512,5.3.12,Enumerated,"M,V",P,,
 GCS-Identifier,538,5.3.36,OctetString,V,P,,M
-# Note: 3GPP TS 29.214 table 5.3.0.1 row IMS-Content-Identifier (563),,,,,,,
+# Note: 3GPP TS 29.214 Table 5.3.0.1 row IMS-Content-Identifier (563),,,,,,,
 "# missing M, assume MUST NOT.",,,,,,,
 # ,,,,,,,
 # Fix: IMS-Content-Identifier (563) flag M MUST NOT.,,,,,,,
 IMS-Content-Identifier,563,5.3.60,OctetString,V,P,,M
-# Note: 3GPP TS 29.214 table 5.3.0.1 row IMS-Content (564),,,,,,,
+# Note: 3GPP TS 29.214 Table 5.3.0.1 row IMS-Content (564),,,,,,,
 "# missing M, assume MUST NOT.",,,,,,,
 # ,,,,,,,
 # Fix: IMS-Content (564) flag M MUST NOT.,,,,,,,
@@ -1056,7 +1066,7 @@
 GMLC-Number,1474,7.3.85,OctetString,"M,V",,,
 LCS-PrivacyException,1475,7.3.86,Grouped,"M,V",,,
 SS-Code,1476,7.3.87,OctetString,"M,V",,,
-# Note: 3GPP TS 29.272 V12.5.0 (2014-06) table 7.3.1/1,,,,,,,
+# Note: 3GPP TS 29.272 V12.5.0 (2014-06) Table 7.3.1/1,,,,,,,
 # changed row SS-Status (1477) to be OctetString instead of Grouped.,,,,,,,
 # Clause 7.3.88 already described SS-Status (1147) as OctetString.,,,,,,,
 # ,,,,,,,
@@ -1090,7 +1100,7 @@
 MME-User-State,1497,7.3.112,Grouped,V,,,M
 SGSN-User-State,1498,7.3.113,Grouped,V,,,M
 User-State,1499,7.3.114,Enumerated,V,,,M
-# Note: 3GPP TS 29.272 table 7.3.1/1 row MME-Location-Information (1600),,,,,,,
+# Note: 3GPP TS 29.272 Table 7.3.1/1 row MME-Location-Information (1600),,,,,,,
 # incorrectly has a space instead of hyphen in the name.,,,,,,,
 # ,,,,,,,
 # Change since freeDiameter 1.4.0.,,,,,,,
@@ -1182,16 +1192,18 @@
 UE-Usage-Type,1680,7.3.202,Unsigned32,V,,,M
 Non-IP-PDN-Type-Indicator,1681,7.3.204,Enumerated,V,,,M
 Non-IP-Data-Delivery-Mechanism,1682,7.3.205,Unsigned32,V,,,M
-# Note: 3GPP TS 29.272 table 7.3.1/1 row Additional-Context-ID (1683) has,,,,,,,
+# Note: 3GPP TS 29.272 Table 7.3.1/1 row Additional-Context-ID (1683) has,,,,,,,
 "# incorrect name and should be ""Additional-Context-Identifier"" per clause 7.3.206.",,,,,,,
 # ,,,,,,,
 # Fix: Additional-Context-ID (1683) renamed to Additional-Context-Identifier (1683).,,,,,,,
 Additional-Context-Identifier,1683,7.3.206,Unsigned32,V,,,M
 SCEF-Realm,1684,7.3.207,DiameterIdentity,V,,,M
 Subscription-Data-Deletion,1685,7.3.208,Grouped,V,,,M
-# Note: 3GPP TS 29.272 table 7.3.1/1 row Preferred-Data-Mode (1686),,,,,,,
+# Note: 3GPP TS 29.272 Table 7.3.1/1 row Preferred-Data-Mode (1686),,,,,,,
 "# incorrectly has value type Grouped instead of Unsigned32,",,,,,,,
 # conflicting with clause 7.3.209.,,,,,,,
+# ,,,,,,,
+# Fix: Preferred-Data-Mode (1686) type changed from Grouped to Unsigned32.,,,,,,,
 Preferred-Data-Mode,1686,7.3.209,Unsigned32,V,,,M
 Emergency-Info,1687,7.3.210,Grouped,V,,,M
 V2X-Subscription-Data,1688,7.3.212,Grouped,V,,,M
@@ -1566,7 +1578,7 @@
 SM-Delivery-Timer,3306,6.3.3.10,Unsigned32,"M, V",,,
 SM-Delivery-Start-Time,3307,6.3.3.11,Time,"M, V",,,
 SMSMI-Correlation-ID,3324,6.3.3.13,Grouped,V,,,M
-# Note: 3GPP TS 29.338 table 6.3.3.1/1 row HSS-ID (3325),,,,,,,
+# Note: 3GPP TS 29.338 Table 6.3.3.1/1 row HSS-ID (3325),,,,,,,
 # incorrectly lists type as OctetString instead of UTF8String.,,,,,,,
 # 3GPP TS 29.338 clause 6.3.3.14 uses UTF8String.,,,,,,,
 # ,,,,,,,
@@ -1628,9 +1640,9 @@
 UPR-Flags,3705,6.3.6,Unsigned32,"M,V",,,
 PNR-Flags,3706,6.3.7,Unsigned32,"M,V",,,
 ProSe-Initial-Location-Information,3707,6.3.9,Grouped,"M,V",,,
-# Note: 3GPP TS 29.344 table 6.3.1-1 missing Authorized-Discovery-Range.,,,,,,,
+# Note: 3GPP TS 29.344 Table 6.3.1-1 missing Authorized-Discovery-Range.,,,,,,,
 # Present in 3GPP TS 29.344 clause 6.3.13 and 3GPP TS 29.230 Table 7.1.,,,,,,,
-#,,,,,,,
+# ,,,,,,,
 # Fix: Add Authorized-Discovery-Range (3708) Unsigned32.,,,,,,,
 Authorized-Discovery-Range,3708,6.3.13,Unsigned32,V,,,M
 ,,,,,,,
@@ -2077,7 +2089,7 @@
 Low-Balance-Indication,2020,,Enumerated,"V,M",,,
 Low-Priority-Indicator,2602,,Enumerated,"V,M",,,
 MBMS-Charged-Party,2323,,Enumerated,"V,M",,,
-# Note: 3GPP TS 32.299 V11.8.0 (2013-07) table 7.2 changed,,,,,,,
+# Note: 3GPP TS 32.299 V11.8.0 (2013-07) Table 7.2 changed,,,,,,,
 # row MBMS-GW-Address (2307) to have a hyphen instead of space.,,,,,,,
 # ,,,,,,,
 # Change since freeDiameter 1.4.0.,,,,,,,
"Welcome to our mercurial repository"