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