| /* |
| * 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"); |
| |
| |
| |