Initial commit
Change-Id: I6a4444e3c193dae437cd7929f4c39aba7b749efa
diff --git a/extensions/dict_ts32299_avps/CMakeLists.txt b/extensions/dict_ts32299_avps/CMakeLists.txt
new file mode 100644
index 0000000..3ee6973
--- /dev/null
+++ b/extensions/dict_ts32299_avps/CMakeLists.txt
@@ -0,0 +1,16 @@
+# The dict_ts32299_avps extension
+PROJECT("dict_ts32299_avps library generated by FdGen " C)
+
+# Compile as a module
+FD_ADD_EXTENSION(dict_ts32299_avps dict_ts32299_avps.c)
+
+
+####
+## INSTALL section ##
+
+INSTALL(TARGETS dict_ts32299_avps
+ LIBRARY DESTINATION ${INSTALL_EXTENSIONS_SUFFIX}
+COMPONENT freeDiameter-dictionary-TS32299_AVPS)
+
+
+
diff --git a/extensions/dict_ts32299_avps/dict_ts32299_avps.c b/extensions/dict_ts32299_avps/dict_ts32299_avps.c
new file mode 100644
index 0000000..d81140a
--- /dev/null
+++ b/extensions/dict_ts32299_avps/dict_ts32299_avps.c
@@ -0,0 +1,7604 @@
+/*
+* Copyright (c) 2017 Sprint
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+/****************
+ Generated By: fdtool enhancements to diafuzzer
+ License: same as freeDiameter
+****************/
+
+
+/*
+ * Dictionary definitions of objects specified in ts32299_avps (e30).
+ */
+#include <freeDiameter/extension.h>
+
+#define PROTO_VER "e30"
+#define GEN_DATE 1506697143.39
+
+const char *ts32299_avps_proto_ver = PROTO_VER;
+const double ts32299_avps_gen_date = GEN_DATE;
+
+/* The content of this file follows the same structure as dict_base_proto.c */
+
+#define CHECK_dict_new( _type, _data, _parent, _ref ) \
+{ \
+ int _ret = fd_dict_new( fd_g_config->cnf_dict, (_type), (_data), (_parent), (_ref) ); \
+ if ( _ret != 0 && _ret != EEXIST ) \
+ return _ret; \
+}
+
+#define CHECK_dict_search( _type, _criteria, _what, _result ) \
+ CHECK_FCT( fd_dict_search( fd_g_config->cnf_dict, (_type), (_criteria), (_what), (_result), ENOENT) );
+
+struct local_rules_definition {
+ struct dict_avp_request avp_vendor_plus_name;
+ enum rule_position position;
+ int min;
+ int max;
+};
+
+#define RULE_ORDER( _position ) ((((_position) == RULE_FIXED_HEAD) || ((_position) == RULE_FIXED_TAIL)) ? 1 : 0 )
+
+/* Attention! This version of the macro uses AVP_BY_NAME_AND_VENDOR, in contrast to most other copies! */
+#define PARSE_loc_rules( _rulearray, _parent) { \
+ int __ar; \
+ for (__ar=0; __ar < sizeof(_rulearray) / sizeof((_rulearray)[0]); __ar++) { \
+ struct dict_rule_data __data = { NULL, \
+ (_rulearray)[__ar].position, \
+ 0, \
+ (_rulearray)[__ar].min, \
+ (_rulearray)[__ar].max}; \
+ __data.rule_order = RULE_ORDER(__data.rule_position); \
+ CHECK_FCT( fd_dict_search( \
+ fd_g_config->cnf_dict, \
+ DICT_AVP, \
+ AVP_BY_NAME_AND_VENDOR, \
+ &(_rulearray)[__ar].avp_vendor_plus_name, \
+ &__data.rule_avp, 0 ) ); \
+ if ( !__data.rule_avp ) { \
+ TRACE_DEBUG(INFO, "AVP Not found: '%s'", (_rulearray)[__ar].avp_vendor_plus_name.avp_name); \
+ return ENOENT; \
+ } \
+ { \
+ int _ret = fd_dict_new( fd_g_config->cnf_dict, DICT_RULE, &(__data), (_parent), NULL ); \
+ if ( _ret != 0 && _ret != EEXIST ) { \
+ TRACE_DEBUG(INFO, "Error on rule with AVP '%s'", \
+ (_rulearray)[__ar].avp_vendor_plus_name.avp_name); \
+ return EINVAL; \
+ } \
+ } \
+ } \
+}
+
+#define CHECK_vendor_new( _data ) { \
+ struct dict_object * vendor_found; \
+ if (fd_dict_search(fd_g_config->cnf_dict,DICT_VENDOR,VENDOR_BY_ID,&_data.vendor_id,&vendor_found,ENOENT) == ENOENT) { \
+ CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &_data, NULL, NULL)); \
+ } \
+}
+
+#define enumval_def_u32( _val_, _str_ ) \
+ { _str_, { .u32 = _val_ }}
+
+#define enumval_def_os( _len_, _val_, _str_ ) \
+ { _str_, { .os = { .data = (unsigned char *)_val_, .len = _len_ }}}
+
+
+static int dict_ts32299_avps_load_defs(char * conffile)
+{
+ TRACE_ENTRY("%p", conffile);
+ /* Application Section */
+ {
+ /* Create the vendors */ {
+ struct dict_vendor_data vendor_data = { 10415, "3GPP" };
+ CHECK_dict_new(DICT_VENDOR, &vendor_data, NULL, NULL)
+ }
+ }
+
+
+ /* AVP section */
+ {
+ struct dict_object * Address_type;
+ struct dict_object * UTF8String_type;
+ struct dict_object * DiameterIdentity_type;
+ struct dict_object * DiameterURI_type;
+ struct dict_object * Time_type;
+ struct dict_object * IPFilterRule_type;
+
+ CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Address", &Address_type);
+ CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "UTF8String", &UTF8String_type);
+ CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterIdentity", &DiameterIdentity_type);
+ CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterURI", &DiameterURI_type);
+ CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Time", &Time_type);
+ CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "IPFilterRule", &IPFilterRule_type);
+ /* 3GPP-PS-Data-Off-Status */
+ {
+ struct dict_avp_data data = {
+ 4406, /* Code */
+ 10415, /* Vendor */
+ "3GPP-PS-Data-Off-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, "3GPP/Enumerated(3GPP-PS-Data-Off-Status)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Active", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Inactive", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Access-Network-Information */
+ {
+ struct dict_avp_data data = {
+ 1263, /* Code */
+ 10415, /* Vendor */
+ "Access-Network-Information", /* 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);
+ };
+ /* Access-Transfer-Type */
+ {
+ struct dict_avp_data data = {
+ 2710, /* Code */
+ 10415, /* Vendor */
+ "Access-Transfer-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, "3GPP/Enumerated(Access-Transfer-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "PS_to_CS_Transfer", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "CS_to_PS_Transfer", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "PS_to_PS_Transfer", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "CS_to_CS_Transfer", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Account-Expiration */
+ {
+ struct dict_avp_data data = {
+ 2309, /* Code */
+ 10415, /* Vendor */
+ "Account-Expiration", /* 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);
+ };
+ /* Adaptations */
+ {
+ struct dict_avp_data data = {
+ 1217, /* Code */
+ 10415, /* Vendor */
+ "Adaptations", /* 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, "3GPP/Enumerated(Adaptations)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Yes", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "No", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Additional-Exception-Reports */
+ {
+ struct dict_avp_data data = {
+ 3936, /* Code */
+ 10415, /* Vendor */
+ "Additional-Exception-Reports", /* 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, "3GPP/Enumerated(Additional-Exception-Reports)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Not_allowed", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Allowed", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Additional-Type-Information */
+ {
+ struct dict_avp_data data = {
+ 1205, /* Code */
+ 10415, /* Vendor */
+ "Additional-Type-Information", /* 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);
+ };
+ /* Address-Data */
+ {
+ struct dict_avp_data data = {
+ 897, /* Code */
+ 10415, /* Vendor */
+ "Address-Data", /* 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);
+ };
+ /* Addressee-Type */
+ {
+ struct dict_avp_data data = {
+ 1208, /* Code */
+ 10415, /* Vendor */
+ "Addressee-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, "3GPP/Enumerated(Addressee-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "TO", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "CC", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "BCC", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Address-Type */
+ {
+ struct dict_avp_data data = {
+ 899, /* Code */
+ 10415, /* Vendor */
+ "Address-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, "3GPP/Enumerated(Address-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "e_mail_address", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "MSISDN", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "IPv4_Address", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "IPv6_Address", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "Numeric_Shortcode", { .i32=4 }};
+ struct dict_enumval_data t_6 = { "Alphanumeric_Shortcode", { .i32=5 }};
+ struct dict_enumval_data t_7 = { "Other", { .i32=6 }};
+ struct dict_enumval_data t_8 = { "IMSI", { .i32=7 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Alternate-Charged-Party-Address */
+ {
+ struct dict_avp_data data = {
+ 1280, /* Code */
+ 10415, /* Vendor */
+ "Alternate-Charged-Party-Address", /* 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);
+ };
+ /* Announcement-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3905, /* Code */
+ 10415, /* Vendor */
+ "Announcement-Identifier", /* 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);
+ };
+ /* Announcement-Order */
+ {
+ struct dict_avp_data data = {
+ 3906, /* Code */
+ 10415, /* Vendor */
+ "Announcement-Order", /* 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);
+ };
+ /* Announcing-UE-HPLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3426, /* Code */
+ 10415, /* Vendor */
+ "Announcing-UE-HPLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Announcing-UE-VPLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3427, /* Code */
+ 10415, /* Vendor */
+ "Announcing-UE-VPLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* AoC-Format */
+ {
+ struct dict_avp_data data = {
+ 2310, /* Code */
+ 10415, /* Vendor */
+ "AoC-Format", /* 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, "3GPP/Enumerated(AoC-Format)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "MONETARY", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "NON_MONETARY", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "CAI", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* AoC-Request-Type */
+ {
+ struct dict_avp_data data = {
+ 2055, /* Code */
+ 10415, /* Vendor */
+ "AoC-Request-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, "3GPP/Enumerated(AoC-Request-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "AoC_NOT_REQUESTED", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "AoC_FULL", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "AoC_COST_ONLY", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "AoC_TARIFF_ONLY", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* AoC-Service-Obligatory-Type */
+ {
+ struct dict_avp_data data = {
+ 2312, /* Code */
+ 10415, /* Vendor */
+ "AoC-Service-Obligatory-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, "3GPP/Enumerated(AoC-Service-Obligatory-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "NON_BINDING", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "BINDING", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* AoC-Service-Type */
+ {
+ struct dict_avp_data data = {
+ 2313, /* Code */
+ 10415, /* Vendor */
+ "AoC-Service-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, "3GPP/Enumerated(AoC-Service-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "NONE", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "AOC-S", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "AOC-D", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "AOC-E", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Applic-ID */
+ {
+ struct dict_avp_data data = {
+ 1218, /* Code */
+ 10415, /* Vendor */
+ "Applic-ID", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Application-Provided-Called-Party-Address */
+ {
+ struct dict_avp_data data = {
+ 837, /* Code */
+ 10415, /* Vendor */
+ "Application-Provided-Called-Party-Address", /* 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);
+ };
+ /* Application-Server */
+ {
+ struct dict_avp_data data = {
+ 836, /* Code */
+ 10415, /* Vendor */
+ "Application-Server", /* 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);
+ };
+ /* Application-Specific-Data */
+ {
+ struct dict_avp_data data = {
+ 3458, /* Code */
+ 10415, /* Vendor */
+ "Application-Specific-Data", /* 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);
+ };
+ /* Associated-Party-Address */
+ {
+ struct dict_avp_data data = {
+ 2035, /* Code */
+ 10415, /* Vendor */
+ "Associated-Party-Address", /* 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);
+ };
+ /* Associated-URI */
+ {
+ struct dict_avp_data data = {
+ 856, /* Code */
+ 10415, /* Vendor */
+ "Associated-URI", /* 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);
+ };
+ /* Authorised-QoS */
+ {
+ struct dict_avp_data data = {
+ 849, /* Code */
+ 10415, /* Vendor */
+ "Authorised-QoS", /* 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);
+ };
+ /* Aux-Applic-Info */
+ {
+ struct dict_avp_data data = {
+ 1219, /* Code */
+ 10415, /* Vendor */
+ "Aux-Applic-Info", /* 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);
+ };
+ /* Base-Time-Interval */
+ {
+ struct dict_avp_data data = {
+ 1265, /* Code */
+ 10415, /* Vendor */
+ "Base-Time-Interval", /* 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);
+ };
+ /* Bearer-Capability */
+ {
+ struct dict_avp_data data = {
+ 3412, /* Code */
+ 10415, /* Vendor */
+ "Bearer-Capability", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Bearer-Service */
+ {
+ struct dict_avp_data data = {
+ 854, /* Code */
+ 10415, /* Vendor */
+ "Bearer-Service", /* 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);
+ };
+ /* BSSID */
+ {
+ struct dict_avp_data data = {
+ 2716, /* Code */
+ 10415, /* Vendor */
+ "BSSID", /* 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);
+ };
+ /* Called-Asserted-Identity */
+ {
+ struct dict_avp_data data = {
+ 1250, /* Code */
+ 10415, /* Vendor */
+ "Called-Asserted-Identity", /* 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);
+ };
+ /* Called-Identity */
+ {
+ struct dict_avp_data data = {
+ 3916, /* Code */
+ 10415, /* Vendor */
+ "Called-Identity", /* 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);
+ };
+ /* Called-Party-Address */
+ {
+ struct dict_avp_data data = {
+ 832, /* Code */
+ 10415, /* Vendor */
+ "Called-Party-Address", /* 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);
+ };
+ /* Calling-Party-Address */
+ {
+ struct dict_avp_data data = {
+ 831, /* Code */
+ 10415, /* Vendor */
+ "Calling-Party-Address", /* 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);
+ };
+ /* Carrier-Select-Routing-Information */
+ {
+ struct dict_avp_data data = {
+ 2023, /* Code */
+ 10415, /* Vendor */
+ "Carrier-Select-Routing-Information", /* 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);
+ };
+ /* Cause-Code */
+ {
+ struct dict_avp_data data = {
+ 861, /* Code */
+ 10415, /* Vendor */
+ "Cause-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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Cellular-Network-Information */
+ {
+ struct dict_avp_data data = {
+ 3924, /* Code */
+ 10415, /* Vendor */
+ "Cellular-Network-Information", /* 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);
+ };
+ /* CG-Address */
+ {
+ struct dict_avp_data data = {
+ 846, /* Code */
+ 10415, /* Vendor */
+ "CG-Address", /* 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, Address_type, NULL);
+ };
+ /* Change-Condition */
+ {
+ struct dict_avp_data data = {
+ 2037, /* Code */
+ 10415, /* Vendor */
+ "Change-Condition", /* 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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Change-Time */
+ {
+ struct dict_avp_data data = {
+ 2038, /* Code */
+ 10415, /* Vendor */
+ "Change-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);
+ };
+ /* Charge-Reason-Code */
+ {
+ struct dict_avp_data data = {
+ 2118, /* Code */
+ 10415, /* Vendor */
+ "Charge-Reason-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, "3GPP/Enumerated(Charge-Reason-Code)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "UNKNOWN", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "USAGE", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "COMMUNICATION_ATTEMPT_CHARGE", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "SETUP_CHARGE", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "ADD_ON_CHARGE", { .i32=4 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Charged-Party */
+ {
+ struct dict_avp_data data = {
+ 857, /* Code */
+ 10415, /* Vendor */
+ "Charged-Party", /* 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-Characteristics-Selection-Mode */
+ {
+ struct dict_avp_data data = {
+ 2066, /* Code */
+ 10415, /* Vendor */
+ "Charging-Characteristics-Selection-Mode", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ struct dict_object *type;
+ struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Charging-Characteristics-Selection-Mode)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Serving_Node_Supplied", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Subscription_specific", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "APN_specific", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "Home_Default", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "Roaming_Default", { .i32=4 }};
+ struct dict_enumval_data t_6 = { "Visiting_Default", { .i32=5 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Charging-Per-IP-CAN-Session-Indicator */
+ {
+ struct dict_avp_data data = {
+ 4400, /* Code */
+ 10415, /* Vendor */
+ "Charging-Per-IP-CAN-Session-Indicator", /* 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, "3GPP/Enumerated(Charging-Per-IP-CAN-Session-Indicator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Inactive", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Active", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Class-Identifier */
+ {
+ struct dict_avp_data data = {
+ 1214, /* Code */
+ 10415, /* Vendor */
+ "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, "3GPP/Enumerated(Class-Identifier)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Personal", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Advertisement", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "Informational", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "Auto", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Client-Address */
+ {
+ struct dict_avp_data data = {
+ 2018, /* Code */
+ 10415, /* Vendor */
+ "Client-Address", /* 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, Address_type, NULL);
+ };
+ /* CN-Operator-Selection-Entity */
+ {
+ struct dict_avp_data data = {
+ 3421, /* Code */
+ 10415, /* Vendor */
+ "CN-Operator-Selection-Entity", /* 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, "3GPP/Enumerated(CN-Operator-Selection-Entity)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "The_Serving_Network_has_been_selected_by_the_UE", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "The_Serving_Network_has_been_selected_by_the_network", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Content-Class */
+ {
+ struct dict_avp_data data = {
+ 1220, /* Code */
+ 10415, /* Vendor */
+ "Content-Class", /* 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, "3GPP/Enumerated(Content-Class)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "text", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "image_basic", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "image_rich", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "video_basic", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "video_rich", { .i32=4 }};
+ struct dict_enumval_data t_6 = { "megapixel", { .i32=5 }};
+ struct dict_enumval_data t_7 = { "content_basic", { .i32=6 }};
+ struct dict_enumval_data t_8 = { "content_rich", { .i32=7 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Content-Disposition */
+ {
+ struct dict_avp_data data = {
+ 828, /* Code */
+ 10415, /* Vendor */
+ "Content-Disposition", /* 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);
+ };
+ /* Content-Length */
+ {
+ struct dict_avp_data data = {
+ 827, /* Code */
+ 10415, /* Vendor */
+ "Content-Length", /* 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);
+ };
+ /* Content-Size */
+ {
+ struct dict_avp_data data = {
+ 1206, /* Code */
+ 10415, /* Vendor */
+ "Content-Size", /* 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);
+ };
+ /* Content-Type */
+ {
+ struct dict_avp_data data = {
+ 826, /* Code */
+ 10415, /* Vendor */
+ "Content-Type", /* 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);
+ };
+ /* Coverage-Status */
+ {
+ struct dict_avp_data data = {
+ 3428, /* Code */
+ 10415, /* Vendor */
+ "Coverage-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, "3GPP/Enumerated(Coverage-Status)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Out_of_coverage", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "In_coverage", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* CP-CIoT-EPS-Optimisation-Indicator */
+ {
+ struct dict_avp_data data = {
+ 3930, /* Code */
+ 10415, /* Vendor */
+ "CP-CIoT-EPS-Optimisation-Indicator", /* 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, "3GPP/Enumerated(CP-CIoT-EPS-Optimisation-Indicator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Not_Apply", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Apply", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* CSG-Access-Mode */
+ {
+ struct dict_avp_data data = {
+ 2317, /* Code */
+ 10415, /* Vendor */
+ "CSG-Access-Mode", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ struct dict_object *type;
+ struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CSG-Access-Mode)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Closed_mode", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Hybrid_Mode", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* CSG-Membership-Indication */
+ {
+ struct dict_avp_data data = {
+ 2318, /* Code */
+ 10415, /* Vendor */
+ "CSG-Membership-Indication", /* 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, "3GPP/Enumerated(CSG-Membership-Indication)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Not_CSG_member", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "CSG_Member", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* CUG-Information */
+ {
+ struct dict_avp_data data = {
+ 2304, /* Code */
+ 10415, /* Vendor */
+ "CUG-Information", /* 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);
+ };
+ /* Data-Coding-Scheme */
+ {
+ struct dict_avp_data data = {
+ 2001, /* Code */
+ 10415, /* Vendor */
+ "Data-Coding-Scheme", /* 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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Deferred-Location-Event-Type */
+ {
+ struct dict_avp_data data = {
+ 1230, /* Code */
+ 10415, /* Vendor */
+ "Deferred-Location-Event-Type", /* 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);
+ };
+ /* Delivery-Report-Requested */
+ {
+ struct dict_avp_data data = {
+ 1216, /* Code */
+ 10415, /* Vendor */
+ "Delivery-Report-Requested", /* 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, "3GPP/Enumerated(Delivery-Report-Requested)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "No", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Yes", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Diagnostics */
+ {
+ struct dict_avp_data data = {
+ 2039, /* Code */
+ 10415, /* Vendor */
+ "Diagnostics", /* 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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Discoveree-UE-HPLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 4402, /* Code */
+ 10415, /* Vendor */
+ "Discoveree-UE-HPLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Discoveree-UE-VPLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 4403, /* Code */
+ 10415, /* Vendor */
+ "Discoveree-UE-VPLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Discoverer-UE-HPLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 4404, /* Code */
+ 10415, /* Vendor */
+ "Discoverer-UE-HPLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Discoverer-UE-VPLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 4405, /* Code */
+ 10415, /* Vendor */
+ "Discoverer-UE-VPLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Domain-Name */
+ {
+ struct dict_avp_data data = {
+ 1200, /* Code */
+ 10415, /* Vendor */
+ "Domain-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);
+ };
+ /* DRM-Content */
+ {
+ struct dict_avp_data data = {
+ 1221, /* Code */
+ 10415, /* Vendor */
+ "DRM-Content", /* 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, "3GPP/Enumerated(DRM-Content)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "No", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Yes", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Dynamic-Address-Flag */
+ {
+ struct dict_avp_data data = {
+ 2051, /* Code */
+ 10415, /* Vendor */
+ "Dynamic-Address-Flag", /* 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, "3GPP/Enumerated(Dynamic-Address-Flag)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Static", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Dynamic", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Dynamic-Address-Flag-Extension */
+ {
+ struct dict_avp_data data = {
+ 2068, /* Code */
+ 10415, /* Vendor */
+ "Dynamic-Address-Flag-Extension", /* 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, "3GPP/Enumerated(Dynamic-Address-Flag-Extension)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Static", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Dynamic", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Envelope-End-Time */
+ {
+ struct dict_avp_data data = {
+ 1267, /* Code */
+ 10415, /* Vendor */
+ "Envelope-End-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);
+ };
+ /* Envelope-Reporting */
+ {
+ struct dict_avp_data data = {
+ 1268, /* Code */
+ 10415, /* Vendor */
+ "Envelope-Reporting", /* 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, "3GPP/Enumerated(Envelope-Reporting)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "DO_NOT_REPORT_ENVELOPES", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "REPORT_ENVELOPES", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "REPORT_ENVELOPES_WITH_VOLUME", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "REPORT_ENVELOPES_WITH_EVENTS", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "REPORT_ENVELOPES_WITH_VOLUME_AND_EVENTS", { .i32=4 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Envelope-Start-Time */
+ {
+ struct dict_avp_data data = {
+ 1269, /* Code */
+ 10415, /* Vendor */
+ "Envelope-Start-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);
+ };
+ /* EPDG-Address */
+ {
+ struct dict_avp_data data = {
+ 3425, /* Code */
+ 10415, /* Vendor */
+ "EPDG-Address", /* 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, Address_type, NULL);
+ };
+ /* Event */
+ {
+ struct dict_avp_data data = {
+ 825, /* Code */
+ 10415, /* Vendor */
+ "Event", /* 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);
+ };
+ /* Event-Charging-TimeStamp */
+ {
+ struct dict_avp_data data = {
+ 1258, /* Code */
+ 10415, /* Vendor */
+ "Event-Charging-TimeStamp", /* 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);
+ };
+ /* Expires */
+ {
+ struct dict_avp_data data = {
+ 888, /* Code */
+ 10415, /* Vendor */
+ "Expires", /* 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);
+ };
+ /* File-Repair-Supported */
+ {
+ struct dict_avp_data data = {
+ 1224, /* Code */
+ 10415, /* Vendor */
+ "File-Repair-Supported", /* 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, "3GPP/Enumerated(File-Repair-Supported)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "SUPPORTED", { .i32=1 }};
+ struct dict_enumval_data t_2 = { "NOT_SUPPORTED", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Forwarding-Pending */
+ {
+ struct dict_avp_data data = {
+ 3415, /* Code */
+ 10415, /* Vendor */
+ "Forwarding-Pending", /* 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, "3GPP/Enumerated(Forwarding-Pending)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Forwarding_not_pending", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Forwarding_pending", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* From-Address */
+ {
+ struct dict_avp_data data = {
+ 2708, /* Code */
+ 10415, /* Vendor */
+ "From-Address", /* 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);
+ };
+ /* GGSN-Address */
+ {
+ struct dict_avp_data data = {
+ 847, /* Code */
+ 10415, /* Vendor */
+ "GGSN-Address", /* 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, Address_type, NULL);
+ };
+ /* IMS-Application-Reference-Identifier */
+ {
+ struct dict_avp_data data = {
+ 2601, /* Code */
+ 10415, /* Vendor */
+ "IMS-Application-Reference-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* IMS-Charging-Identifier */
+ {
+ struct dict_avp_data data = {
+ 841, /* Code */
+ 10415, /* Vendor */
+ "IMS-Charging-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* IMS-Communication-Service-Identifier */
+ {
+ struct dict_avp_data data = {
+ 1281, /* Code */
+ 10415, /* Vendor */
+ "IMS-Communication-Service-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* IMS-Emergency-Indicator */
+ {
+ struct dict_avp_data data = {
+ 2322, /* Code */
+ 10415, /* Vendor */
+ "IMS-Emergency-Indicator", /* 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, "3GPP/Enumerated(IMS-Emergency-Indicator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Non_Emergency", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Emergency", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* IMS-Visited-Network-Identifier */
+ {
+ struct dict_avp_data data = {
+ 2713, /* Code */
+ 10415, /* Vendor */
+ "IMS-Visited-Network-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* IMSI-Unauthenticated-Flag */
+ {
+ struct dict_avp_data data = {
+ 2308, /* Code */
+ 10415, /* Vendor */
+ "IMSI-Unauthenticated-Flag", /* 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, "3GPP/Enumerated(IMSI-Unauthenticated-Flag)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Authenticated", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Unauthenticated", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Incoming-Trunk-Group-Id */
+ {
+ struct dict_avp_data data = {
+ 852, /* Code */
+ 10415, /* Vendor */
+ "Incoming-Trunk-Group-Id", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Initial-IMS-Charging-Identifier */
+ {
+ struct dict_avp_data data = {
+ 2321, /* Code */
+ 10415, /* Vendor */
+ "Initial-IMS-Charging-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Instance-Id */
+ {
+ struct dict_avp_data data = {
+ 3402, /* Code */
+ 10415, /* Vendor */
+ "Instance-Id", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Interface-Id */
+ {
+ struct dict_avp_data data = {
+ 2003, /* Code */
+ 10415, /* Vendor */
+ "Interface-Id", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Interface-Port */
+ {
+ struct dict_avp_data data = {
+ 2004, /* Code */
+ 10415, /* Vendor */
+ "Interface-Port", /* 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);
+ };
+ /* Interface-Text */
+ {
+ struct dict_avp_data data = {
+ 2005, /* Code */
+ 10415, /* Vendor */
+ "Interface-Text", /* 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);
+ };
+ /* Interface-Type */
+ {
+ struct dict_avp_data data = {
+ 2006, /* Code */
+ 10415, /* Vendor */
+ "Interface-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, "3GPP/Enumerated(Interface-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Unknown", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "MOBILE_ORIGINATING", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "MOBILE_TERMINATING", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "APPLICATION_ORIGINATING", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "APPLICATION_TERMINATION", { .i32=4 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Inter-UE-Transfer */
+ {
+ struct dict_avp_data data = {
+ 3902, /* Code */
+ 10415, /* Vendor */
+ "Inter-UE-Transfer", /* 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, "3GPP/Enumerated(Inter-UE-Transfer)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Intra_UE_transfer", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Inter_UE_transfer", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* IP-Realm-Default-Indication */
+ {
+ struct dict_avp_data data = {
+ 2603, /* Code */
+ 10415, /* Vendor */
+ "IP-Realm-Default-Indication", /* 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, "3GPP/Enumerated(IP-Realm-Default-Indication)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Default_IP_Realm_Not_used", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Default_IP_realm_used", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* ISUP-Cause-Diagnostics */
+ {
+ struct dict_avp_data data = {
+ 3422, /* Code */
+ 10415, /* Vendor */
+ "ISUP-Cause-Diagnostics", /* 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);
+ };
+ /* ISUP-Cause-Location */
+ {
+ struct dict_avp_data data = {
+ 3423, /* Code */
+ 10415, /* Vendor */
+ "ISUP-Cause-Location", /* 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);
+ };
+ /* ISUP-Cause-Value */
+ {
+ struct dict_avp_data data = {
+ 3424, /* Code */
+ 10415, /* Vendor */
+ "ISUP-Cause-Value", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* ISUP-Location-Number */
+ {
+ struct dict_avp_data data = {
+ 3414, /* Code */
+ 10415, /* Vendor */
+ "ISUP-Location-Number", /* 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);
+ };
+ /* Language */
+ {
+ struct dict_avp_data data = {
+ 3914, /* Code */
+ 10415, /* Vendor */
+ "Language", /* 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);
+ };
+ /* Layer-2-Group-ID */
+ {
+ struct dict_avp_data data = {
+ 3429, /* Code */
+ 10415, /* Vendor */
+ "Layer-2-Group-ID", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* LCS-APN */
+ {
+ struct dict_avp_data data = {
+ 1231, /* Code */
+ 10415, /* Vendor */
+ "LCS-APN", /* 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);
+ };
+ /* LCS-Client-Dialed-By-MS */
+ {
+ struct dict_avp_data data = {
+ 1233, /* Code */
+ 10415, /* Vendor */
+ "LCS-Client-Dialed-By-MS", /* 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);
+ };
+ /* LCS-Client-External-ID */
+ {
+ struct dict_avp_data data = {
+ 1234, /* Code */
+ 10415, /* Vendor */
+ "LCS-Client-External-ID", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* LCS-Client-Type */
+ {
+ struct dict_avp_data data = {
+ 1241, /* Code */
+ 10415, /* Vendor */
+ "LCS-Client-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, "3GPP/Enumerated(LCS-Client-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "EMERGENCY_SERVICES", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "VALUE_ADDED_SERVICES", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "PLMN_OPERATOR_SERVICES", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "LAWFUL_INTERCEPT_SERVICES", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* LCS-Data-Coding-Scheme */
+ {
+ struct dict_avp_data data = {
+ 1236, /* Code */
+ 10415, /* Vendor */
+ "LCS-Data-Coding-Scheme", /* 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);
+ };
+ /* LCS-Format-Indicator */
+ {
+ struct dict_avp_data data = {
+ 1237, /* Code */
+ 10415, /* Vendor */
+ "LCS-Format-Indicator", /* 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, "3GPP/Enumerated(LCS-Format-Indicator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "LOGICAL_NAME", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "EMAIL_ADDRESS", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "MSISDN", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "URL", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "SIP_URL", { .i32=4 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* LCS-Name-String */
+ {
+ struct dict_avp_data data = {
+ 1238, /* Code */
+ 10415, /* Vendor */
+ "LCS-Name-String", /* 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);
+ };
+ /* LCS-Requestor-ID-String */
+ {
+ struct dict_avp_data data = {
+ 1240, /* Code */
+ 10415, /* Vendor */
+ "LCS-Requestor-ID-String", /* 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);
+ };
+ /* Local-GW-Inserted-Indication */
+ {
+ struct dict_avp_data data = {
+ 2604, /* Code */
+ 10415, /* Vendor */
+ "Local-GW-Inserted-Indication", /* 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, "3GPP/Enumerated(Local-GW-Inserted-Indication)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Local_GW_Not_Inserted", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Local_GW_Inserted", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Local-Sequence-Number */
+ {
+ struct dict_avp_data data = {
+ 2063, /* Code */
+ 10415, /* Vendor */
+ "Local-Sequence-Number", /* 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);
+ };
+ /* Location-Estimate */
+ {
+ struct dict_avp_data data = {
+ 1242, /* Code */
+ 10415, /* Vendor */
+ "Location-Estimate", /* 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);
+ };
+ /* Location-Estimate-Type */
+ {
+ struct dict_avp_data data = {
+ 1243, /* Code */
+ 10415, /* Vendor */
+ "Location-Estimate-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, "3GPP/Enumerated(Location-Estimate-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "CURRENT_LOCATION", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "CURRENT_LAST_KNOWN_LOCATION", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "INITIAL_LOCATION", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "ACTIVATE_DEFERRED_LOCATION", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "CANCEL_DEFERRED_LOCATION", { .i32=4 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Low-Balance-Indication */
+ {
+ struct dict_avp_data data = {
+ 2020, /* Code */
+ 10415, /* Vendor */
+ "Low-Balance-Indication", /* 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, "3GPP/Enumerated(Low-Balance-Indication)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "NOT_APPLICABLE", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "YES", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Low-Priority-Indicator */
+ {
+ struct dict_avp_data data = {
+ 2602, /* Code */
+ 10415, /* Vendor */
+ "Low-Priority-Indicator", /* 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, "3GPP/Enumerated(Low-Priority-Indicator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "NO", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "YES", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* MBMS-Charged-Party */
+ {
+ struct dict_avp_data data = {
+ 2323, /* Code */
+ 10415, /* Vendor */
+ "MBMS-Charged-Party", /* 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, "3GPP/Enumerated(MBMS-Charged-Party)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Content_Provider", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Subscriber", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* MBMS-GW-Address */
+ {
+ struct dict_avp_data data = {
+ 2307, /* Code */
+ 10415, /* Vendor */
+ "MBMS-GW-Address", /* 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, Address_type, NULL);
+ };
+ /* MBMS-User-Service-Type */
+ {
+ struct dict_avp_data data = {
+ 1225, /* Code */
+ 10415, /* Vendor */
+ "MBMS-User-Service-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, "3GPP/Enumerated(MBMS-User-Service-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "DOWNLOAD", { .i32=1 }};
+ struct dict_enumval_data t_2 = { "STREAMING", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Media-Initiator-Flag */
+ {
+ struct dict_avp_data data = {
+ 882, /* Code */
+ 10415, /* Vendor */
+ "Media-Initiator-Flag", /* 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, "3GPP/Enumerated(Media-Initiator-Flag)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "called_party", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "calling_party", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "unknown", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Media-Initiator-Party */
+ {
+ struct dict_avp_data data = {
+ 1288, /* Code */
+ 10415, /* Vendor */
+ "Media-Initiator-Party", /* 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);
+ };
+ /* Message-ID */
+ {
+ struct dict_avp_data data = {
+ 1210, /* Code */
+ 10415, /* Vendor */
+ "Message-ID", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Message-Size */
+ {
+ struct dict_avp_data data = {
+ 1212, /* Code */
+ 10415, /* Vendor */
+ "Message-Size", /* 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);
+ };
+ /* Message-Type */
+ {
+ struct dict_avp_data data = {
+ 1211, /* Code */
+ 10415, /* Vendor */
+ "Message-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, "3GPP/Enumerated(Message-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "m_send_req", { .i32=1 }};
+ struct dict_enumval_data t_2 = { "m_forward_req", { .i32=10 }};
+ struct dict_enumval_data t_3 = { "m_forward_conf", { .i32=11 }};
+ struct dict_enumval_data t_4 = { "m_mbox_store_conf", { .i32=12 }};
+ struct dict_enumval_data t_5 = { "m_mbox_view_conf", { .i32=13 }};
+ struct dict_enumval_data t_6 = { "m_mbox_upload_conf", { .i32=14 }};
+ struct dict_enumval_data t_7 = { "m_mbox_delete_conf", { .i32=15 }};
+ struct dict_enumval_data t_8 = { "m_send_conf", { .i32=2 }};
+ struct dict_enumval_data t_9 = { "m_notification_ind", { .i32=3 }};
+ struct dict_enumval_data t_10 = { "m_notifyresp_ind", { .i32=4 }};
+ struct dict_enumval_data t_11 = { "m_retrieve_conf", { .i32=5 }};
+ struct dict_enumval_data t_12 = { "m_acknowledge_ind", { .i32=6 }};
+ struct dict_enumval_data t_13 = { "m_delivery_ind", { .i32=7 }};
+ struct dict_enumval_data t_14 = { "m_read_rec_ind", { .i32=8 }};
+ struct dict_enumval_data t_15 = { "m_read_orig_ind", { .i32=9 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_11, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_12, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_13, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_14, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_15, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* MMBox-Storage-Requested */
+ {
+ struct dict_avp_data data = {
+ 1248, /* Code */
+ 10415, /* Vendor */
+ "MMBox-Storage-Requested", /* 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, "3GPP/Enumerated(MMBox-Storage-Requested)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "No", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Yes", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* MMTel-SService-Type */
+ {
+ struct dict_avp_data data = {
+ 2031, /* Code */
+ 10415, /* Vendor */
+ "MMTel-SService-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);
+ };
+ /* Monitored-PLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3430, /* Code */
+ 10415, /* Vendor */
+ "Monitored-PLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Monitoring-Event-Configuration-Activity */
+ {
+ struct dict_avp_data data = {
+ 3919, /* Code */
+ 10415, /* Vendor */
+ "Monitoring-Event-Configuration-Activity", /* 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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Monitoring-Event-Functionality */
+ {
+ struct dict_avp_data data = {
+ 3922, /* Code */
+ 10415, /* Vendor */
+ "Monitoring-Event-Functionality", /* 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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Monitoring-Event-Report-Number */
+ {
+ struct dict_avp_data data = {
+ 3923, /* Code */
+ 10415, /* Vendor */
+ "Monitoring-Event-Report-Number", /* 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);
+ };
+ /* Monitoring-UE-HPLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3431, /* Code */
+ 10415, /* Vendor */
+ "Monitoring-UE-HPLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Monitoring-UE-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3432, /* Code */
+ 10415, /* Vendor */
+ "Monitoring-UE-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Monitoring-UE-VPLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3433, /* Code */
+ 10415, /* Vendor */
+ "Monitoring-UE-VPLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* MSC-Address */
+ {
+ struct dict_avp_data data = {
+ 3417, /* Code */
+ 10415, /* Vendor */
+ "MSC-Address", /* 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);
+ };
+ /* MTC-IWF-Address */
+ {
+ struct dict_avp_data data = {
+ 3406, /* Code */
+ 10415, /* Vendor */
+ "MTC-IWF-Address", /* 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, Address_type, NULL);
+ };
+ /* Neighbour-Node-Address */
+ {
+ struct dict_avp_data data = {
+ 2705, /* Code */
+ 10415, /* Vendor */
+ "Neighbour-Node-Address", /* 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, Address_type, NULL);
+ };
+ /* Network-Call-Reference-Number */
+ {
+ struct dict_avp_data data = {
+ 3418, /* Code */
+ 10415, /* Vendor */
+ "Network-Call-Reference-Number", /* 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);
+ };
+ /* NNI-Type */
+ {
+ struct dict_avp_data data = {
+ 2704, /* Code */
+ 10415, /* Vendor */
+ "NNI-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, "3GPP/Enumerated(NNI-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "non_roaming", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "roaming_without_loopback", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "roaming_with_loopback", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Node-Functionality */
+ {
+ struct dict_avp_data data = {
+ 862, /* Code */
+ 10415, /* Vendor */
+ "Node-Functionality", /* 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, "3GPP/Enumerated(Node-Functionality)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "S-CSCF", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "P-CSCF", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "I-CSCF", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "MRFC", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "MGCF", { .i32=4 }};
+ struct dict_enumval_data t_6 = { "BGCF", { .i32=5 }};
+ struct dict_enumval_data t_7 = { "AS", { .i32=6 }};
+ struct dict_enumval_data t_8 = { "IBCF", { .i32=7 }};
+ struct dict_enumval_data t_9 = { "S-GW", { .i32=8 }};
+ struct dict_enumval_data t_10 = { "P-GW", { .i32=9 }};
+ struct dict_enumval_data t_11 = { "HSGW", { .i32=10 }};
+ struct dict_enumval_data t_12 = { "E-CSCF", { .i32=11 }};
+ struct dict_enumval_data t_13 = { "MME", { .i32=12 }};
+ struct dict_enumval_data t_14 = { "TRF", { .i32=13 }};
+ struct dict_enumval_data t_15 = { "TF", { .i32=14 }};
+ struct dict_enumval_data t_16 = { "ATCF", { .i32=15 }};
+ struct dict_enumval_data t_17 = { "Proxy-function", { .i32=16 }};
+ struct dict_enumval_data t_18 = { "ePDG", { .i32=17 }};
+ struct dict_enumval_data t_19 = { "TDF", { .i32=18 }};
+ struct dict_enumval_data t_20 = { "TWAG", { .i32=19 }};
+ struct dict_enumval_data t_21 = { "SCEF", { .i32=20 }};
+ struct dict_enumval_data t_22 = { "IWK-SCEF", { .i32=21 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_11, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_12, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_13, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_14, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_15, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_16, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_17, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_18, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_19, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_20, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_21, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_22, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Node-Id */
+ {
+ struct dict_avp_data data = {
+ 2064, /* Code */
+ 10415, /* Vendor */
+ "Node-Id", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Number-Of-Diversions */
+ {
+ struct dict_avp_data data = {
+ 2034, /* Code */
+ 10415, /* Vendor */
+ "Number-Of-Diversions", /* 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);
+ };
+ /* Number-Of-Messages-Sent */
+ {
+ struct dict_avp_data data = {
+ 2019, /* Code */
+ 10415, /* Vendor */
+ "Number-Of-Messages-Sent", /* 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);
+ };
+ /* Number-Of-Participants */
+ {
+ struct dict_avp_data data = {
+ 885, /* Code */
+ 10415, /* Vendor */
+ "Number-Of-Participants", /* 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);
+ };
+ /* Number-Of-Received-Talk-Bursts */
+ {
+ struct dict_avp_data data = {
+ 1282, /* Code */
+ 10415, /* Vendor */
+ "Number-Of-Received-Talk-Bursts", /* 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);
+ };
+ /* Number-Of-Talk-Bursts */
+ {
+ struct dict_avp_data data = {
+ 1283, /* Code */
+ 10415, /* Vendor */
+ "Number-Of-Talk-Bursts", /* 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);
+ };
+ /* Number-Portability-Routing-Information */
+ {
+ struct dict_avp_data data = {
+ 2024, /* Code */
+ 10415, /* Vendor */
+ "Number-Portability-Routing-Information", /* 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);
+ };
+ /* Online-Charging-Flag */
+ {
+ struct dict_avp_data data = {
+ 2303, /* Code */
+ 10415, /* Vendor */
+ "Online-Charging-Flag", /* 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, "3GPP/Enumerated(Online-Charging-Flag)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "ECF_address_not_provided", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "ECF_address_provided", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Originating-IOI */
+ {
+ struct dict_avp_data data = {
+ 839, /* Code */
+ 10415, /* Vendor */
+ "Originating-IOI", /* 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);
+ };
+ /* Originator */
+ {
+ struct dict_avp_data data = {
+ 864, /* Code */
+ 10415, /* Vendor */
+ "Originator", /* 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, "3GPP/Enumerated(Originator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Calling_Party", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Called_Party", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Originator-SCCP-Address */
+ {
+ struct dict_avp_data data = {
+ 2008, /* Code */
+ 10415, /* Vendor */
+ "Originator-SCCP-Address", /* 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, Address_type, NULL);
+ };
+ /* Outgoing-Session-Id */
+ {
+ struct dict_avp_data data = {
+ 2320, /* Code */
+ 10415, /* Vendor */
+ "Outgoing-Session-Id", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Outgoing-Trunk-Group-Id */
+ {
+ struct dict_avp_data data = {
+ 853, /* Code */
+ 10415, /* Vendor */
+ "Outgoing-Trunk-Group-Id", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Participant-Access-Priority */
+ {
+ struct dict_avp_data data = {
+ 1259, /* Code */
+ 10415, /* Vendor */
+ "Participant-Access-Priority", /* 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, "3GPP/Enumerated(Participant-Access-Priority)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Pre_emptive_priority", { .i32=1 }};
+ struct dict_enumval_data t_2 = { "High_priority", { .i32=2 }};
+ struct dict_enumval_data t_3 = { "Normal_priority", { .i32=3 }};
+ struct dict_enumval_data t_4 = { "Low_priority", { .i32=4 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Participant-Action-Type */
+ {
+ struct dict_avp_data data = {
+ 2049, /* Code */
+ 10415, /* Vendor */
+ "Participant-Action-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, "3GPP/Enumerated(Participant-Action-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "CREATE_CONF", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "JOIN_CONF", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "INVITE_INTO_CONF", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "QUIT_CONF", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Participants-Involved */
+ {
+ struct dict_avp_data data = {
+ 887, /* Code */
+ 10415, /* Vendor */
+ "Participants-Involved", /* 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);
+ };
+ /* PC3-Control-Protocol-Cause */
+ {
+ struct dict_avp_data data = {
+ 3434, /* Code */
+ 10415, /* Vendor */
+ "PC3-Control-Protocol-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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* PC3-EPC-Control-Protocol-Cause */
+ {
+ struct dict_avp_data data = {
+ 3435, /* Code */
+ 10415, /* Vendor */
+ "PC3-EPC-Control-Protocol-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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* PDN-Connection-Charging-ID */
+ {
+ struct dict_avp_data data = {
+ 2050, /* Code */
+ 10415, /* Vendor */
+ "PDN-Connection-Charging-ID", /* 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);
+ };
+ /* PDP-Address */
+ {
+ struct dict_avp_data data = {
+ 1227, /* Code */
+ 10415, /* Vendor */
+ "PDP-Address", /* 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, Address_type, NULL);
+ };
+ /* PDP-Address-Prefix-Length */
+ {
+ struct dict_avp_data data = {
+ 2606, /* Code */
+ 10415, /* Vendor */
+ "PDP-Address-Prefix-Length", /* 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);
+ };
+ /* PDP-Context-Type */
+ {
+ struct dict_avp_data data = {
+ 1247, /* Code */
+ 10415, /* Vendor */
+ "PDP-Context-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, "3GPP/Enumerated(PDP-Context-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Primary", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Secondary", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Play-Alternative */
+ {
+ struct dict_avp_data data = {
+ 3913, /* Code */
+ 10415, /* Vendor */
+ "Play-Alternative", /* 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, "3GPP/Enumerated(Play-Alternative)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "served_party", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "remote_party", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* PoC-Change-Condition */
+ {
+ struct dict_avp_data data = {
+ 1261, /* Code */
+ 10415, /* Vendor */
+ "PoC-Change-Condition", /* 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, "3GPP/Enumerated(PoC-Change-Condition)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "ServiceChange", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "VolumeLimit", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "TimeLimit", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "NumberofTalkBurstLimit", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "NumberofActiveParticipants", { .i32=4 }};
+ struct dict_enumval_data t_6 = { "TariffTime", { .i32=5 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* PoC-Change-Time */
+ {
+ struct dict_avp_data data = {
+ 1262, /* Code */
+ 10415, /* Vendor */
+ "PoC-Change-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);
+ };
+ /* PoC-Controlling-Address */
+ {
+ struct dict_avp_data data = {
+ 858, /* Code */
+ 10415, /* Vendor */
+ "PoC-Controlling-Address", /* 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);
+ };
+ /* PoC-Event-Type */
+ {
+ struct dict_avp_data data = {
+ 2025, /* Code */
+ 10415, /* Vendor */
+ "PoC-Event-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, "3GPP/Enumerated(PoC-Event-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Normal", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Instant_Personal_Alert", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "PoC_Group_Advertisement", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "Early_Session_Setting_Up", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "PoC_Talk_Burst", { .i32=4 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* PoC-Group-Name */
+ {
+ struct dict_avp_data data = {
+ 859, /* Code */
+ 10415, /* Vendor */
+ "PoC-Group-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);
+ };
+ /* PoC-Server-Role */
+ {
+ struct dict_avp_data data = {
+ 883, /* Code */
+ 10415, /* Vendor */
+ "PoC-Server-Role", /* 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, "3GPP/Enumerated(PoC-Server-Role)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Participating_PoC_Server", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Controlling_PoC_Server", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* PoC-Session-Id */
+ {
+ struct dict_avp_data data = {
+ 1229, /* Code */
+ 10415, /* Vendor */
+ "PoC-Session-Id", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* PoC-Session-Initiation-Type */
+ {
+ struct dict_avp_data data = {
+ 1277, /* Code */
+ 10415, /* Vendor */
+ "PoC-Session-Initiation-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, "3GPP/Enumerated(PoC-Session-Initiation-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Pre_established", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "On_demand", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* PoC-Session-Type */
+ {
+ struct dict_avp_data data = {
+ 884, /* Code */
+ 10415, /* Vendor */
+ "PoC-Session-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, "3GPP/Enumerated(PoC-Session-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "1_to_1_PoC", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Chat_PoC_Group", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "Pre_arranged_PoC_Group", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "Ad_hoc_PoC_Gropu", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* PoC-User-Role-IDs */
+ {
+ struct dict_avp_data data = {
+ 1253, /* Code */
+ 10415, /* Vendor */
+ "PoC-User-Role-IDs", /* 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);
+ };
+ /* PoC-User-Role-Info-Units */
+ {
+ struct dict_avp_data data = {
+ 1254, /* Code */
+ 10415, /* Vendor */
+ "PoC-User-Role-Info-Units", /* 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, "3GPP/Enumerated(PoC-User-Role-Info-Units)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Moderator", { .i32=1 }};
+ struct dict_enumval_data t_2 = { "Dispatcher", { .i32=2 }};
+ struct dict_enumval_data t_3 = { "Session_Owner", { .i32=3 }};
+ struct dict_enumval_data t_4 = { "Session_Participant", { .i32=4 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Positioning-Data */
+ {
+ struct dict_avp_data data = {
+ 1245, /* Code */
+ 10415, /* Vendor */
+ "Positioning-Data", /* 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);
+ };
+ /* Preferred-AoC-Currency */
+ {
+ struct dict_avp_data data = {
+ 2315, /* Code */
+ 10415, /* Vendor */
+ "Preferred-AoC-Currency", /* 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);
+ };
+ /* Priority */
+ {
+ struct dict_avp_data data = {
+ 1209, /* Code */
+ 10415, /* Vendor */
+ "Priority", /* 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, "3GPP/Enumerated(Priority)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Low", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Normal", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "High", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Privacy-Indicator */
+ {
+ struct dict_avp_data data = {
+ 3915, /* Code */
+ 10415, /* Vendor */
+ "Privacy-Indicator", /* 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, "3GPP/Enumerated(Privacy-Indicator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "NOT_PRIVATE", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "PRIVATE", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* ProSe-3rd-Party-Application-ID */
+ {
+ struct dict_avp_data data = {
+ 3440, /* Code */
+ 10415, /* Vendor */
+ "ProSe-3rd-Party-Application-ID", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* ProSe-Direct-Discovery-Model */
+ {
+ struct dict_avp_data data = {
+ 3442, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Direct-Discovery-Model", /* 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, "3GPP/Enumerated(ProSe-Direct-Discovery-Model)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Model_A", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Model_B", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* ProSe-Event-Type */
+ {
+ struct dict_avp_data data = {
+ 3443, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Event-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, "3GPP/Enumerated(ProSe-Event-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Annoucing", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Monitoring", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "Match_Report", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* ProSe-Function-IP-Address */
+ {
+ struct dict_avp_data data = {
+ 3444, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Function-IP-Address", /* 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, Address_type, NULL);
+ };
+ /* ProSe-Function-PLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3457, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Function-PLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* ProSe-Functionality */
+ {
+ struct dict_avp_data data = {
+ 3445, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Functionality", /* 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, "3GPP/Enumerated(ProSe-Functionality)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Direct_discovery", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "EPC_level_discovery", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "Direct_communication", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* ProSe-Group-IP-Multicast-Address */
+ {
+ struct dict_avp_data data = {
+ 3446, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Group-IP-Multicast-Address", /* 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, Address_type, NULL);
+ };
+ /* ProSe-Range-Class */
+ {
+ struct dict_avp_data data = {
+ 3448, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Range-Class", /* 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, "3GPP/Enumerated(ProSe-Range-Class)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Reserved", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "50_m", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "100_m", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "Unused", { .i32=255 }};
+ struct dict_enumval_data t_5 = { "200_m", { .i32=3 }};
+ struct dict_enumval_data t_6 = { "500_m", { .i32=4 }};
+ struct dict_enumval_data t_7 = { "1000_m", { .i32=5 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* ProSe-Reason-For-Cancellation */
+ {
+ struct dict_avp_data data = {
+ 3449, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Reason-For-Cancellation", /* 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, "3GPP/Enumerated(ProSe-Reason-For-Cancellation)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Proximity_Alert_sent", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Time_expired_with_no_renewal", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "Requestor_cancellation", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* ProSe-Request-Timestamp */
+ {
+ struct dict_avp_data data = {
+ 3450, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Request-Timestamp", /* 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);
+ };
+ /* ProSe-Role-Of-UE */
+ {
+ struct dict_avp_data data = {
+ 3451, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Role-Of-UE", /* 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, "3GPP/Enumerated(ProSe-Role-Of-UE)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Announcing_UE", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Monitoring_UE", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "Requestor_UE", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "Requested_UE", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* ProSe-Source-IP-Address */
+ {
+ struct dict_avp_data data = {
+ 3452, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Source-IP-Address", /* 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, Address_type, NULL);
+ };
+ /* ProSe-UE-ID */
+ {
+ struct dict_avp_data data = {
+ 3453, /* Code */
+ 10415, /* Vendor */
+ "ProSe-UE-ID", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Proximity-Alert-Indication */
+ {
+ struct dict_avp_data data = {
+ 3454, /* Code */
+ 10415, /* Vendor */
+ "Proximity-Alert-Indication", /* 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, "3GPP/Enumerated(Proximity-Alert-Indication)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Alert", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "No_Alert", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Proximity-Alert-Timestamp */
+ {
+ struct dict_avp_data data = {
+ 3455, /* Code */
+ 10415, /* Vendor */
+ "Proximity-Alert-Timestamp", /* 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);
+ };
+ /* Proximity-Cancellation-Timestamp */
+ {
+ struct dict_avp_data data = {
+ 3456, /* Code */
+ 10415, /* Vendor */
+ "Proximity-Cancellation-Timestamp", /* 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);
+ };
+ /* PS-Append-Free-Format-Data */
+ {
+ struct dict_avp_data data = {
+ 867, /* Code */
+ 10415, /* Vendor */
+ "PS-Append-Free-Format-Data", /* 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, "3GPP/Enumerated(PS-Append-Free-Format-Data)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Append", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Overwrite", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* PS-Free-Format-Data */
+ {
+ struct dict_avp_data data = {
+ 866, /* Code */
+ 10415, /* Vendor */
+ "PS-Free-Format-Data", /* 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);
+ };
+ /* Quota-Consumption-Time */
+ {
+ struct dict_avp_data data = {
+ 881, /* Code */
+ 10415, /* Vendor */
+ "Quota-Consumption-Time", /* 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);
+ };
+ /* Quota-Holding-Time */
+ {
+ struct dict_avp_data data = {
+ 871, /* Code */
+ 10415, /* Vendor */
+ "Quota-Holding-Time", /* 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);
+ };
+ /* Quota-Indicator */
+ {
+ struct dict_avp_data data = {
+ 3912, /* Code */
+ 10415, /* Vendor */
+ "Quota-Indicator", /* 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, "3GPP/Enumerated(Quota-Indicator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "QUOTA_IS_NOT_USED_DURING_PLAYBACK", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "QUOTA_IS_USED_DURING_PLAYBACK", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Radio-Frequency */
+ {
+ struct dict_avp_data data = {
+ 3462, /* Code */
+ 10415, /* Vendor */
+ "Radio-Frequency", /* 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);
+ };
+ /* Radio-Parameter-Set-Values */
+ {
+ struct dict_avp_data data = {
+ 3464, /* Code */
+ 10415, /* Vendor */
+ "Radio-Parameter-Set-Values", /* 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);
+ };
+ /* Radio-Resources-Indicator */
+ {
+ struct dict_avp_data data = {
+ 3465, /* Code */
+ 10415, /* Vendor */
+ "Radio-Resources-Indicator", /* 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 */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Rate-Control-Max-Message-Size */
+ {
+ struct dict_avp_data data = {
+ 3937, /* Code */
+ 10415, /* Vendor */
+ "Rate-Control-Max-Message-Size", /* 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);
+ };
+ /* Rate-Control-Max-Rate */
+ {
+ struct dict_avp_data data = {
+ 3938, /* Code */
+ 10415, /* Vendor */
+ "Rate-Control-Max-Rate", /* 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);
+ };
+ /* Rate-Control-Time-Unit */
+ {
+ struct dict_avp_data data = {
+ 3939, /* Code */
+ 10415, /* Vendor */
+ "Rate-Control-Time-Unit", /* 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);
+ };
+ /* Read-Reply-Report-Requested */
+ {
+ struct dict_avp_data data = {
+ 1222, /* Code */
+ 10415, /* Vendor */
+ "Read-Reply-Report-Requested", /* 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, "3GPP/Enumerated(Read-Reply-Report-Requested)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "No", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Yes", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Reason-Header */
+ {
+ struct dict_avp_data data = {
+ 3401, /* Code */
+ 10415, /* Vendor */
+ "Reason-Header", /* 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);
+ };
+ /* Received-Talk-Burst-Time */
+ {
+ struct dict_avp_data data = {
+ 1284, /* Code */
+ 10415, /* Vendor */
+ "Received-Talk-Burst-Time", /* 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);
+ };
+ /* Received-Talk-Burst-Volume */
+ {
+ struct dict_avp_data data = {
+ 1285, /* Code */
+ 10415, /* Vendor */
+ "Received-Talk-Burst-Volume", /* 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);
+ };
+ /* Recipient-SCCP-Address */
+ {
+ struct dict_avp_data data = {
+ 2010, /* Code */
+ 10415, /* Vendor */
+ "Recipient-SCCP-Address", /* 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, Address_type, NULL);
+ };
+ /* Refund-Information */
+ {
+ struct dict_avp_data data = {
+ 2022, /* Code */
+ 10415, /* Vendor */
+ "Refund-Information", /* 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);
+ };
+ /* Related-IMS-Charging-Identifier */
+ {
+ struct dict_avp_data data = {
+ 2711, /* Code */
+ 10415, /* Vendor */
+ "Related-IMS-Charging-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Related-IMS-Charging-Identifier-Node */
+ {
+ struct dict_avp_data data = {
+ 2712, /* Code */
+ 10415, /* Vendor */
+ "Related-IMS-Charging-Identifier-Node", /* 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, Address_type, NULL);
+ };
+ /* Relationship-Mode */
+ {
+ struct dict_avp_data data = {
+ 2706, /* Code */
+ 10415, /* Vendor */
+ "Relationship-Mode", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ struct dict_object *type;
+ struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Relationship-Mode)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "trusted", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "non_trusted", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Reply-Applic-ID */
+ {
+ struct dict_avp_data data = {
+ 1223, /* Code */
+ 10415, /* Vendor */
+ "Reply-Applic-ID", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Reply-Path-Requested */
+ {
+ struct dict_avp_data data = {
+ 2011, /* Code */
+ 10415, /* Vendor */
+ "Reply-Path-Requested", /* 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, "3GPP/Enumerated(Reply-Path-Requested)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "No_Reply_Path_Set", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Reply_path_Set", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Reporting-Reason */
+ {
+ struct dict_avp_data data = {
+ 872, /* Code */
+ 10415, /* Vendor */
+ "Reporting-Reason", /* 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, "3GPP/Enumerated(Reporting-Reason)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "THRESHOLD", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "QHT", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "FINAL", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "QUOTA_EXHAUSTED", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "VALIDITY_TIME", { .i32=4 }};
+ struct dict_enumval_data t_6 = { "OTHER_QUOTA_TYPE", { .i32=5 }};
+ struct dict_enumval_data t_7 = { "RATING_CONDITION_CHANGE", { .i32=6 }};
+ struct dict_enumval_data t_8 = { "FORCED_REAUTHORISATION", { .i32=7 }};
+ struct dict_enumval_data t_9 = { "POOL_EXHAUSTED", { .i32=8 }};
+ struct dict_enumval_data t_10 = { "UNUSED_QUOTA_TIMER", { .i32=9 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Requested-Party-Address */
+ {
+ struct dict_avp_data data = {
+ 1251, /* Code */
+ 10415, /* Vendor */
+ "Requested-Party-Address", /* 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);
+ };
+ /* Requested-PLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3436, /* Code */
+ 10415, /* Vendor */
+ "Requested-PLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Requestor-PLMN-Identifier */
+ {
+ struct dict_avp_data data = {
+ 3437, /* Code */
+ 10415, /* Vendor */
+ "Requestor-PLMN-Identifier", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Role-Of-Node */
+ {
+ struct dict_avp_data data = {
+ 829, /* Code */
+ 10415, /* Vendor */
+ "Role-Of-Node", /* 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, "3GPP/Enumerated(Role-Of-Node)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "ORIGINATING_ROLE", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "TERMINATING_ROLE", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "FORWARDING_ROLE", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Role-Of-ProSe-Function */
+ {
+ struct dict_avp_data data = {
+ 3438, /* Code */
+ 10415, /* Vendor */
+ "Role-Of-ProSe-Function", /* 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, "3GPP/Enumerated(Role-Of-ProSe-Function)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "HPLMN", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "VPLMN", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "Local_PLMN", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Route-Header-Received */
+ {
+ struct dict_avp_data data = {
+ 3403, /* Code */
+ 10415, /* Vendor */
+ "Route-Header-Received", /* 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);
+ };
+ /* Route-Header-Transmitted */
+ {
+ struct dict_avp_data data = {
+ 3404, /* Code */
+ 10415, /* Vendor */
+ "Route-Header-Transmitted", /* 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);
+ };
+ /* SCS-Address */
+ {
+ struct dict_avp_data data = {
+ 3941, /* Code */
+ 10415, /* Vendor */
+ "SCS-Address", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
+ };
+ /* SCS-Realm */
+ {
+ struct dict_avp_data data = {
+ 3942, /* Code */
+ 10415, /* Vendor */
+ "SCS-Realm", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
+ };
+ /* SDP-Answer-Timestamp */
+ {
+ struct dict_avp_data data = {
+ 1275, /* Code */
+ 10415, /* Vendor */
+ "SDP-Answer-Timestamp", /* 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);
+ };
+ /* SDP-Media-Description */
+ {
+ struct dict_avp_data data = {
+ 845, /* Code */
+ 10415, /* Vendor */
+ "SDP-Media-Description", /* 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);
+ };
+ /* SDP-Media-Name */
+ {
+ struct dict_avp_data data = {
+ 844, /* Code */
+ 10415, /* Vendor */
+ "SDP-Media-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);
+ };
+ /* SDP-Offer-Timestamp */
+ {
+ struct dict_avp_data data = {
+ 1274, /* Code */
+ 10415, /* Vendor */
+ "SDP-Offer-Timestamp", /* 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);
+ };
+ /* SDP-Session-Description */
+ {
+ struct dict_avp_data data = {
+ 842, /* Code */
+ 10415, /* Vendor */
+ "SDP-Session-Description", /* 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);
+ };
+ /* SDP-Type */
+ {
+ struct dict_avp_data data = {
+ 2036, /* Code */
+ 10415, /* Vendor */
+ "SDP-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, "3GPP/Enumerated(SDP-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "SDP_Offer", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "SDP_Answer", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Serving-Node-Identity */
+ {
+ struct dict_avp_data data = {
+ 3929, /* Code */
+ 10415, /* Vendor */
+ "Serving-Node-Identity", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
+ };
+ /* Served-Party-IP-Address */
+ {
+ struct dict_avp_data data = {
+ 848, /* Code */
+ 10415, /* Vendor */
+ "Served-Party-IP-Address", /* 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, Address_type, NULL);
+ };
+ /* Service-Id */
+ {
+ struct dict_avp_data data = {
+ 855, /* Code */
+ 10415, /* Vendor */
+ "Service-Id", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Service-Mode */
+ {
+ struct dict_avp_data data = {
+ 2032, /* Code */
+ 10415, /* Vendor */
+ "Service-Mode", /* 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);
+ };
+ /* Service-Specific-Data */
+ {
+ struct dict_avp_data data = {
+ 863, /* Code */
+ 10415, /* Vendor */
+ "Service-Specific-Data", /* 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);
+ };
+ /* Service-Specific-Type */
+ {
+ struct dict_avp_data data = {
+ 1257, /* Code */
+ 10415, /* Vendor */
+ "Service-Specific-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);
+ };
+ /* Serving-Node-Type */
+ {
+ struct dict_avp_data data = {
+ 2047, /* Code */
+ 10415, /* Vendor */
+ "Serving-Node-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, "3GPP/Enumerated(Serving-Node-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "SGSN", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "PMIPSGW", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "GTPSGW", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "ePDG", { .i32=3 }};
+ struct dict_enumval_data t_5 = { "hSGW", { .i32=4 }};
+ struct dict_enumval_data t_6 = { "MME", { .i32=5 }};
+ struct dict_enumval_data t_7 = { "TWAN", { .i32=6 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Session-Direction */
+ {
+ struct dict_avp_data data = {
+ 2707, /* Code */
+ 10415, /* Vendor */
+ "Session-Direction", /* 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, "3GPP/Enumerated(Session-Direction)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "inbound", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "outbound", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* SGi-PtP-Tunnelling-Method */
+ {
+ struct dict_avp_data data = {
+ 3931, /* Code */
+ 10415, /* Vendor */
+ "SGi-PtP-Tunnelling-Method", /* 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, "3GPP/Enumerated(SGi-PtP-Tunnelling-Method)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "UDP_IP_based", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Others", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* SGSN-Address */
+ {
+ struct dict_avp_data data = {
+ 1228, /* Code */
+ 10415, /* Vendor */
+ "SGSN-Address", /* 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, Address_type, NULL);
+ };
+ /* SGW-Address */
+ {
+ struct dict_avp_data data = {
+ 2067, /* Code */
+ 10415, /* Vendor */
+ "SGW-Address", /* 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, Address_type, NULL);
+ };
+ /* SGW-Change */
+ {
+ struct dict_avp_data data = {
+ 2065, /* Code */
+ 10415, /* Vendor */
+ "SGW-Change", /* 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, "3GPP/Enumerated(SGW-Change)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "ACR_Start_NOT_due_to_SGW_Change", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "ACR_Start_due_to_SGW_Change", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* SIP-Method */
+ {
+ struct dict_avp_data data = {
+ 824, /* Code */
+ 10415, /* Vendor */
+ "SIP-Method", /* 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);
+ };
+ /* SIP-Request-Timestamp */
+ {
+ struct dict_avp_data data = {
+ 834, /* Code */
+ 10415, /* Vendor */
+ "SIP-Request-Timestamp", /* 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);
+ };
+ /* SIP-Request-Timestamp-Fraction */
+ {
+ struct dict_avp_data data = {
+ 2301, /* Code */
+ 10415, /* Vendor */
+ "SIP-Request-Timestamp-Fraction", /* 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);
+ };
+ /* SIP-Response-Timestamp */
+ {
+ struct dict_avp_data data = {
+ 835, /* Code */
+ 10415, /* Vendor */
+ "SIP-Response-Timestamp", /* 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);
+ };
+ /* SIP-Response-Timestamp-Fraction */
+ {
+ struct dict_avp_data data = {
+ 2302, /* Code */
+ 10415, /* Vendor */
+ "SIP-Response-Timestamp-Fraction", /* 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);
+ };
+ /* SM-Device-Trigger-Indicator */
+ {
+ struct dict_avp_data data = {
+ 3407, /* Code */
+ 10415, /* Vendor */
+ "SM-Device-Trigger-Indicator", /* 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, "3GPP/Enumerated(SM-Device-Trigger-Indicator)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Not_DeviceTrigger", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Device_Trigger", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* SM-Discharge-Time */
+ {
+ struct dict_avp_data data = {
+ 2012, /* Code */
+ 10415, /* Vendor */
+ "SM-Discharge-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);
+ };
+ /* SM-Message-Type */
+ {
+ struct dict_avp_data data = {
+ 2007, /* Code */
+ 10415, /* Vendor */
+ "SM-Message-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, "3GPP/Enumerated(SM-Message-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "SUBMISSION", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "DELIVERY_REPORT", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "SM_Service_Request", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* SM-Protocol-ID */
+ {
+ struct dict_avp_data data = {
+ 2013, /* Code */
+ 10415, /* Vendor */
+ "SM-Protocol-ID", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* SM-Sequence-Number */
+ {
+ struct dict_avp_data data = {
+ 3408, /* Code */
+ 10415, /* Vendor */
+ "SM-Sequence-Number", /* 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);
+ };
+ /* SM-Service-Type */
+ {
+ struct dict_avp_data data = {
+ 2029, /* Code */
+ 10415, /* Vendor */
+ "SM-Service-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, "3GPP/Enumerated(SM-Service-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "VAS4SMS_Short_Message_content_processing", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "VAS4SMS_Short_Message_forwarding", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "VAS4SMS_Short_Message_Deferred_Delivery", { .i32=10 }};
+ struct dict_enumval_data t_4 = { "VAS4SMS_Short_Message_Forwarding_multiple_subscriptions", { .i32=2 }};
+ struct dict_enumval_data t_5 = { "VAS4SMS_Short_Message_filtering", { .i32=3 }};
+ struct dict_enumval_data t_6 = { "VAS4SMS_Short_Message_receipt", { .i32=4 }};
+ struct dict_enumval_data t_7 = { "VAS4SMS_Short_Message_Network_Storage", { .i32=5 }};
+ struct dict_enumval_data t_8 = { "VAS4SMS_Short_Message_to_multiple_destinations", { .i32=6 }};
+ struct dict_enumval_data t_9 = { "VAS4SMS_Short_Message_Auto_Reply", { .i32=8 }};
+ struct dict_enumval_data t_10 = { "VAS4SMS_Short_Message_Personal_Signature", { .i32=9 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* SM-Status */
+ {
+ struct dict_avp_data data = {
+ 2014, /* Code */
+ 10415, /* Vendor */
+ "SM-Status", /* 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);
+ };
+ /* SM-User-Data-Header */
+ {
+ struct dict_avp_data data = {
+ 2015, /* Code */
+ 10415, /* Vendor */
+ "SM-User-Data-Header", /* 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);
+ };
+ /* SMS-Node */
+ {
+ struct dict_avp_data data = {
+ 2016, /* Code */
+ 10415, /* Vendor */
+ "SMS-Node", /* 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, "3GPP/Enumerated(SMS-Node)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "SMS_Router", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "IP_SM_GW", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "SMS_Router_and_IP_SM_GW", { .i32=2 }};
+ struct dict_enumval_data t_4 = { "SMS_SC", { .i32=3 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* SMS-Result */
+ {
+ struct dict_avp_data data = {
+ 3409, /* Code */
+ 10415, /* Vendor */
+ "SMS-Result", /* 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);
+ };
+ /* SMSC-Address */
+ {
+ struct dict_avp_data data = {
+ 2017, /* Code */
+ 10415, /* Vendor */
+ "SMSC-Address", /* 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, Address_type, NULL);
+ };
+ /* Start-of-Charging */
+ {
+ struct dict_avp_data data = {
+ 3419, /* Code */
+ 10415, /* Vendor */
+ "Start-of-Charging", /* 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);
+ };
+ /* Start-Time */
+ {
+ struct dict_avp_data data = {
+ 2041, /* Code */
+ 10415, /* Vendor */
+ "Start-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);
+ };
+ /* Status-AS-Code */
+ {
+ struct dict_avp_data data = {
+ 2702, /* Code */
+ 10415, /* Vendor */
+ "Status-AS-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, "3GPP/Enumerated(Status-AS-Code)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "4xx", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "5xx", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "Timeout", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Stop-Time */
+ {
+ struct dict_avp_data data = {
+ 2042, /* Code */
+ 10415, /* Vendor */
+ "Stop-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);
+ };
+ /* Submission-Time */
+ {
+ struct dict_avp_data data = {
+ 1202, /* Code */
+ 10415, /* Vendor */
+ "Submission-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);
+ };
+ /* Subscriber-Role */
+ {
+ struct dict_avp_data data = {
+ 2033, /* Code */
+ 10415, /* Vendor */
+ "Subscriber-Role", /* 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, "3GPP/Enumerated(Subscriber-Role)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Originating", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Terminating", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* TAD-Identifier */
+ {
+ struct dict_avp_data data = {
+ 2717, /* Code */
+ 10415, /* Vendor */
+ "TAD-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, "3GPP/Enumerated(TAD-Identifier)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "CS", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "PS", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Talk-Burst-Time */
+ {
+ struct dict_avp_data data = {
+ 1286, /* Code */
+ 10415, /* Vendor */
+ "Talk-Burst-Time", /* 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);
+ };
+ /* Talk-Burst-Volume */
+ {
+ struct dict_avp_data data = {
+ 1287, /* Code */
+ 10415, /* Vendor */
+ "Talk-Burst-Volume", /* 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);
+ };
+ /* Tariff-XML */
+ {
+ struct dict_avp_data data = {
+ 2306, /* Code */
+ 10415, /* Vendor */
+ "Tariff-XML", /* 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);
+ };
+ /* Teleservice */
+ {
+ struct dict_avp_data data = {
+ 3413, /* Code */
+ 10415, /* Vendor */
+ "Teleservice", /* 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);
+ };
+ /* Terminating-IOI */
+ {
+ struct dict_avp_data data = {
+ 840, /* Code */
+ 10415, /* Vendor */
+ "Terminating-IOI", /* 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);
+ };
+ /* Time-First-Reception */
+ {
+ struct dict_avp_data data = {
+ 3466, /* Code */
+ 10415, /* Vendor */
+ "Time-First-Reception", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
+ };
+ /* Time-First-Transmission */
+ {
+ struct dict_avp_data data = {
+ 3467, /* Code */
+ 10415, /* Vendor */
+ "Time-First-Transmission", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
+ };
+ /* Time-First-Usage */
+ {
+ struct dict_avp_data data = {
+ 2043, /* Code */
+ 10415, /* Vendor */
+ "Time-First-Usage", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
+ };
+ /* Time-Indicator */
+ {
+ struct dict_avp_data data = {
+ 3911, /* Code */
+ 10415, /* Vendor */
+ "Time-Indicator", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Time-Last-Usage */
+ {
+ struct dict_avp_data data = {
+ 2044, /* Code */
+ 10415, /* Vendor */
+ "Time-Last-Usage", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
+ };
+ /* Time-Quota-Threshold */
+ {
+ struct dict_avp_data data = {
+ 868, /* Code */
+ 10415, /* Vendor */
+ "Time-Quota-Threshold", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Time-Quota-Type */
+ {
+ struct dict_avp_data data = {
+ 1271, /* Code */
+ 10415, /* Vendor */
+ "Time-Quota-Type", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ struct dict_object *type;
+ struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Time-Quota-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "DISCRETE_TIME_PERIOD", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "CONTINUOUS_TIME_PERIOD", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Time-Usage */
+ {
+ struct dict_avp_data data = {
+ 2045, /* Code */
+ 10415, /* Vendor */
+ "Time-Usage", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Token-Text */
+ {
+ struct dict_avp_data data = {
+ 1215, /* Code */
+ 10415, /* Vendor */
+ "Token-Text", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Transcoder-Inserted-Indication */
+ {
+ struct dict_avp_data data = {
+ 2605, /* Code */
+ 10415, /* Vendor */
+ "Transcoder-Inserted-Indication", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ struct dict_object *type;
+ struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Transcoder-Inserted-Indication)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Transcoder_Not_Inserted", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "Transcoder_Inserted", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Transit-IOI-List */
+ {
+ struct dict_avp_data data = {
+ 2701, /* Code */
+ 10415, /* Vendor */
+ "Transit-IOI-List", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Trigger-Type */
+ {
+ struct dict_avp_data data = {
+ 870, /* Code */
+ 10415, /* Vendor */
+ "Trigger-Type", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ struct dict_object *type;
+ struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Trigger-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "CHANGE_IN_SGSN_IP_ADDRESS", { .i32=1 }};
+ struct dict_enumval_data t_2 = { "CHANGE_IN_QOS", { .i32=2 }};
+ struct dict_enumval_data t_3 = { "CHANGE_IN_LOCATION", { .i32=3 }};
+ struct dict_enumval_data t_4 = { "CHANGE_IN_RAT", { .i32=4 }};
+ struct dict_enumval_data t_5 = { "CHANGE_IN_UE_TIMEZONE", { .i32=5 }};
+ struct dict_enumval_data t_6 = { "CHANGEINQOS_TRAFFIC_CLASS", { .i32=10 }};
+ struct dict_enumval_data t_7 = { "CHANGEINQOS_RELIABILITY_CLASS", { .i32=11 }};
+ struct dict_enumval_data t_8 = { "CHANGEINQOS_DELAY_CLASS", { .i32=12 }};
+ struct dict_enumval_data t_9 = { "CHANGEINQOS_PEAK_THROUGHPUT", { .i32=13 }};
+ struct dict_enumval_data t_10 = { "CHANGEINQOS_PRECEDENCE_CLASS", { .i32=14 }};
+ struct dict_enumval_data t_11 = { "CHANGEINQOS_MEAN_THROUGHPUT", { .i32=15 }};
+ struct dict_enumval_data t_12 = { "CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK", { .i32=16 }};
+ struct dict_enumval_data t_13 = { "CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK", { .i32=17 }};
+ struct dict_enumval_data t_14 = { "CHANGEINQOS_RESIDUAL_BER", { .i32=18 }};
+ struct dict_enumval_data t_15 = { "CHANGEINQOS_SDU_ERROR_RATIO", { .i32=19 }};
+ struct dict_enumval_data t_16 = { "CHANGEINQOS_TRANSFER_DELAY", { .i32=20 }};
+ struct dict_enumval_data t_17 = { "CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY", { .i32=21 }};
+ struct dict_enumval_data t_18 = { "CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK", { .i32=22 }};
+ struct dict_enumval_data t_19 = { "CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK", { .i32=23 }};
+ struct dict_enumval_data t_20 = { "CHANGEINQOS_APN_AGGREGATE_MAXIMUM_BIT_RATE", { .i32=24 }};
+ struct dict_enumval_data t_21 = { "CHANGEINLOCATION_MCC", { .i32=30 }};
+ struct dict_enumval_data t_22 = { "CHANGEINLOCATION_MNC", { .i32=31 }};
+ struct dict_enumval_data t_23 = { "CHANGEINLOCATION_RAC", { .i32=32 }};
+ struct dict_enumval_data t_24 = { "CHANGEINLOCATION_LAC", { .i32=33 }};
+ struct dict_enumval_data t_25 = { "CHANGEINLOCATION_CellId", { .i32=34 }};
+ struct dict_enumval_data t_26 = { "CHANGEINLOCATION_TAC", { .i32=35 }};
+ struct dict_enumval_data t_27 = { "CHANGEINLOCATION_ECGI", { .i32=36 }};
+ struct dict_enumval_data t_28 = { "CHANGE_IN_MEDIA_COMPOSITION", { .i32=40 }};
+ struct dict_enumval_data t_29 = { "CHANGE_IN_PARTICIPANTS_NMB", { .i32=50 }};
+ struct dict_enumval_data t_30 = { "CHANGE_IN_THRSHLD_OF_PARTICIPANTS_NMB", { .i32=51 }};
+ struct dict_enumval_data t_31 = { "CHANGE_IN_USER_PARTICIPATING_TYPE", { .i32=52 }};
+ struct dict_enumval_data t_32 = { "CHANGE_IN_SERVICE_CONDITION", { .i32=60 }};
+ struct dict_enumval_data t_33 = { "CHANGE_IN_SERVING_NODE", { .i32=61 }};
+ struct dict_enumval_data t_34 = { "CHANGE_IN_ACCESS_FOR_A_SERVICE_DATA_FLOW", { .i32=62 }};
+ struct dict_enumval_data t_35 = { "CHANGE_IN_USER_CSG_INFORMATION", { .i32=70 }};
+ struct dict_enumval_data t_36 = { "CHANGE_IN_HYBRID_SUBSCRIBED_USER_CSG_INFORMATION", { .i32=71 }};
+ struct dict_enumval_data t_37 = { "CHANGE_IN_HYBRID_UNSUBSCRIBED_USER_CSG_INFORMATION", { .i32=72 }};
+ struct dict_enumval_data t_38 = { "CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA", { .i32=73 }};
+ struct dict_enumval_data t_39 = { "CHANGE_IN_APN_RATE_CONTROL", { .i32=75 }};
+ struct dict_enumval_data t_40 = { "CHANGE_IN_3GPP_PS_DATA_OFF", { .i32=76 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_11, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_12, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_13, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_14, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_15, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_16, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_17, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_18, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_19, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_20, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_21, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_22, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_23, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_24, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_25, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_26, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_27, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_28, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_29, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_30, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_31, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_32, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_33, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_34, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_35, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_36, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_37, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_38, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_39, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_40, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* TWAG-Address */
+ {
+ struct dict_avp_data data = {
+ 3903, /* Code */
+ 10415, /* Vendor */
+ "TWAG-Address", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
+ };
+ /* Type-Number */
+ {
+ struct dict_avp_data data = {
+ 1204, /* Code */
+ 10415, /* Vendor */
+ "Type-Number", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* UNI-PDU-CP-Only-Flag */
+ {
+ struct dict_avp_data data = {
+ 3932, /* Code */
+ 10415, /* Vendor */
+ "UNI-PDU-CP-Only-Flag", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ struct dict_object *type;
+ struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(UNI-PDU-CP-Only-Flag)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "UNI_PDU_both_UP_CP", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "UNI_PDU_CP_Only", { .i32=1 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* Unit-Quota-Threshold */
+ {
+ struct dict_avp_data data = {
+ 1226, /* Code */
+ 10415, /* Vendor */
+ "Unit-Quota-Threshold", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Usage-Information-Report-Sequence-Number */
+ {
+ struct dict_avp_data data = {
+ 3439, /* Code */
+ 10415, /* Vendor */
+ "Usage-Information-Report-Sequence-Number", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* User-Participating-Type */
+ {
+ struct dict_avp_data data = {
+ 1279, /* Code */
+ 10415, /* Vendor */
+ "User-Participating-Type", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_INTEGER32 /* base type of data */
+ };
+ struct dict_object *type;
+ struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(User-Participating-Type)", NULL, NULL, NULL };
+ struct dict_enumval_data t_1 = { "Normal", { .i32=0 }};
+ struct dict_enumval_data t_2 = { "NW_PoC_Box", { .i32=1 }};
+ struct dict_enumval_data t_3 = { "UE_PoC_Box", { .i32=2 }};
+ /* Create the Enumerated type, and then the AVP */
+ CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
+ CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
+ CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
+ CHECK_dict_new( DICT_AVP, &data, type, NULL);
+ };
+ /* User-Session-Id */
+ {
+ struct dict_avp_data data = {
+ 830, /* Code */
+ 10415, /* Vendor */
+ "User-Session-Id", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* Variable-Part-Order */
+ {
+ struct dict_avp_data data = {
+ 3908, /* Code */
+ 10415, /* Vendor */
+ "Variable-Part-Order", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Variable-Part-Type */
+ {
+ struct dict_avp_data data = {
+ 3909, /* Code */
+ 10415, /* Vendor */
+ "Variable-Part-Type", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Variable-Part-Value */
+ {
+ struct dict_avp_data data = {
+ 3910, /* Code */
+ 10415, /* Vendor */
+ "Variable-Part-Value", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
+ };
+ /* VLR-Number */
+ {
+ struct dict_avp_data data = {
+ 3420, /* Code */
+ 10415, /* Vendor */
+ "VLR-Number", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Volume-Quota-Threshold */
+ {
+ struct dict_avp_data data = {
+ 869, /* Code */
+ 10415, /* Vendor */
+ "Volume-Quota-Threshold", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_UNSIGNED32 /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
+ };
+ /* Submission-Timestamp */
+ {
+ struct dict_avp_data data = {
+ 9911, /* Code */
+ 10415, /* Vendor */
+ "Submission-Timestamp", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_OCTETSTRING /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
+ };
+ /* Scale-Factor */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2059, /* Code */
+ 10415, /* Vendor */
+ "Scale-Factor", /* 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, &avp);
+ }
+ /* SDP-Media-Component */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 843, /* Code */
+ 10415, /* Vendor */
+ "SDP-Media-Component", /* 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, &avp);
+ }
+ /* UWAN-User-Location-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3918, /* Code */
+ 10415, /* Vendor */
+ "UWAN-User-Location-Info", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Address-Domain */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 898, /* Code */
+ 10415, /* Vendor */
+ "Address-Domain", /* 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, &avp);
+ }
+ /* Location-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3460, /* Code */
+ 10415, /* Vendor */
+ "Location-Info", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* MBMS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 880, /* Code */
+ 10415, /* Vendor */
+ "MBMS-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, &avp);
+ }
+ /* AoC-Service */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2311, /* Code */
+ 10415, /* Vendor */
+ "AoC-Service", /* 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, &avp);
+ }
+ /* ProSe-Direct-Communication-Transmission-Data-Container */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3441, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Direct-Communication-Transmission-Data-Container", /* 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, &avp);
+ }
+ /* APN-Rate-Control-Downlink */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3934, /* Code */
+ 10415, /* Vendor */
+ "APN-Rate-Control-Downlink", /* 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, &avp);
+ }
+ /* PoC-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 879, /* Code */
+ 10415, /* Vendor */
+ "PoC-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, &avp);
+ }
+ /* Supplementary-Service */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2048, /* Code */
+ 10415, /* Vendor */
+ "Supplementary-Service", /* 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, &avp);
+ }
+ /* Transmitter-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3468, /* Code */
+ 10415, /* Vendor */
+ "Transmitter-Info", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Unit-Cost */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2061, /* Code */
+ 10415, /* Vendor */
+ "Unit-Cost", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Time-Stamps */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 833, /* Code */
+ 10415, /* Vendor */
+ "Time-Stamps", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* NNI-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2703, /* Code */
+ 10415, /* Vendor */
+ "NNI-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, &avp);
+ }
+ /* Trigger */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1264, /* Code */
+ 10415, /* Vendor */
+ "Trigger", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Related-Trigger */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3926, /* Code */
+ 10415, /* Vendor */
+ "Related-Trigger", /* 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, &avp);
+ }
+ /* Talk-Burst-Exchange */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1255, /* Code */
+ 10415, /* Vendor */
+ "Talk-Burst-Exchange", /* 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, &avp);
+ }
+ /* Time-Quota-Mechanism */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1270, /* Code */
+ 10415, /* Vendor */
+ "Time-Quota-Mechanism", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Variable-Part */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3907, /* Code */
+ 10415, /* Vendor */
+ "Variable-Part", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Additional-Content-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1207, /* Code */
+ 10415, /* Vendor */
+ "Additional-Content-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, &avp);
+ }
+ /* APN-Rate-Control-Uplink */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3935, /* Code */
+ 10415, /* Vendor */
+ "APN-Rate-Control-Uplink", /* 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, &avp);
+ }
+ /* Basic-Service-Code */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3411, /* Code */
+ 10415, /* Vendor */
+ "Basic-Service-Code", /* 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, &avp);
+ }
+ /* Event-Type */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 823, /* Code */
+ 10415, /* Vendor */
+ "Event-Type", /* 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, &avp);
+ }
+ /* ProSe-Direct-Communication-Reception-Data-Container */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3461, /* Code */
+ 10415, /* Vendor */
+ "ProSe-Direct-Communication-Reception-Data-Container", /* 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, &avp);
+ }
+ /* Originator-Interface */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2009, /* Code */
+ 10415, /* Vendor */
+ "Originator-Interface", /* 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, &avp);
+ }
+ /* Destination-Interface */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2002, /* Code */
+ 10415, /* Vendor */
+ "Destination-Interface", /* 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, &avp);
+ }
+ /* ISUP-Cause */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3416, /* Code */
+ 10415, /* Vendor */
+ "ISUP-Cause", /* 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, &avp);
+ }
+ /* LCS-Requestor-ID */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1239, /* Code */
+ 10415, /* Vendor */
+ "LCS-Requestor-ID", /* 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, &avp);
+ }
+ /* PS-Furnish-Charging-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 865, /* Code */
+ 10415, /* Vendor */
+ "PS-Furnish-Charging-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, &avp);
+ }
+ /* User-CSG-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2319, /* Code */
+ 10415, /* Vendor */
+ "User-CSG-Information", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Called-Identity-Change */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3917, /* Code */
+ 10415, /* Vendor */
+ "Called-Identity-Change", /* 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, &avp);
+ }
+ /* Service-Specific-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1249, /* Code */
+ 10415, /* Vendor */
+ "Service-Specific-Info", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Accumulated-Cost */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2052, /* Code */
+ 10415, /* Vendor */
+ "Accumulated-Cost", /* 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, &avp);
+ }
+ /* SCS-AS-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3940, /* Code */
+ 10415, /* Vendor */
+ "SCS-AS-Address", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Message-Class */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1213, /* Code */
+ 10415, /* Vendor */
+ "Message-Class", /* 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, &avp);
+ }
+ /* Location-Type */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1244, /* Code */
+ 10415, /* Vendor */
+ "Location-Type", /* 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, &avp);
+ }
+ /* Rate-Element */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2058, /* Code */
+ 10415, /* Vendor */
+ "Rate-Element", /* 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, &avp);
+ }
+ /* Participant-Group */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1260, /* Code */
+ 10415, /* Vendor */
+ "Participant-Group", /* 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, &avp);
+ }
+ /* Enhanced-Diagnostics */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3901, /* Code */
+ 10415, /* Vendor */
+ "Enhanced-Diagnostics", /* 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, &avp);
+ }
+ /* Access-Network-Info-Change */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 4401, /* Code */
+ 10415, /* Vendor */
+ "Access-Network-Info-Change", /* 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, &avp);
+ }
+ /* PoC-User-Role */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1252, /* Code */
+ 10415, /* Vendor */
+ "PoC-User-Role", /* 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, &avp);
+ }
+ /* LCS-Client-Name */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1235, /* Code */
+ 10415, /* Vendor */
+ "LCS-Client-Name", /* 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, &avp);
+ }
+ /* Message-Body */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 889, /* Code */
+ 10415, /* Vendor */
+ "Message-Body", /* 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, &avp);
+ }
+ /* Radio-Parameter-Set-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3463, /* Code */
+ 10415, /* Vendor */
+ "Radio-Parameter-Set-Info", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* SM-Device-Trigger-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3405, /* Code */
+ 10415, /* Vendor */
+ "SM-Device-Trigger-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, &avp);
+ }
+ /* TWAN-User-Location-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2714, /* Code */
+ 10415, /* Vendor */
+ "TWAN-User-Location-Info", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* VCS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3410, /* Code */
+ 10415, /* Vendor */
+ "VCS-Information", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Trunk-Group-ID */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 851, /* Code */
+ 10415, /* Vendor */
+ "Trunk-Group-ID", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Incremental-Cost */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2062, /* Code */
+ 10415, /* Vendor */
+ "Incremental-Cost", /* 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, &avp);
+ }
+ /* SDP-TimeStamps */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1273, /* Code */
+ 10415, /* Vendor */
+ "SDP-TimeStamps", /* 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, &avp);
+ }
+ /* Inter-Operator-Identifier */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 838, /* Code */
+ 10415, /* Vendor */
+ "Inter-Operator-Identifier", /* 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, &avp);
+ }
+ /* NIDD-Submission */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3928, /* Code */
+ 10415, /* Vendor */
+ "NIDD-Submission", /* 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, &avp);
+ }
+ /* Application-Server-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 850, /* Code */
+ 10415, /* Vendor */
+ "Application-Server-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, &avp);
+ }
+ /* CPDT-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3927, /* Code */
+ 10415, /* Vendor */
+ "CPDT-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, &avp);
+ }
+ /* Envelope */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1266, /* Code */
+ 10415, /* Vendor */
+ "Envelope", /* 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, &avp);
+ }
+ /* Related-Change-Condition-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3925, /* Code */
+ 10415, /* Vendor */
+ "Related-Change-Condition-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, &avp);
+ }
+ /* LCS-Client-Id */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1232, /* Code */
+ 10415, /* Vendor */
+ "LCS-Client-Id", /* 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, &avp);
+ }
+ /* Early-Media-Description */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1272, /* Code */
+ 10415, /* Vendor */
+ "Early-Media-Description", /* 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, &avp);
+ }
+ /* AoC-Subscription-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2314, /* Code */
+ 10415, /* Vendor */
+ "AoC-Subscription-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, &avp);
+ }
+ /* Current-Tariff */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2056, /* Code */
+ 10415, /* Vendor */
+ "Current-Tariff", /* 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, &avp);
+ }
+ /* APN-Rate-Control */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3933, /* Code */
+ 10415, /* Vendor */
+ "APN-Rate-Control", /* 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, &avp);
+ }
+ /* Access-Transfer-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2709, /* Code */
+ 10415, /* Vendor */
+ "Access-Transfer-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, &avp);
+ }
+ /* Recipient-Received-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2028, /* Code */
+ 10415, /* Vendor */
+ "Recipient-Received-Address", /* 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, &avp);
+ }
+ /* AoC-Cost-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2053, /* Code */
+ 10415, /* Vendor */
+ "AoC-Cost-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, &avp);
+ }
+ /* Originator-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 886, /* Code */
+ 10415, /* Vendor */
+ "Originator-Address", /* 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, &avp);
+ }
+ /* Originator-Received-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2027, /* Code */
+ 10415, /* Vendor */
+ "Originator-Received-Address", /* 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, &avp);
+ }
+ /* Remaining-Balance */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2021, /* Code */
+ 10415, /* Vendor */
+ "Remaining-Balance", /* 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, &avp);
+ }
+ /* AF-Correlation-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1276, /* Code */
+ 10415, /* Vendor */
+ "AF-Correlation-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, &avp);
+ }
+ /* Recipient-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1201, /* Code */
+ 10415, /* Vendor */
+ "Recipient-Address", /* 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, &avp);
+ }
+ /* Next-Tariff */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2057, /* Code */
+ 10415, /* Vendor */
+ "Next-Tariff", /* 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, &avp);
+ }
+ /* Coverage-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3459, /* Code */
+ 10415, /* Vendor */
+ "Coverage-Info", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Announcement-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3904, /* Code */
+ 10415, /* Vendor */
+ "Announcement-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, &avp);
+ }
+ /* MM-Content-Type */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1203, /* Code */
+ 10415, /* Vendor */
+ "MM-Content-Type", /* 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, &avp);
+ }
+ /* MMTel-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2030, /* Code */
+ 10415, /* Vendor */
+ "MMTel-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, &avp);
+ }
+ /* Service-Data-Container */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2040, /* Code */
+ 10415, /* Vendor */
+ "Service-Data-Container", /* 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, &avp);
+ }
+ /* MMS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 877, /* Code */
+ 10415, /* Vendor */
+ "MMS-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, &avp);
+ }
+ /* Recipient-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2026, /* Code */
+ 10415, /* Vendor */
+ "Recipient-Info", /* Name */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
+ AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* Traffic-Data-Volumes */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2046, /* Code */
+ 10415, /* Vendor */
+ "Traffic-Data-Volumes", /* Name */
+ 0, /* Fixed flags */
+ 0, /* Fixed flag values */
+ AVP_TYPE_GROUPED /* base type of data */
+ };
+ CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
+ }
+ /* LCS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 878, /* Code */
+ 10415, /* Vendor */
+ "LCS-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, &avp);
+ }
+ /* Tariff-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2060, /* Code */
+ 10415, /* Vendor */
+ "Tariff-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, &avp);
+ }
+ /* ProSe-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3447, /* Code */
+ 10415, /* Vendor */
+ "ProSe-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, &avp);
+ }
+ /* SMS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2000, /* Code */
+ 10415, /* Vendor */
+ "SMS-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, &avp);
+ }
+ /* Real-Time-Tariff-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2305, /* Code */
+ 10415, /* Vendor */
+ "Real-Time-Tariff-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, &avp);
+ }
+ /* AoC-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 2054, /* Code */
+ 10415, /* Vendor */
+ "AoC-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, &avp);
+ }
+ /* Monitoring-Event-Report-Data */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3920, /* Code */
+ 10415, /* Vendor */
+ "Monitoring-Event-Report-Data", /* 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, &avp);
+ }
+ /* Offline-Charging */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 1278, /* Code */
+ 10415, /* Vendor */
+ "Offline-Charging", /* 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, &avp);
+ }
+ /* IMS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 876, /* Code */
+ 10415, /* Vendor */
+ "IMS-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, &avp);
+ }
+ /* Monitoring-Event-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 3921, /* Code */
+ 10415, /* Vendor */
+ "Monitoring-Event-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, &avp);
+ }
+ /* PS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 874, /* Code */
+ 10415, /* Vendor */
+ "PS-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, &avp);
+ }
+ /* Service-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_data data = {
+ 873, /* Code */
+ 10415, /* Vendor */
+ "Service-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, &avp);
+ }
+
+
+ }
+
+ /* Commands section */
+ {
+
+ }
+
+ return 0;
+}
+
+static int dict_ts32299_avps_load_rules(char * conffile)
+{
+ /* Grouped AVP section */
+ {
+ /* Scale-Factor */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Scale-Factor"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Value-Digits"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Exponent"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* SDP-Media-Component */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "SDP-Media-Component"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SDP-Media-Name"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SDP-Media-Description"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Local-GW-Inserted-Indication"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "IP-Realm-Default-Indication"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Transcoder-Inserted-Indication"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Media-Initiator-Flag"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Media-Initiator-Party"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-Charging-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Access-Network-Charging-Identifier-Value"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SDP-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* UWAN-User-Location-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "UWAN-User-Location-Info"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "UE-Local-IP-Address"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "UDP-Source-Port"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SSID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "BSSID"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Address-Domain */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Address-Domain"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Domain-Name"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-IMSI-MCC-MNC"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Location-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Location-Info"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* MBMS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "MBMS-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "TMGI"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-Service-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-User-Service-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "File-Repair-Supported"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Required-MBMS-Bearer-Capabilities"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-2G-3G-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "RAI"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-Service-Area"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-Session-Identity"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "CN-IP-Multicast-Distribution"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-GW-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-Charged-Party"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MSISDN"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-Data-Transfer-Start"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-Data-Transfer-Stop"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* AoC-Service */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AoC-Service"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "AoC-Service-Obligatory-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "AoC-Service-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* ProSe-Direct-Communication-Transmission-Data-Container */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "ProSe-Direct-Communication-Transmission-Data-Container"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Local-Sequence-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Coverage-Status"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Accounting-Output-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Condition"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Usage-Information-Report-Sequence-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Radio-Resources-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Radio-Frequency"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* APN-Rate-Control-Downlink */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "APN-Rate-Control-Downlink"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Rate-Control-Time-Unit"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Rate-Control-Max-Rate"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Rate-Control-Max-Message-Size"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* PoC-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "PoC-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "PoC-Server-Role"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Supplementary-Service */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Supplementary-Service"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "MMTel-SService-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Service-Mode"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Transmitter-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Transmitter-Info"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Source-IP-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-UE-ID"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Unit-Cost */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Unit-Cost"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Value-Digits"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Exponent"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Time-Stamps */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Time-Stamps"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SIP-Request-Timestamp"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* NNI-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "NNI-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Session-Direction"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "NNI-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Relationship-Mode"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Neighbour-Node-Address"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Trigger */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Trigger"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Trigger-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Related-Trigger */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Related-Trigger"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Trigger-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Talk-Burst-Exchange */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Talk-Burst-Exchange"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "PoC-Change-Time"}, RULE_REQUIRED, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Time-Quota-Mechanism */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Time-Quota-Mechanism"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Time-Quota-Type"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Base-Time-Interval"}, RULE_REQUIRED, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Variable-Part */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Variable-Part"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Variable-Part-Order"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Variable-Part-Type"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Variable-Part-Value"}, RULE_REQUIRED, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Additional-Content-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Additional-Content-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Type-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Additional-Type-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Content-Size"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* APN-Rate-Control-Uplink */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "APN-Rate-Control-Uplink"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Additional-Exception-Reports"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Rate-Control-Time-Unit"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Rate-Control-Max-Rate"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Basic-Service-Code */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Basic-Service-Code"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Bearer-Service"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Teleservice"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Event-Type */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Event-Type"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SIP-Method"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Event"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Expires"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* ProSe-Direct-Communication-Reception-Data-Container */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "ProSe-Direct-Communication-Reception-Data-Container"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Local-Sequence-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Coverage-Status"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Accounting-Input-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Condition"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Visited-PLMN-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Usage-Information-Report-Sequence-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Radio-Resources-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Radio-Frequency"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Originator-Interface */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Originator-Interface"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Interface-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Interface-Text"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Interface-Port"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Interface-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Destination-Interface */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Destination-Interface"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Interface-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Interface-Text"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Interface-Port"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Interface-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* ISUP-Cause */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "ISUP-Cause"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "ISUP-Cause-Location"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* LCS-Requestor-ID */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "LCS-Requestor-ID"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "LCS-Data-Coding-Scheme"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-Requestor-ID-String"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* PS-Furnish-Charging-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "PS-Furnish-Charging-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "3GPP-Charging-Id"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PS-Free-Format-Data"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PS-Append-Free-Format-Data"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* User-CSG-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "User-CSG-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "CSG-Id"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "CSG-Access-Mode"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "CSG-Membership-Indication"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Called-Identity-Change */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Called-Identity-Change"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Called-Identity"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Service-Specific-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Service-Specific-Info"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Service-Specific-Data"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Accumulated-Cost */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Accumulated-Cost"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Value-Digits"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Exponent"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* SCS-AS-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "SCS-AS-Address"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SCS-Realm"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SCS-Address"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Message-Class */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Message-Class"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Class-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Token-Text"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Location-Type */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Location-Type"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Location-Estimate-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Deferred-Location-Event-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Rate-Element */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Rate-Element"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "CC-Unit-Type"}, RULE_REQUIRED, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Participant-Group */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Participant-Group"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Called-Party-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Participant-Access-Priority"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "User-Participating-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Enhanced-Diagnostics */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Enhanced-Diagnostics"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "RAN-NAS-Release-Cause"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Access-Network-Info-Change */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Access-Network-Info-Change"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Access-Network-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Cellular-Network-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* PoC-User-Role */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "PoC-User-Role"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "PoC-User-Role-IDs"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* LCS-Client-Name */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "LCS-Client-Name"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "LCS-Data-Coding-Scheme"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-Name-String"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-Format-Indicator"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Message-Body */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Message-Body"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Content-Type"}, RULE_REQUIRED, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Radio-Parameter-Set-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Radio-Parameter-Set-Info"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Radio-Parameter-Set-Values"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* SM-Device-Trigger-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "SM-Device-Trigger-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "MTC-IWF-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Reference-Number"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* TWAN-User-Location-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "TWAN-User-Location-Info"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SSID"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "BSSID"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* VCS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "VCS-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Bearer-Capability"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Network-Call-Reference-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MSC-Address"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Trunk-Group-ID */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Trunk-Group-ID"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Incoming-Trunk-Group-Id"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Incremental-Cost */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Incremental-Cost"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Value-Digits"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Exponent"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* SDP-TimeStamps */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "SDP-TimeStamps"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SDP-Offer-Timestamp"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SDP-Answer-Timestamp"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Inter-Operator-Identifier */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Inter-Operator-Identifier"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Originating-IOI"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Terminating-IOI"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* NIDD-Submission */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "NIDD-Submission"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Submission-Timestamp"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Event-Timestamp"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Accounting-Input-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Accounting-Output-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Condition"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Application-Server-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Application-Server-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Application-Server"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* CPDT-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "CPDT-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "External-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Envelope */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Envelope"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Envelope-Start-Time"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Envelope-End-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "CC-Total-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "CC-Input-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "CC-Output-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "CC-Service-Specific-Units"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Related-Change-Condition-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Related-Change-Condition-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SGSN-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Condition"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 5535, .avp_name = "3GPP2-BSID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "UWAN-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Status"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "User-CSG-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-RAT-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* LCS-Client-Id */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "LCS-Client-Id"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "LCS-Client-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-Client-External-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-Client-Dialed-By-MS"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-Client-Name"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-APN"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-Requestor-ID"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Early-Media-Description */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Early-Media-Description"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SDP-TimeStamps"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SDP-Media-Component"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SDP-Session-Description"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* AoC-Subscription-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AoC-Subscription-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "AoC-Service"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "AoC-Format"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Preferred-AoC-Currency"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Current-Tariff */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Current-Tariff"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Currency-Code"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Scale-Factor"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Rate-Element"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* APN-Rate-Control */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "APN-Rate-Control"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "APN-Rate-Control-Uplink"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "APN-Rate-Control-Downlink"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Access-Transfer-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Access-Transfer-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Access-Transfer-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Access-Network-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Cellular-Network-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Inter-UE-Transfer"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "User-Equipment-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Instance-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Related-IMS-Charging-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Related-IMS-Charging-Identifier-Node"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Recipient-Received-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Recipient-Received-Address"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Address-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Address-Data"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Address-Domain"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* AoC-Cost-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AoC-Cost-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Accumulated-Cost"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Incremental-Cost"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Currency-Code"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Originator-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Originator-Address"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Address-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Address-Data"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Address-Domain"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Originator-Received-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Originator-Received-Address"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Address-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Address-Data"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Address-Domain"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Remaining-Balance */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Remaining-Balance"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Unit-Value"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Currency-Code"}, RULE_REQUIRED, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* AF-Correlation-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AF-Correlation-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "AF-Charging-Identifier"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Flows"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Recipient-Address */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Recipient-Address"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Address-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Address-Data"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Address-Domain"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Addressee-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Next-Tariff */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Next-Tariff"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Currency-Code"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Scale-Factor"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Rate-Element"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Coverage-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Coverage-Info"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Coverage-Status"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Location-Info"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Announcement-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Announcement-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Announcement-Identifier"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Variable-Part"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Quota-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Announcement-Order"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Play-Alternative"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Privacy-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Language"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* MM-Content-Type */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "MM-Content-Type"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Type-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Additional-Type-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Content-Size"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Additional-Content-Information"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* MMTel-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "MMTel-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Supplementary-Service"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Service-Data-Container */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Service-Data-Container"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "AF-Correlation-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Accounting-Input-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Accounting-Output-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Local-Sequence-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Rating-Group"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Service-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Service-Specific-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ADC-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SGSN-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-First-Usage"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-Last-Usage"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-Usage"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Condition"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 5535, .avp_name = "3GPP2-BSID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "UWAN-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Sponsor-Identity"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Application-Service-Provider-Identity"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Status"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "User-CSG-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-RAT-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Related-Change-Condition-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Serving-PLMN-Rate-Control"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "APN-Rate-Control"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-PS-Data-Off-Status"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* MMS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "MMS-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Originator-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Recipient-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Submission-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MM-Content-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Priority"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Message-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Message-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Message-Size"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Message-Class"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Delivery-Report-Requested"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Read-Reply-Report-Requested"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MMBox-Storage-Requested"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Applic-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Reply-Applic-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Aux-Applic-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Content-Class"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "DRM-Content"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Adaptations"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Recipient-Info */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Recipient-Info"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Destination-Interface"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Recipient-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Recipient-Received-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Recipient-SCCP-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Protocol-ID"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Traffic-Data-Volumes */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Traffic-Data-Volumes"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Accounting-Input-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Accounting-Output-Octets"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Condition"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "UWAN-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-Charging-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Status"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "User-CSG-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-RAT-Type"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* LCS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "LCS-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "LCS-Client-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Location-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Location-Estimate"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Positioning-Data"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-IMSI"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MSISDN"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Tariff-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Tariff-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Current-Tariff"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Tariff-Time-Change"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Next-Tariff"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* ProSe-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "ProSe-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Announcing-UE-HPLMN-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Announcing-UE-VPLMN-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-UE-HPLMN-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-UE-VPLMN-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Role-Of-ProSe-Function"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-App-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-3rd-Party-Application-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Application-Specific-Data"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Event-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Direct-Discovery-Model"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Function-IP-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Function-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Validity-Timer"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Role-Of-UE"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Request-Timestamp"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PC3-Control-Protocol-Cause"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-UE-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Requestor-PLMN-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Origin-App-Layer-User-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "WLAN-Link-Layer-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Requesting-EPUID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Target-App-Layer-User-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Requested-PLMN-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-Window"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Range-Class"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Proximity-Alert-Indication"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Proximity-Alert-Timestamp"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Proximity-Cancellation-Timestamp"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Reason-For-Cancellation"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PC3-EPC-Control-Protocol-Cause"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-UE-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Source-IP-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Layer-2-Group-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Group-IP-Multicast-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Coverage-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Radio-Parameter-Set-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Transmitter-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-First-Transmission"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-First-Reception"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Direct-Communication-Transmission-Data-Container"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Direct-Communication-Reception-Data-Container"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* SMS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "SMS-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "SMS-Node"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Client-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Originator-SCCP-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SMSC-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Data-Coding-Scheme"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Discharge-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Message-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Originator-Interface"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Protocol-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Reply-Path-Requested"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Status"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-User-Data-Header"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Number-Of-Messages-Sent"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Sequence-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Recipient-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Originator-Received-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Service-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SMS-Result"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Device-Trigger-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SM-Device-Trigger-Information"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Real-Time-Tariff-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Real-Time-Tariff-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Tariff-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Tariff-XML"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* AoC-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "AoC-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "AoC-Cost-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Tariff-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "AoC-Subscription-Information"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Monitoring-Event-Report-Data */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Report-Data"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Event-Timestamp"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Report-Number"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Charged-Party"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Subscription-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Reachability-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "EPS-Location-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Communication-Failure-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Number-Of-UE-Per-Location-Report"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Offline-Charging */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Offline-Charging"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Quota-Consumption-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-Quota-Mechanism"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Envelope-Reporting"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Multiple-Services-Credit-Control"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* IMS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "IMS-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Event-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Role-Of-Node"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Node-Functionality"}, RULE_REQUIRED, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "User-Session-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Outgoing-Session-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Session-Priority"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Calling-Party-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Called-Party-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Called-Asserted-Identity"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Called-Identity-Change"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Number-Portability-Routing-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Carrier-Select-Routing-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Alternate-Charged-Party-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Requested-Party-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Associated-URI"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Time-Stamps"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Application-Server-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Inter-Operator-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Transit-IOI-List"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "IMS-Charging-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SDP-Session-Description"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SDP-Media-Component"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Served-Party-IP-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Server-Capabilities"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Trunk-Group-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Bearer-Service"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Service-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Service-Specific-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Message-Body"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Cause-Code"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Reason-Header"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Access-Network-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Cellular-Network-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Early-Media-Description"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "IMS-Communication-Service-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "IMS-Application-Reference-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Online-Charging-Flag"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Real-Time-Tariff-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Account-Expiration"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Initial-IMS-Charging-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "NNI-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "From-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "IMS-Emergency-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "IMS-Visited-Network-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Access-Network-Info-Change"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Access-Transfer-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Related-IMS-Charging-Identifier"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Related-IMS-Charging-Identifier-Node"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Route-Header-Received"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Route-Header-Transmitted"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Instance-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "TAD-Identifier"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Monitoring-Event-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Functionality"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Event-Timestamp"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Configuration-Activity"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SCEF-Reference-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SCEF-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Maximum-Number-of-Reports"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-Duration"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Charged-Party"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Maximum-Detection-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "UE-Reachability-Configuration"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MONTE-Location-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Accuracy"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Number-Of-UE-Per-Location-Configuration"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Monitoring-Event-Report"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* PS-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "PS-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 10415, .avp_name = "3GPP-Charging-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PDN-Connection-Charging-ID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Node-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-PDP-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PDP-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PDP-Address-Prefix-Length"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Dynamic-Address-Flag"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Dynamic-Address-Flag-Extension"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SGSN-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "GGSN-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "TDF-IP-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SGW-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "EPDG-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "TWAG-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "CG-Address"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Serving-Node-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SGW-Change"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-IMSI-MCC-MNC"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "IMSI-Unauthenticated-Flag"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-GGSN-MCC-MNC"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-NSAPI"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "Called-Station-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-Selection-Mode"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-Charging-Characteristics"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Charging-Characteristics-Selection-Mode"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-SGSN-MCC-MNC"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-MS-TimeZone"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ADC-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "User-Location-Info-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "User-CSG-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 5535, .avp_name = "3GPP2-BSID"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "TWAN-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "UWAN-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-RAT-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PS-Furnish-Charging-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PDP-Context-Type"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Offline-Charging"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Traffic-Data-Volumes"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Service-Data-Container"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 0, .avp_name = "User-Equipment-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Terminal-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Start-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Stop-Time"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Change-Condition"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Diagnostics"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Low-Priority-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "NBIFOM-Mode"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "NBIFOM-Support"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MME-Number-for-MT-SMS"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MME-Name"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MME-Realm"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 13019, .avp_name = "Logical-Access-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 13019, .avp_name = "Physical-Access-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Fixed-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "CN-Operator-Selection-Entity"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Enhanced-Diagnostics"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SGi-PtP-Tunnelling-Method"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "CP-CIoT-EPS-Optimisation-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "UNI-PDU-CP-Only-Flag"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Serving-PLMN-Rate-Control"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "APN-Rate-Control"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "Charging-Per-IP-CAN-Session-Indicator"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "RRC-Cause-Counter"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "3GPP-PS-Data-Off-Status"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SCS-AS-Address"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+ /* Service-Information */
+ {
+ /* Grouped */
+ struct dict_object * avp;
+ struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Service-Information"};
+ CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
+ struct local_rules_definition rules[] =
+ {
+ { { .avp_vendor = 0, .avp_name = "Subscription-Id"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "AoC-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "IMS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MMS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "LCS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "PoC-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MBMS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "SMS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "VCS-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "MMTel-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "ProSe-Information"}, RULE_OPTIONAL, -1, -1 },
+ { { .avp_vendor = 10415, .avp_name = "CPDT-Information"}, RULE_OPTIONAL, -1, -1 }
+ };
+ PARSE_loc_rules( rules, avp );
+ }
+
+ }
+
+ /* Commands section */
+ {
+
+ }
+
+ LOG_D( "Extension 'Dictionary definitions for ts32299_avps (e30)' initialized");
+ return 0;
+}
+
+int dict_entry(char * conffile)
+{
+ dict_ts32299_avps_load_defs(conffile);
+ return dict_ts32299_avps_load_rules(conffile);
+}
+
+const char* dict_ts32299_avps_proto_ver(char * conffile) {
+ return ts32299_avps_proto_ver;
+}
+
+const double dict_ts32299_avps_gen_ts(char * conffile) {
+ return ts32299_avps_gen_date;
+}
+
+EXTENSION_ENTRY2("dict_ts32299_avps", dict_ts32299_avps_load_defs, dict_ts32299_avps_load_rules, "dict_ts29272_avps", "dict_ts29273_avps", "dict_ts29212_avps", "dict_ts29336_avps", "dict_ts29128_avps", "dict_ts29214_avps", "dict_ts29345_avps", "dict_ts29337_avps", "dict_ts29344_avps", "dict_ts29368_avps", "dict_ts29217_avps", "dict_ts29229_avps", "dict_ts29338_avps", "dict_ts29468_avps", "dict_ts29329_avps", "dict_ts29061_avps", "dict_rfc5778_avps", "dict_ts29173_avps", "dict_rfc4006bis_avps", "dict_ts29343_avps", "dict_rfc7155_avps", "dict_rfc5447_avps", "dict_rfc7683_avps", "dict_rfc4590_avps", "dict_draftload_avps", "dict_rfc4004_avps", "dict_rfc5777_avps", "dict_etsi283034_avps", "dict_3gpp2_avps", "dict_rfc7944_avps");
+
+
+
diff --git a/extensions/dict_ts32299_avps/ts32299_avps.did b/extensions/dict_ts32299_avps/ts32299_avps.did
new file mode 100644
index 0000000..9bb29ee
--- /dev/null
+++ b/extensions/dict_ts32299_avps/ts32299_avps.did
@@ -0,0 +1,37 @@
+dict_ts29343_avps
+dict_ts29128_avps
+dict_ts29345_avps
+dict_ts29337_avps
+dict_ts29217_avps
+dict_ts29344_avps
+dict_ts29173_avps
+dict_ts29338_avps
+dict_ts29468_avps
+dict_3gpp2_avps
+dict_ts29215_avps
+dict_ts29154_avps
+dict_ts29214_avps
+dict_rfc6942_avps
+dict_rfc6734_avps
+dict_rfc5580_avps
+dict_rfc4072_avps
+dict_ts29273_avps
+dict_rfc4006bis_avps
+dict_ts29212_avps
+dict_ts29061_avps
+dict_ts29272_avps
+dict_rfc5447_avps
+dict_rfc5778_avps
+dict_rfc5777_avps
+dict_ts29336_avps
+dict_etsi283034_avps
+dict_rfc4590_avps
+dict_rfc4004_avps
+dict_rfc7155_avps
+dict_ts29229_avps
+dict_rfc7683_avps
+dict_draftload_avps
+dict_rfc7944_avps
+dict_ts29329_avps
+dict_ts29368_avps
+dict_ts32299_avps