blob: f0012beaa4774b8a343ac372e507038a6244663f [file] [log] [blame]
/*
* 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 ts29212_avps (e30).
*/
#include <freeDiameter/extension.h>
#define PROTO_VER "e30"
#define GEN_DATE 1506697181.97
const char *ts29212_avps_proto_ver = PROTO_VER;
const double ts29212_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_ts29212_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 = {
2847, /* Code */
10415, /* Vendor */
"3GPP-PS-Data-Off-Status", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "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-Availability-Change-Reason */
{
struct dict_avp_data data = {
2833, /* Code */
10415, /* Vendor */
"Access-Availability-Change-Reason", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* AN-GW-Address */
{
struct dict_avp_data data = {
1050, /* Code */
10415, /* Vendor */
"AN-GW-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
};
/* AN-GW-Status */
{
struct dict_avp_data data = {
2811, /* Code */
10415, /* Vendor */
"AN-GW-Status", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(AN-GW-Status)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "AN_GW_FAILED", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* APN-Aggregate-Max-Bitrate-DL */
{
struct dict_avp_data data = {
1040, /* Code */
10415, /* Vendor */
"APN-Aggregate-Max-Bitrate-DL", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* APN-Aggregate-Max-Bitrate-UL */
{
struct dict_avp_data data = {
1041, /* Code */
10415, /* Vendor */
"APN-Aggregate-Max-Bitrate-UL", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Bearer-Control-Mode */
{
struct dict_avp_data data = {
1023, /* Code */
10415, /* Vendor */
"Bearer-Control-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(Bearer-Control-Mode)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "UE_ONLY", { .i32=0 }};
struct dict_enumval_data t_2 = { "RESERVED", { .i32=1 }};
struct dict_enumval_data t_3 = { "UE_NW", { .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);
};
/* Bearer-Identifier */
{
struct dict_avp_data data = {
1020, /* Code */
10415, /* Vendor */
"Bearer-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, NULL, NULL);
};
/* Bearer-Operation */
{
struct dict_avp_data data = {
1021, /* Code */
10415, /* Vendor */
"Bearer-Operation", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Bearer-Operation)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "TERMINATION", { .i32=0 }};
struct dict_enumval_data t_2 = { "ESTABLISHMENT", { .i32=1 }};
struct dict_enumval_data t_3 = { "MODIFICATION", { .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);
};
/* Bearer-Usage */
{
struct dict_avp_data data = {
1000, /* Code */
10415, /* Vendor */
"Bearer-Usage", /* 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(Bearer-Usage)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "GENERAL", { .i32=0 }};
struct dict_enumval_data t_2 = { "IMS_SIGNALLING", { .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);
};
/* Charging-Correlation-Indicator */
{
struct dict_avp_data data = {
1073, /* Code */
10415, /* Vendor */
"Charging-Correlation-Indicator", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Charging-Correlation-Indicator)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "CHARGING_IDENTIFIER_REQUIRED", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* Charging-Rule-Base-Name */
{
struct dict_avp_data data = {
1004, /* Code */
10415, /* Vendor */
"Charging-Rule-Base-Name", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Charging-Rule-Name */
{
struct dict_avp_data data = {
1005, /* Code */
10415, /* Vendor */
"Charging-Rule-Name", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* CoA-IP-Address */
{
struct dict_avp_data data = {
1035, /* Code */
10415, /* Vendor */
"CoA-IP-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
};
/* Credit-Management-Status */
{
struct dict_avp_data data = {
1082, /* Code */
10415, /* Vendor */
"Credit-Management-Status", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* CSG-Information-Reporting */
{
struct dict_avp_data data = {
1071, /* Code */
10415, /* Vendor */
"CSG-Information-Reporting", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CSG-Information-Reporting)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "CHANGE_CSG_CELL", { .i32=0 }};
struct dict_enumval_data t_2 = { "CHANGE_CSG_SUBSCRIBED_HYBRID_CELL", { .i32=1 }};
struct dict_enumval_data t_3 = { "CHANGE_CSG_UNSUBSCRIBED_HYBRID_CELL", { .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);
};
/* Default-Access */
{
struct dict_avp_data data = {
2829, /* Code */
10415, /* Vendor */
"Default-Access", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Default-Access)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "GPP_GPRS", { .i32=0 }};
struct dict_enumval_data t_2 = { "DOCSIS", { .i32=1 }};
struct dict_enumval_data t_3 = { "xDSL", { .i32=2 }};
struct dict_enumval_data t_4 = { "WiMAX", { .i32=3 }};
struct dict_enumval_data t_5 = { "GPP2", { .i32=4 }};
struct dict_enumval_data t_6 = { "GPP_EPS", { .i32=5 }};
struct dict_enumval_data t_7 = { "Non_3GPP_EPS", { .i32=6 }};
struct dict_enumval_data t_8 = { "FBA", { .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);
};
/* Default-Bearer-Indication */
{
struct dict_avp_data data = {
2844, /* Code */
10415, /* Vendor */
"Default-Bearer-Indication", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Default-Bearer-Indication)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "BIND_TO_DEF_BEARER", { .i32=0 }};
struct dict_enumval_data t_2 = { "BIND_TO_APPLICABLE_BEARER", { .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);
};
/* Default-QoS-Name */
{
struct dict_avp_data data = {
2817, /* Code */
10415, /* Vendor */
"Default-QoS-Name", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Event-Trigger */
{
struct dict_avp_data data = {
1006, /* Code */
10415, /* Vendor */
"Event-Trigger", /* 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(Event-Trigger)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "SGSN_CHANGE", { .i32=0 }};
struct dict_enumval_data t_2 = { "QOS_CHANGE", { .i32=1 }};
struct dict_enumval_data t_3 = { "QOS_CHANGE_EXCEEDING_AUTHORIZATION", { .i32=11 }};
struct dict_enumval_data t_4 = { "RAI_CHANGE", { .i32=12 }};
struct dict_enumval_data t_5 = { "USER_LOCATION_CHANGE", { .i32=13 }};
struct dict_enumval_data t_6 = { "NO_EVENT_TRIGGERS", { .i32=14 }};
struct dict_enumval_data t_7 = { "OUT_OF_CREDIT", { .i32=15 }};
struct dict_enumval_data t_8 = { "REALLOCATION_OF_CREDIT", { .i32=16 }};
struct dict_enumval_data t_9 = { "REVALIDATION_TIMEOUT", { .i32=17 }};
struct dict_enumval_data t_10 = { "UE_IP_ADDRESS_ALLOCATE", { .i32=18 }};
struct dict_enumval_data t_11 = { "UE_IP_ADDRESS_RELEASE", { .i32=19 }};
struct dict_enumval_data t_12 = { "RAT_CHANGE", { .i32=2 }};
struct dict_enumval_data t_13 = { "DEFAULT_EPS_BEARER_QOS_CHANGE", { .i32=20 }};
struct dict_enumval_data t_14 = { "AN_GW_CHANGE", { .i32=21 }};
struct dict_enumval_data t_15 = { "SUCCESSFUL_RESOURCE_ALLOCATION", { .i32=22 }};
struct dict_enumval_data t_16 = { "RESOURCE_MODIFICATION_REQUEST", { .i32=23 }};
struct dict_enumval_data t_17 = { "PGW_TRACE_CONTROL", { .i32=24 }};
struct dict_enumval_data t_18 = { "UE_TIME_ZONE_CHANGE", { .i32=25 }};
struct dict_enumval_data t_19 = { "TAI_CHANGE", { .i32=26 }};
struct dict_enumval_data t_20 = { "ECGI_CHANGE", { .i32=27 }};
struct dict_enumval_data t_21 = { "CHARGING_CORRELATION_EXCHANGE", { .i32=28 }};
struct dict_enumval_data t_22 = { "APN_AMBR_MODIFICATION_FAILURE", { .i32=29 }};
struct dict_enumval_data t_23 = { "TFT_CHANGE", { .i32=3 }};
struct dict_enumval_data t_24 = { "USER_CSG_INFORMATION_CHANGE", { .i32=30 }};
struct dict_enumval_data t_25 = { "USAGE_REPORT", { .i32=33 }};
struct dict_enumval_data t_26 = { "DEFAULT_EPS_BEARER_QOS_MODIFICATION_FAILURE", { .i32=34 }};
struct dict_enumval_data t_27 = { "USER_CSG_HYBRID_SUBSCRIBED_INFORMATION_CHANGE", { .i32=35 }};
struct dict_enumval_data t_28 = { "HYBRID_UNSUBSCRIBED_INFORMATION_CHANGE", { .i32=36 }};
struct dict_enumval_data t_29 = { "ROUTING_RULE_CHANGE", { .i32=37 }};
struct dict_enumval_data t_30 = { "APPLICATION_START", { .i32=39 }};
struct dict_enumval_data t_31 = { "PLMN_CHANGE", { .i32=4 }};
struct dict_enumval_data t_32 = { "APPLICATION_STOP", { .i32=40 }};
struct dict_enumval_data t_33 = { "CS_TO_PS_HANDOVER", { .i32=42 }};
struct dict_enumval_data t_34 = { "UE_LOCAL_IP_ADDRESS_CHANGE", { .i32=43 }};
struct dict_enumval_data t_35 = { "NB_LOCAL_IP_ADDRESS_CHANGE", { .i32=44 }};
struct dict_enumval_data t_36 = { "ACCESS_NETWORK_INFO_REPORT", { .i32=45 }};
struct dict_enumval_data t_37 = { "CREDIT_MANAGEMENT_SESSION_FAILURE", { .i32=46 }};
struct dict_enumval_data t_38 = { "DEFAULT_QOS_CHANGE", { .i32=47 }};
struct dict_enumval_data t_39 = { "CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA_REPORT", { .i32=48 }};
struct dict_enumval_data t_40 = { "ADDITION_OF_ACCESS", { .i32=49 }};
struct dict_enumval_data t_41 = { "LOSS_OF_BEARER", { .i32=5 }};
struct dict_enumval_data t_42 = { "REMOVAL_OF_ACCESS", { .i32=50 }};
struct dict_enumval_data t_43 = { "UNAVAILABLITY_OF_ACCESS", { .i32=51 }};
struct dict_enumval_data t_44 = { "AVAILABLITY_OF_ACCESS", { .i32=52 }};
struct dict_enumval_data t_45 = { "RESOURCE_RELEASE", { .i32=53 }};
struct dict_enumval_data t_46 = { "ENODEB_CHANGE", { .i32=54 }};
struct dict_enumval_data t_47 = { "GPP_PS_DATA_OFF_CHANGE", { .i32=55 }};
struct dict_enumval_data t_48 = { "RECOVERY_OF_BEARER", { .i32=6 }};
struct dict_enumval_data t_49 = { "IP_CAN_CHANGE", { .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_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_ENUMVAL, &t_41, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_42, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_43, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_44, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_45, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_46, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_47, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_48, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_49, type, NULL);
CHECK_dict_new( DICT_AVP, &data, type, NULL);
};
/* Execution-Time */
{
struct dict_avp_data data = {
2839, /* Code */
10415, /* Vendor */
"Execution-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
};
/* Flow-Direction */
{
struct dict_avp_data data = {
1080, /* Code */
10415, /* Vendor */
"Flow-Direction", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Flow-Direction)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "UNSPECIFIED", { .i32=0 }};
struct dict_enumval_data t_2 = { "DOWNLINK", { .i32=1 }};
struct dict_enumval_data t_3 = { "UPLINK", { .i32=2 }};
struct dict_enumval_data t_4 = { "BIDIRECTIONAL", { .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);
};
/* Flow-Label */
{
struct dict_avp_data data = {
1057, /* Code */
10415, /* Vendor */
"Flow-Label", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Guaranteed-Bitrate-DL */
{
struct dict_avp_data data = {
1025, /* Code */
10415, /* Vendor */
"Guaranteed-Bitrate-DL", /* 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);
};
/* Guaranteed-Bitrate-UL */
{
struct dict_avp_data data = {
1026, /* Code */
10415, /* Vendor */
"Guaranteed-Bitrate-UL", /* 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);
};
/* HeNB-Local-IP-Address */
{
struct dict_avp_data data = {
2804, /* Code */
10415, /* Vendor */
"HeNB-Local-IP-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
};
/* IP-CAN-Session-Charging-Scope */
{
struct dict_avp_data data = {
2827, /* Code */
10415, /* Vendor */
"IP-CAN-Session-Charging-Scope", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IP-CAN-Session-Charging-Scope)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "IP_CAN_SESSION_SCOPE", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* IP-CAN-Type */
{
struct dict_avp_data data = {
1027, /* Code */
10415, /* Vendor */
"IP-CAN-Type", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IP-CAN-Type)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "GPP_GPRS", { .i32=0 }};
struct dict_enumval_data t_2 = { "DOCSIS", { .i32=1 }};
struct dict_enumval_data t_3 = { "xDSL", { .i32=2 }};
struct dict_enumval_data t_4 = { "WiMAX", { .i32=3 }};
struct dict_enumval_data t_5 = { "GPP2", { .i32=4 }};
struct dict_enumval_data t_6 = { "GPP_EPS", { .i32=5 }};
struct dict_enumval_data t_7 = { "Non_3GPP_EPS", { .i32=6 }};
struct dict_enumval_data t_8 = { "FBA", { .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);
};
/* Metering-Method */
{
struct dict_avp_data data = {
1007, /* Code */
10415, /* Vendor */
"Metering-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(Metering-Method)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "DURATION", { .i32=0 }};
struct dict_enumval_data t_2 = { "VOLUME", { .i32=1 }};
struct dict_enumval_data t_3 = { "DURATION_VOLUME", { .i32=2 }};
struct dict_enumval_data t_4 = { "EVENT", { .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);
};
/* Monitoring-Flags */
{
struct dict_avp_data data = {
2828, /* Code */
10415, /* Vendor */
"Monitoring-Flags", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Monitoring-Key */
{
struct dict_avp_data data = {
1066, /* Code */
10415, /* Vendor */
"Monitoring-Key", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Mute-Notification */
{
struct dict_avp_data data = {
2809, /* Code */
10415, /* Vendor */
"Mute-Notification", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Mute-Notification)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "MUTE_REQUIRED", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* Monitoring-Time */
{
struct dict_avp_data data = {
2810, /* Code */
10415, /* Vendor */
"Monitoring-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
};
/* NBIFOM-Mode */
{
struct dict_avp_data data = {
2830, /* Code */
10415, /* Vendor */
"NBIFOM-Mode", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(NBIFOM-Mode)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "UE_INITIATED", { .i32=0 }};
struct dict_enumval_data t_2 = { "NETWORK_INITIATED", { .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);
};
/* NBIFOM-Support */
{
struct dict_avp_data data = {
2831, /* Code */
10415, /* Vendor */
"NBIFOM-Support", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(NBIFOM-Support)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "NBIFOM_NOT_SUPPORTED", { .i32=0 }};
struct dict_enumval_data t_2 = { "NBIFOM_SUPPORTED", { .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);
};
/* NetLoc-Access-Support */
{
struct dict_avp_data data = {
2824, /* Code */
10415, /* Vendor */
"NetLoc-Access-Support", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Network-Request-Support */
{
struct dict_avp_data data = {
1024, /* Code */
10415, /* Vendor */
"Network-Request-Support", /* 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(Network-Request-Support)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "NETWORK_REQUEST_NOT_SUPPORTED", { .i32=0 }};
struct dict_enumval_data t_2 = { "NETWORK_REQUEST_SUPPORTED", { .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);
};
/* Offline */
{
struct dict_avp_data data = {
1008, /* Code */
10415, /* Vendor */
"Offline", /* 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(Offline)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "DISABLE_OFFLINE", { .i32=0 }};
struct dict_enumval_data t_2 = { "ENABLE_OFFLINE", { .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);
};
/* Online */
{
struct dict_avp_data data = {
1009, /* Code */
10415, /* Vendor */
"Online", /* 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)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "DISABLE_ONLINE", { .i32=0 }};
struct dict_enumval_data t_2 = { "ENABLE_ONLINE", { .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);
};
/* Packet-Filter-Content */
{
struct dict_avp_data data = {
1059, /* Code */
10415, /* Vendor */
"Packet-Filter-Content", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, IPFilterRule_type, NULL);
};
/* Packet-Filter-Identifier */
{
struct dict_avp_data data = {
1060, /* Code */
10415, /* Vendor */
"Packet-Filter-Identifier", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Packet-Filter-Operation */
{
struct dict_avp_data data = {
1062, /* Code */
10415, /* Vendor */
"Packet-Filter-Operation", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Packet-Filter-Operation)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "DELETION", { .i32=0 }};
struct dict_enumval_data t_2 = { "ADDITION", { .i32=1 }};
struct dict_enumval_data t_3 = { "MODIFICATION", { .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);
};
/* Packet-Filter-Usage */
{
struct dict_avp_data data = {
1072, /* Code */
10415, /* Vendor */
"Packet-Filter-Usage", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Packet-Filter-Usage)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "SEND_TO_UE", { .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_AVP, &data, type, NULL);
};
/* PCC-Rule-Status */
{
struct dict_avp_data data = {
1019, /* Code */
10415, /* Vendor */
"PCC-Rule-Status", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PCC-Rule-Status)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "ACTIVE", { .i32=0 }};
struct dict_enumval_data t_2 = { "INACTIVE", { .i32=1 }};
struct dict_enumval_data t_3 = { "TEMPORARILY_INACTIVE", { .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);
};
/* PDN-Connection-ID */
{
struct dict_avp_data data = {
1065, /* Code */
10415, /* Vendor */
"PDN-Connection-ID", /* Name */
AVP_FLAG_VENDOR, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Precedence */
{
struct dict_avp_data data = {
1010, /* Code */
10415, /* Vendor */
"Precedence", /* 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);
};
/* Pre-emption-Capability */
{
struct dict_avp_data data = {
1047, /* Code */
10415, /* Vendor */
"Pre-emption-Capability", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Pre-emption-Capability)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "PRE_EMPTION_CAPABILITY_ENABLED", { .i32=0 }};
struct dict_enumval_data t_2 = { "PRE_EMPTION_CAPABILITY_DISABLED", { .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);
};
/* Pre-emption-Vulnerability */
{
struct dict_avp_data data = {
1048, /* Code */
10415, /* Vendor */
"Pre-emption-Vulnerability", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Pre-emption-Vulnerability)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "PRE_EMPTION_VULNERABILITY_ENABLED", { .i32=0 }};
struct dict_enumval_data t_2 = { "PRE_EMPTION_VULNERABILITY_DISABLED", { .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);
};
/* Presence-Reporting-Area-Elements-List */
{
struct dict_avp_data data = {
2820, /* Code */
10415, /* Vendor */
"Presence-Reporting-Area-Elements-List", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Presence-Reporting-Area-Identifier */
{
struct dict_avp_data data = {
2821, /* Code */
10415, /* Vendor */
"Presence-Reporting-Area-Identifier", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Presence-Reporting-Area-Status */
{
struct dict_avp_data data = {
2823, /* Code */
10415, /* Vendor */
"Presence-Reporting-Area-Status", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Priority-Level */
{
struct dict_avp_data data = {
1046, /* Code */
10415, /* Vendor */
"Priority-Level", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* PS-to-CS-Session-Continuity */
{
struct dict_avp_data data = {
1099, /* Code */
10415, /* Vendor */
"PS-to-CS-Session-Continuity", /* Name */
AVP_FLAG_VENDOR, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PS-to-CS-Session-Continuity)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "VIDEO_PS2CS_CONT_CANDIDATE", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* QoS-Class-Identifier */
{
struct dict_avp_data data = {
1028, /* Code */
10415, /* Vendor */
"QoS-Class-Identifier", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(QoS-Class-Identifier)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "QCI_1", { .i32=1 }};
struct dict_enumval_data t_2 = { "QCI_2", { .i32=2 }};
struct dict_enumval_data t_3 = { "QCI_3", { .i32=3 }};
struct dict_enumval_data t_4 = { "QCI_4", { .i32=4 }};
struct dict_enumval_data t_5 = { "QCI_5", { .i32=5 }};
struct dict_enumval_data t_6 = { "QCI_6", { .i32=6 }};
struct dict_enumval_data t_7 = { "QCI_65", { .i32=65 }};
struct dict_enumval_data t_8 = { "QCI_66", { .i32=66 }};
struct dict_enumval_data t_9 = { "QCI_69", { .i32=69 }};
struct dict_enumval_data t_10 = { "QCI_7", { .i32=7 }};
struct dict_enumval_data t_11 = { "QCI_70", { .i32=70 }};
struct dict_enumval_data t_12 = { "QCI_75", { .i32=75 }};
struct dict_enumval_data t_13 = { "QCI_79", { .i32=79 }};
struct dict_enumval_data t_14 = { "QCI_8", { .i32=8 }};
struct dict_enumval_data t_15 = { "QCI_9", { .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);
};
/* QoS-Negotiation */
{
struct dict_avp_data data = {
1029, /* Code */
10415, /* Vendor */
"QoS-Negotiation", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(QoS-Negotiation)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "NO_QoS_NEGOTIATION", { .i32=0 }};
struct dict_enumval_data t_2 = { "QoS_NEGOTIATION_SUPPORTED", { .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);
};
/* QoS-Upgrade */
{
struct dict_avp_data data = {
1030, /* Code */
10415, /* Vendor */
"QoS-Upgrade", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(QoS-Upgrade)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "QoS_UPGRADE_NOT_SUPPORTED", { .i32=0 }};
struct dict_enumval_data t_2 = { "QoS_UPGRADE_SUPPORTED", { .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);
};
/* RAN-NAS-Release-Cause */
{
struct dict_avp_data data = {
2819, /* Code */
10415, /* Vendor */
"RAN-NAS-Release-Cause", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* RAN-Rule-Support */
{
struct dict_avp_data data = {
2832, /* Code */
10415, /* Vendor */
"RAN-Rule-Support", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* RAT-Type */
{
struct dict_avp_data data = {
1032, /* Code */
10415, /* Vendor */
"RAT-Type", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(RAT-Type)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "WLAN", { .i32=0 }};
struct dict_enumval_data t_2 = { "VIRTUAL", { .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);
};
/* Redirect-Support */
{
struct dict_avp_data data = {
1086, /* Code */
10415, /* Vendor */
"Redirect-Support", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Redirect-Support)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "REDIRECTION_DISABLED", { .i32=0 }};
struct dict_enumval_data t_2 = { "REDIRECTION_ENABLED", { .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);
};
/* Removal-Of-Access */
{
struct dict_avp_data data = {
2842, /* Code */
10415, /* Vendor */
"Removal-Of-Access", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Removal-Of-Access)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "REMOVAL_OF_ACCESS", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* Reporting-Level */
{
struct dict_avp_data data = {
1011, /* Code */
10415, /* Vendor */
"Reporting-Level", /* 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-Level)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "SERVICE_IDENTIFIER_LEVEL", { .i32=0 }};
struct dict_enumval_data t_2 = { "RATING_GROUP_LEVEL", { .i32=1 }};
struct dict_enumval_data t_3 = { "SPONSORED_CONNECTIVITY_LEVEL", { .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);
};
/* Resource-Allocation-Notification */
{
struct dict_avp_data data = {
1063, /* Code */
10415, /* Vendor */
"Resource-Allocation-Notification", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Resource-Allocation-Notification)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "ENABLE_NOTIFICATION", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* Resource-Release-Notification */
{
struct dict_avp_data data = {
2841, /* Code */
10415, /* Vendor */
"Resource-Release-Notification", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Resource-Release-Notification)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "ENABLE_NOTIFICATION", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* Revalidation-Time */
{
struct dict_avp_data data = {
1042, /* Code */
10415, /* Vendor */
"Revalidation-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
};
/* Routing-IP-Address */
{
struct dict_avp_data data = {
1079, /* Code */
10415, /* Vendor */
"Routing-IP-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
};
/* Routing-Rule-Identifier */
{
struct dict_avp_data data = {
1077, /* Code */
10415, /* Vendor */
"Routing-Rule-Identifier", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Routing-Rule-Failure-Code */
{
struct dict_avp_data data = {
2834, /* Code */
10415, /* Vendor */
"Routing-Rule-Failure-Code", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Rule-Activation-Time */
{
struct dict_avp_data data = {
1043, /* Code */
10415, /* Vendor */
"Rule-Activation-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
};
/* Rule-Deactivation-Time */
{
struct dict_avp_data data = {
1044, /* Code */
10415, /* Vendor */
"Rule-Deactivation-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
};
/* Rule-Failure-Code */
{
struct dict_avp_data data = {
1031, /* Code */
10415, /* Vendor */
"Rule-Failure-Code", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Rule-Failure-Code)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "UNKNOWN_RULE_NAME", { .i32=1 }};
struct dict_enumval_data t_2 = { "RESOURCE_ALLOCATION_FAILURE", { .i32=10 }};
struct dict_enumval_data t_3 = { "UNSUCCESSFUL_QOS_VALIDATION", { .i32=11 }};
struct dict_enumval_data t_4 = { "INCORRECT_FLOW_INFORMATION", { .i32=12 }};
struct dict_enumval_data t_5 = { "PS_TO_CS_HANDOVER", { .i32=13 }};
struct dict_enumval_data t_6 = { "TDF_APPLICATION_IDENTIFIER_ERROR", { .i32=14 }};
struct dict_enumval_data t_7 = { "NO_BEARER_BOUND", { .i32=15 }};
struct dict_enumval_data t_8 = { "FILTER_RESTRICTIONS", { .i32=16 }};
struct dict_enumval_data t_9 = { "AN_GW_FAILED", { .i32=17 }};
struct dict_enumval_data t_10 = { "MISSING_REDIRECT_SERVER_ADDRESS", { .i32=18 }};
struct dict_enumval_data t_11 = { "CM_END_USER_SERVICE_DENIED", { .i32=19 }};
struct dict_enumval_data t_12 = { "RATING_GROUP_ERROR", { .i32=2 }};
struct dict_enumval_data t_13 = { "CM_CREDIT_CONTROL_NOT_APPLICABLE", { .i32=20 }};
struct dict_enumval_data t_14 = { "CM_AUTHORIZATION_REJECTED", { .i32=21 }};
struct dict_enumval_data t_15 = { "CM_USER_UNKNOWN", { .i32=22 }};
struct dict_enumval_data t_16 = { "CM_RATING_FAILED", { .i32=23 }};
struct dict_enumval_data t_17 = { "ROUTING_RULE_REJECTION", { .i32=24 }};
struct dict_enumval_data t_18 = { "NO_NBIFOM_SUPPORT", { .i32=25 }};
struct dict_enumval_data t_19 = { "SERVICE_IDENTIFIER_ERROR", { .i32=3 }};
struct dict_enumval_data t_20 = { "GW_PCEF_MALFUNCTION", { .i32=4 }};
struct dict_enumval_data t_21 = { "RESOURCES_LIMITATION", { .i32=5 }};
struct dict_enumval_data t_22 = { "MAX_NR_BEARERS_REACHED", { .i32=6 }};
struct dict_enumval_data t_23 = { "UNKNOWN_BEARER_ID", { .i32=7 }};
struct dict_enumval_data t_24 = { "MISSING_BEARER_ID", { .i32=8 }};
struct dict_enumval_data t_25 = { "MISSING_FLOW_INFORMATION", { .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_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_AVP, &data, type, NULL);
};
/* Security-Parameter-Index */
{
struct dict_avp_data data = {
1056, /* Code */
10415, /* Vendor */
"Security-Parameter-Index", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Session-Release-Cause */
{
struct dict_avp_data data = {
1045, /* Code */
10415, /* Vendor */
"Session-Release-Cause", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Session-Release-Cause)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "UNSPECIFIED_REASON", { .i32=0 }};
struct dict_enumval_data t_2 = { "UE_SUBSCRIPTION_REASON", { .i32=1 }};
struct dict_enumval_data t_3 = { "INSUFFICIENT_SERVER_RESOURCES", { .i32=2 }};
struct dict_enumval_data t_4 = { "IP_CAN_SESSION_TERMINATION", { .i32=3 }};
struct dict_enumval_data t_5 = { "UE_IP_ADDRESS_RELEASE", { .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);
};
/* TCP-Source-Port */
{
struct dict_avp_data data = {
2843, /* Code */
10415, /* Vendor */
"TCP-Source-Port", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* TDF-Application-Identifier */
{
struct dict_avp_data data = {
1088, /* Code */
10415, /* Vendor */
"TDF-Application-Identifier", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* TDF-Application-Instance-Identifier */
{
struct dict_avp_data data = {
2802, /* Code */
10415, /* Vendor */
"TDF-Application-Instance-Identifier", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* TDF-Destination-Host */
{
struct dict_avp_data data = {
1089, /* Code */
10415, /* Vendor */
"TDF-Destination-Host", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
};
/* TDF-Destination-Realm */
{
struct dict_avp_data data = {
1090, /* Code */
10415, /* Vendor */
"TDF-Destination-Realm", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
};
/* TDF-IP-Address */
{
struct dict_avp_data data = {
1091, /* Code */
10415, /* Vendor */
"TDF-IP-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
};
/* TFT-Filter */
{
struct dict_avp_data data = {
1012, /* Code */
10415, /* Vendor */
"TFT-Filter", /* 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, IPFilterRule_type, NULL);
};
/* Traffic-Steering-Policy-Identifier-DL */
{
struct dict_avp_data data = {
2836, /* Code */
10415, /* Vendor */
"Traffic-Steering-Policy-Identifier-DL", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Traffic-Steering-Policy-Identifier-UL */
{
struct dict_avp_data data = {
2837, /* Code */
10415, /* Vendor */
"Traffic-Steering-Policy-Identifier-UL", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* ToS-Traffic-Class */
{
struct dict_avp_data data = {
1014, /* Code */
10415, /* Vendor */
"ToS-Traffic-Class", /* 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);
};
/* Tunnel-Header-Filter */
{
struct dict_avp_data data = {
1036, /* Code */
10415, /* Vendor */
"Tunnel-Header-Filter", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, IPFilterRule_type, NULL);
};
/* Tunnel-Header-Length */
{
struct dict_avp_data data = {
1037, /* Code */
10415, /* Vendor */
"Tunnel-Header-Length", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* UDP-Source-Port */
{
struct dict_avp_data data = {
2806, /* Code */
10415, /* Vendor */
"UDP-Source-Port", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* UE-Local-IP-Address */
{
struct dict_avp_data data = {
2805, /* Code */
10415, /* Vendor */
"UE-Local-IP-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
};
/* Usage-Monitoring-Level */
{
struct dict_avp_data data = {
1068, /* Code */
10415, /* Vendor */
"Usage-Monitoring-Level", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Level)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "SESSION_LEVEL", { .i32=0 }};
struct dict_enumval_data t_2 = { "PCC_RULE_LEVEL", { .i32=1 }};
struct dict_enumval_data t_3 = { "ADC_RULE_LEVEL", { .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);
};
/* Usage-Monitoring-Report */
{
struct dict_avp_data data = {
1069, /* Code */
10415, /* Vendor */
"Usage-Monitoring-Report", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Report)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "USAGE_MONITORING_REPORT_REQUIRED", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* Usage-Monitoring-Support */
{
struct dict_avp_data data = {
1070, /* Code */
10415, /* Vendor */
"Usage-Monitoring-Support", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Support)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "USAGE_MONITORING_DISABLED", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* User-Location-Info-Time */
{
struct dict_avp_data data = {
2812, /* Code */
10415, /* Vendor */
"User-Location-Info-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
};
/* PCSCF-Restoration-Indication */
{
struct dict_avp_data data = {
2826, /* Code */
10415, /* Vendor */
"PCSCF-Restoration-Indication", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* QoS-Rule-Name */
{
struct dict_avp_data data = {
1054, /* Code */
10415, /* Vendor */
"QoS-Rule-Name", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* QoS-Rule-Base-Name */
{
struct dict_avp_data data = {
1074, /* Code */
10415, /* Vendor */
"QoS-Rule-Base-Name", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Session-Linking-Indicator */
{
struct dict_avp_data data = {
1064, /* Code */
10415, /* Vendor */
"Session-Linking-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(Session-Linking-Indicator)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "UE_ONLY", { .i32=0 }};
struct dict_enumval_data t_2 = { "RESERVED", { .i32=1 }};
struct dict_enumval_data t_3 = { "UE_NW", { .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);
};
/* ADC-Rule-Base-Name */
{
struct dict_avp_data data = {
1095, /* Code */
10415, /* Vendor */
"ADC-Rule-Base-Name", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* ADC-Rule-Name */
{
struct dict_avp_data data = {
1096, /* Code */
10415, /* Vendor */
"ADC-Rule-Name", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Request-Type */
{
struct dict_avp_data data = {
2838, /* Code */
10415, /* Vendor */
"Request-Type", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* CS-Service-QoS-Request-Identifier */
{
struct dict_avp_data data = {
2807, /* Code */
10415, /* Vendor */
"CS-Service-QoS-Request-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, NULL, NULL);
};
/* CS-Service-QoS-Request-Operation */
{
struct dict_avp_data data = {
2808, /* Code */
10415, /* Vendor */
"CS-Service-QoS-Request-Operation", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CS-Service-QoS-Request-Operation)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "DELETION", { .i32=0 }};
struct dict_enumval_data t_2 = { "MODIFICATION", { .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);
};
/* CS-Service-Resource-Failure-Cause */
{
struct dict_avp_data data = {
2814, /* Code */
10415, /* Vendor */
"CS-Service-Resource-Failure-Cause", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CS-Service-Resource-Failure-Cause)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "RESOURCE_RELEASED", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* CS-Service-Resource-Result-Operation */
{
struct dict_avp_data data = {
2815, /* Code */
10415, /* Vendor */
"CS-Service-Resource-Result-Operation", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CS-Service-Resource-Result-Operation)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "DELETION", { .i32=0 }};
/* 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_AVP, &data, type, NULL);
};
/* Charging-Rule-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1002, /* Code */
10415, /* Vendor */
"Charging-Rule-Remove", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* QoS-Rule-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1055, /* Code */
10415, /* Vendor */
"QoS-Rule-Report", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Redirect-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1085, /* Code */
10415, /* Vendor */
"Redirect-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* PRA-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2846, /* Code */
10415, /* Vendor */
"PRA-Remove", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Flow-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1058, /* Code */
10415, /* Vendor */
"Flow-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Tunnel-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1038, /* Code */
10415, /* Vendor */
"Tunnel-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* TDF-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1087, /* Code */
10415, /* Vendor */
"TDF-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Routing-Rule-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1075, /* Code */
10415, /* Vendor */
"Routing-Rule-Remove", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* CS-Service-Resource-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2813, /* Code */
10415, /* Vendor */
"CS-Service-Resource-Report", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Presence-Reporting-Area-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2822, /* Code */
10415, /* Vendor */
"Presence-Reporting-Area-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Conditional-APN-Aggregate-Max-Bitrate */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2818, /* Code */
10415, /* Vendor */
"Conditional-APN-Aggregate-Max-Bitrate", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Access-Network-Charging-Identifier-Gx */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1022, /* Code */
10415, /* Vendor */
"Access-Network-Charging-Identifier-Gx", /* 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);
}
/* Allocation-Retention-Priority */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1034, /* Code */
10415, /* Vendor */
"Allocation-Retention-Priority", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* QoS-Rule-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1052, /* Code */
10415, /* Vendor */
"QoS-Rule-Remove", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Routing-Rule-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2835, /* Code */
10415, /* Vendor */
"Routing-Rule-Report", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* TFT-Packet-Filter-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1013, /* Code */
10415, /* Vendor */
"TFT-Packet-Filter-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);
}
/* Fixed-User-Location-Info */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2825, /* Code */
10415, /* Vendor */
"Fixed-User-Location-Info", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Default-QoS-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2816, /* Code */
10415, /* Vendor */
"Default-QoS-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Packet-Filter-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1061, /* Code */
10415, /* Vendor */
"Packet-Filter-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Routing-Filter */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1078, /* Code */
10415, /* Vendor */
"Routing-Filter", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* ADC-Rule-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1093, /* Code */
10415, /* Vendor */
"ADC-Rule-Remove", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* QoS-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1016, /* Code */
10415, /* Vendor */
"QoS-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* PRA-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2845, /* Code */
10415, /* Vendor */
"PRA-Install", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Routing-Rule-Definition */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1076, /* Code */
10415, /* Vendor */
"Routing-Rule-Definition", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Default-EPS-Bearer-QoS */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1049, /* Code */
10415, /* Vendor */
"Default-EPS-Bearer-QoS", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* CoA-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1039, /* Code */
10415, /* Vendor */
"CoA-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Application-Detection-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1098, /* Code */
10415, /* Vendor */
"Application-Detection-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Conditional-Policy-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
2840, /* Code */
10415, /* Vendor */
"Conditional-Policy-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Charging-Rule-Definition */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1003, /* Code */
10415, /* Vendor */
"Charging-Rule-Definition", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Routing-Rule-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1081, /* Code */
10415, /* Vendor */
"Routing-Rule-Install", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* ADC-Rule-Definition */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1094, /* Code */
10415, /* Vendor */
"ADC-Rule-Definition", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* ADC-Rule-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1097, /* Code */
10415, /* Vendor */
"ADC-Rule-Report", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* QoS-Rule-Definition */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1053, /* Code */
10415, /* Vendor */
"QoS-Rule-Definition", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Charging-Rule-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1018, /* Code */
10415, /* Vendor */
"Charging-Rule-Report", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Event-Report-Indication */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1033, /* Code */
10415, /* Vendor */
"Event-Report-Indication", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Charging-Rule-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1001, /* Code */
10415, /* Vendor */
"Charging-Rule-Install", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* QoS-Rule-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1051, /* Code */
10415, /* Vendor */
"QoS-Rule-Install", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* ADC-Rule-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1092, /* Code */
10415, /* Vendor */
"ADC-Rule-Install", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* Usage-Monitoring-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
1067, /* Code */
10415, /* Vendor */
"Usage-Monitoring-Information", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_VENDOR, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
}
/* Commands section */
{
}
return 0;
}
static int dict_ts29212_avps_load_rules(char * conffile)
{
/* Grouped AVP section */
{
/* Charging-Rule-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Charging-Rule-Remove"};
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 = "Charging-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Required-Access-Info"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Resource-Release-Notification"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* QoS-Rule-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "QoS-Rule-Report"};
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-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "PCC-Rule-Status"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Failure-Code"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Content-Version"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Redirect-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Redirect-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 = "Redirect-Support"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Redirect-Address-Type"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Redirect-Server-Address"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* PRA-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "PRA-Remove"};
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 = "Presence-Reporting-Area-Identifier"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Flow-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Flow-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 = "Flow-Description"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Packet-Filter-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Packet-Filter-Usage"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Security-Parameter-Index"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Label"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Direction"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Routing-Rule-Identifier"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Tunnel-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Tunnel-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 = "Tunnel-Header-Length"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* TDF-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "TDF-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 = "TDF-Destination-Realm"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "TDF-Destination-Host"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "TDF-IP-Address"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Routing-Rule-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Routing-Rule-Remove"};
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 = "Routing-Rule-Identifier"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* CS-Service-Resource-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "CS-Service-Resource-Report"};
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 = "CS-Service-QoS-Request-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "CS-Service-Resource-Result-Operation"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "CS-Service-Resource-Failure-Cause"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Presence-Reporting-Area-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-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 = "Presence-Reporting-Area-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Status"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Elements-List"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Conditional-APN-Aggregate-Max-Bitrate */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Conditional-APN-Aggregate-Max-Bitrate"};
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-Aggregate-Max-Bitrate-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Type"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "RAT-Type"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Access-Network-Charging-Identifier-Gx */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Access-Network-Charging-Identifier-Gx"};
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-Charging-Identifier-Value"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Session-Charging-Scope"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Allocation-Retention-Priority */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Allocation-Retention-Priority"};
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 = "Priority-Level"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Pre-emption-Capability"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Pre-emption-Vulnerability"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* QoS-Rule-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "QoS-Rule-Remove"};
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-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Required-Access-Info"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Routing-Rule-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Routing-Rule-Report"};
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 = "Routing-Rule-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "PCC-Rule-Status"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Routing-Rule-Failure-Code"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* TFT-Packet-Filter-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "TFT-Packet-Filter-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 = "Precedence"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "TFT-Filter"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Security-Parameter-Index"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Label"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Direction"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Fixed-User-Location-Info */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Fixed-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_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "BSSID"}, 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 }
};
PARSE_loc_rules( rules, avp );
}
/* Default-QoS-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Default-QoS-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 = "QoS-Class-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Default-QoS-Name"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Packet-Filter-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Packet-Filter-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 = "Packet-Filter-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Packet-Filter-Content"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Security-Parameter-Index"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Label"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Direction"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Routing-Filter */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Routing-Filter"};
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 = "Flow-Description"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Direction"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Security-Parameter-Index"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Label"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* ADC-Rule-Remove */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "ADC-Rule-Remove"};
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 = "ADC-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* QoS-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "QoS-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 = "QoS-Class-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Guaranteed-Bitrate-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Guaranteed-Bitrate-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Bearer-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Allocation-Retention-Priority"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Conditional-APN-Aggregate-Max-Bitrate"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* PRA-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "PRA-Install"};
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 = "Presence-Reporting-Area-Information"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Routing-Rule-Definition */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Routing-Rule-Definition"};
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 = "Routing-Rule-Identifier"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Routing-Filter"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Routing-IP-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Type"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Default-EPS-Bearer-QoS */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Default-EPS-Bearer-QoS"};
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-Class-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Allocation-Retention-Priority"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* CoA-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "CoA-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 = "Tunnel-Information"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "CoA-IP-Address"}, RULE_REQUIRED, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Application-Detection-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Application-Detection-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 = "TDF-Application-Identifier"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "TDF-Application-Instance-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Information"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Conditional-Policy-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Conditional-Policy-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 = "Execution-Time"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Default-EPS-Bearer-QoS"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Conditional-APN-Aggregate-Max-Bitrate"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Charging-Rule-Definition */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Charging-Rule-Definition"};
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 = "Charging-Rule-Name"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Service-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Rating-Group"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Default-Bearer-Indication"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "TDF-Application-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Status"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "PS-to-CS-Session-Continuity"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Reporting-Level"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Online"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Offline"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Metering-Method"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "AF-Charging-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flows"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Monitoring-Key"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Redirect-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Mute-Notification"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "AF-Signalling-Protocol"}, 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 = "Required-Access-Info"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Sharing-Key-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Sharing-Key-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Traffic-Steering-Policy-Identifier-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Traffic-Steering-Policy-Identifier-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Content-Version"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Routing-Rule-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Routing-Rule-Install"};
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 = "Routing-Rule-Definition"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* ADC-Rule-Definition */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "ADC-Rule-Definition"};
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 = "ADC-Rule-Name"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "TDF-Application-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Service-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Rating-Group"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Reporting-Level"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Online"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Offline"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Metering-Method"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Status"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Monitoring-Key"}, 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 = "Redirect-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Mute-Notification"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Traffic-Steering-Policy-Identifier-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Traffic-Steering-Policy-Identifier-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* ADC-Rule-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "ADC-Rule-Report"};
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 = "ADC-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "PCC-Rule-Status"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Failure-Code"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Final-Unit-Indication"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* QoS-Rule-Definition */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "QoS-Rule-Definition"};
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-Rule-Name"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Flow-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Required-Access-Info"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Sharing-Key-DL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Sharing-Key-UL"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Content-Version"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Charging-Rule-Report */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Charging-Rule-Report"};
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 = "Charging-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Bearer-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "PCC-Rule-Status"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Failure-Code"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Final-Unit-Indication"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "RAN-NAS-Release-Cause"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Content-Version"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Event-Report-Indication */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Event-Report-Indication"};
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 = "AN-Trusted"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Event-Trigger"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "User-CSG-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Type"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "AN-GW-Address"}, RULE_OPTIONAL, 0, 2 },
{ { .avp_vendor = 10415, .avp_name = "3GPP-SGSN-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "3GPP-SGSN-Ipv6-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "3GPP-SGSN-MCC-MNC"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Framed-IP-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "RAT-Type"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "RAI"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Trace-Data"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Trace-Reference"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 5535, .avp_name = "3GPP2-BSID"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "3GPP-MS-TimeZone"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Routing-IP-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "UE-Local-IP-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "HeNB-Local-IP-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "UDP-Source-Port"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Information"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Charging-Rule-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Charging-Rule-Install"};
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 = "Charging-Rule-Definition"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Bearer-Identifier"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Monitoring-Flags"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Activation-Time"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Deactivation-Time"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Resource-Allocation-Notification"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Charging-Correlation-Indicator"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Type"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* QoS-Rule-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "QoS-Rule-Install"};
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-Rule-Definition"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Tunnel-Information"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Access-Network-Charging-Identifier-Value"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Resource-Allocation-Notification"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Activation-Time"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Deactivation-Time"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "3GPP-GGSN-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "3GPP-GGSN-Ipv6-Address"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "AN-GW-Address"}, RULE_OPTIONAL, 0, 2 },
{ { .avp_vendor = 10415, .avp_name = "UDP-Source-Port"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* ADC-Rule-Install */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "ADC-Rule-Install"};
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 = "ADC-Rule-Definition"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Monitoring-Flags"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Activation-Time"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Rule-Deactivation-Time"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* Usage-Monitoring-Information */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 10415, .avp_name = "Usage-Monitoring-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-Key"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Granted-Service-Unit"}, RULE_OPTIONAL, 0, 2 },
{ { .avp_vendor = 0, .avp_name = "Used-Service-Unit"}, RULE_OPTIONAL, 0, 2 },
{ { .avp_vendor = 10415, .avp_name = "Quota-Consumption-Time"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Usage-Monitoring-Level"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Usage-Monitoring-Report"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 10415, .avp_name = "Usage-Monitoring-Support"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
}
/* Commands section */
{
}
LOG_D( "Extension 'Dictionary definitions for ts29212_avps (e30)' initialized");
return 0;
}
int dict_entry(char * conffile)
{
dict_ts29212_avps_load_defs(conffile);
return dict_ts29212_avps_load_rules(conffile);
}
const char* dict_ts29212_avps_proto_ver(char * conffile) {
return ts29212_avps_proto_ver;
}
const double dict_ts29212_avps_gen_ts(char * conffile) {
return ts29212_avps_gen_date;
}
EXTENSION_ENTRY2("dict_ts29212_avps", dict_ts29212_avps_load_defs, dict_ts29212_avps_load_rules, "dict_ts32299_avps", "dict_ts29273_avps", "dict_ts29214_avps", "dict_ts29272_avps", "dict_ts29229_avps", "dict_rfc4006bis_avps", "dict_ts29061_avps", "dict_draftload_avps", "dict_rfc7683_avps", "dict_rfc7155_avps", "dict_etsi283034_avps", "dict_3gpp2_avps", "dict_rfc7944_avps");