blob: f8f3f17b95d509010fd0d32a03df2228bcac75c6 [file] [log] [blame]
/*
* Copyright (c) 2017 Sprint
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/****************
Generated By: fdtool enhancements to diafuzzer
License: same as freeDiameter
****************/
/*
* Dictionary definitions of objects specified in rfc7155_avps.
*/
#include <freeDiameter/extension.h>
#define PROTO_VER "unspecified"
#define GEN_DATE 1506697143.67
const char *rfc7155_avps_proto_ver = PROTO_VER;
const double rfc7155_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_rfc7155_avps_load_defs(char * conffile)
{
TRACE_ENTRY("%p", conffile);
/* Derived AVP types section */
{
/* QoSFilterRule */
{
/*
The QosFilterRule format is derived from the OctetString AVP Base
Format. It uses the ASCII charset. Packets may be marked or
metered based on the following information:
Direction (in or out)
Source and destination IP address (possibly masked)
Protocol
Source and destination port (lists or ranges)
DSCP values (no mask or range)
Rules for the appropriate direction are evaluated in order; the
first matched rule terminates the evaluation. Each packet is
evaluated once. If no rule matches, the packet is treated as best
effort. An access device unable to interpret or apply a QoS rule
SHOULD NOT terminate the session.
QoSFilterRule filters MUST follow the following format:
action dir proto from src to dst [options]
tag - Mark packet with a specific DSCP
[DIFFSERV]. The DSCP option MUST be
included.
meter - Meter traffic. The metering options
MUST be included.
dir The format is as described under IPFilterRule.
proto The format is as described under IPFilterRule.
src and dst The format is as described under IPFilterRule.
options:
DSCP <color>
Color values as defined in [DIFFSERV]. Exact
matching of DSCP values is required (no masks or
ranges).
metering <rate> <color_under> <color_over>
The metering option provides Assured Forwarding,
as defined in [DIFFSERVAF], and MUST be present
if the action is set to meter. The rate option is
the throughput, in bits per second, used
by the access device to mark packets. Traffic
over the rate is marked with the color_over
codepoint, and traffic under the rate is marked
with the color_under codepoint. The color_under
and color_over options contain the drop
preferences and MUST conform to the recommended
codepoint keywords described in [DIFFSERVAF]
(e.g., AF13).
The metering option also supports the strict
limit on traffic required by Expedited
Forwarding, as defined in [DIFFSERVEF]. The
color_over option may contain the keyword "drop"
to prevent forwarding of traffic that exceeds the
rate parameter.
The rule syntax is a modified subset of ipfw(8) from FreeBSD,
and the ipfw.c code may provide a useful base for
implementations.
*/
struct dict_type_data data = { AVP_TYPE_OCTETSTRING, "QoSFilterRule" , NULL , NULL };
CHECK_dict_new( DICT_TYPE, &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;
struct dict_object * QoSFilterRule_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);
CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "QoSFilterRule", &QoSFilterRule_type);
/* NAS-Port */
{
struct dict_avp_data data = {
5, /* Code */
0, /* Vendor */
"NAS-Port", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* NAS-Port-Id */
{
struct dict_avp_data data = {
87, /* Code */
0, /* Vendor */
"NAS-Port-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* NAS-Port-Type */
{
struct dict_avp_data data = {
61, /* Code */
0, /* Vendor */
"NAS-Port-Type", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(NAS-Port-Type)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "ASYNC", { .i32=0 }};
struct dict_enumval_data t_2 = { "SYNC", { .i32=1 }};
struct dict_enumval_data t_3 = { "ISDN_SYNC", { .i32=2 }};
struct dict_enumval_data t_4 = { "ISDN_ASYNC_V120", { .i32=3 }};
struct dict_enumval_data t_5 = { "ISDN_ASYNC_V110", { .i32=4 }};
struct dict_enumval_data t_6 = { "VIRTUAL", { .i32=5 }};
struct dict_enumval_data t_7 = { "PIAFS", { .i32=6 }};
struct dict_enumval_data t_8 = { "HDLC_CLEAR_CHANNEL", { .i32=7 }};
struct dict_enumval_data t_9 = { "X25", { .i32=8 }};
struct dict_enumval_data t_10 = { "X75", { .i32=9 }};
struct dict_enumval_data t_11 = { "G.3_FAX", { .i32=10 }};
struct dict_enumval_data t_12 = { "SDSL_SYMMETRIC_DSL", { .i32=11 }};
struct dict_enumval_data t_13 = { "IDSL_ISDN_DIGITAL_SUBSCRIBER_LINE", { .i32=14 }};
struct dict_enumval_data t_14 = { "ETHERNET", { .i32=15 }};
struct dict_enumval_data t_15 = { "XDSL_DIGITAL_SUBSCRIBER_LINE_OF_UNKNOWN_TYPE", { .i32=16 }};
struct dict_enumval_data t_16 = { "CABLE", { .i32=17 }};
struct dict_enumval_data t_17 = { "WIRELESS_OTHER", { .i32=18 }};
struct dict_enumval_data t_18 = { "WIRELESS_IEEE_802.11", { .i32=19 }};
struct dict_enumval_data t_19 = { "TOKEN_RING", { .i32=20 }};
struct dict_enumval_data t_20 = { "FDDI", { .i32=21 }};
struct dict_enumval_data t_21 = { "WIRELESS_CDMA2000", { .i32=22 }};
struct dict_enumval_data t_22 = { "WIRELESS_UMTS", { .i32=23 }};
struct dict_enumval_data t_23 = { "WIRELESS_1X_EV", { .i32=24 }};
struct dict_enumval_data t_24 = { "IAPP", { .i32=25 }};
struct dict_enumval_data t_25 = { "FTTP_FIBER_TO_THE_PREMISES", { .i32=26 }};
struct dict_enumval_data t_26 = { "WIRELESS_IEEE_802.16", { .i32=27 }};
struct dict_enumval_data t_27 = { "WIRELESS_IEEE_802.20", { .i32=28 }};
struct dict_enumval_data t_28 = { "WIRELESS_IEEE_802.22", { .i32=29 }};
struct dict_enumval_data t_29 = { "PPPOA_PPP_OVER_ATM", { .i32=30 }};
struct dict_enumval_data t_30 = { "PPPOEOA_PPP_OVER_ETHERNET_OVER_ATM", { .i32=31 }};
struct dict_enumval_data t_31 = { "PPPOEOE_PPP_OVER_ETHERNET_OVER_ETHERNET", { .i32=32 }};
struct dict_enumval_data t_32 = { "PPPOEOVLAN_PPP_OVER_ETHERNET_OVER_VLAN", { .i32=33 }};
struct dict_enumval_data t_33 = { "PPPOEOQINQ_PPP_OVER_ETHERNET_OVER_IEEE_802.1QINQ", { .i32=34 }};
struct dict_enumval_data t_34 = { "XPON_PASSIVE_OPTICAL_NETWORK", { .i32=35 }};
struct dict_enumval_data t_35 = { "WIRELESS_XGP", { .i32=36 }};
/* 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_AVP, &data, type, NULL);
};
/* Called-Station-Id */
{
struct dict_avp_data data = {
30, /* Code */
0, /* Vendor */
"Called-Station-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Calling-Station-Id */
{
struct dict_avp_data data = {
31, /* Code */
0, /* Vendor */
"Calling-Station-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Connect-Info */
{
struct dict_avp_data data = {
77, /* Code */
0, /* Vendor */
"Connect-Info", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Originating-Line-Info */
{
struct dict_avp_data data = {
94, /* Code */
0, /* Vendor */
"Originating-Line-Info", /* 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);
};
/* Reply-Message */
{
struct dict_avp_data data = {
18, /* Code */
0, /* Vendor */
"Reply-Message", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* User-Password */
{
struct dict_avp_data data = {
2, /* Code */
0, /* Vendor */
"User-Password", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Password-Retry */
{
struct dict_avp_data data = {
75, /* Code */
0, /* Vendor */
"Password-Retry", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Prompt */
{
struct dict_avp_data data = {
76, /* Code */
0, /* Vendor */
"Prompt", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Prompt)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "NO_ECHO", { .i32=0 }};
struct dict_enumval_data t_2 = { "ECHO", { .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);
};
/* CHAP-Algorithm */
{
struct dict_avp_data data = {
403, /* Code */
0, /* Vendor */
"CHAP-Algorithm", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(CHAP-Algorithm)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "CHAP_WITH_MD5", { .i32=5 }};
/* Create the Enumerated type, and then the AVP */
CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
CHECK_dict_new( DICT_AVP, &data, type, NULL);
};
/* CHAP-Ident */
{
struct dict_avp_data data = {
404, /* Code */
0, /* Vendor */
"CHAP-Ident", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* CHAP-Response */
{
struct dict_avp_data data = {
405, /* Code */
0, /* Vendor */
"CHAP-Response", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* CHAP-Challenge */
{
struct dict_avp_data data = {
60, /* Code */
0, /* Vendor */
"CHAP-Challenge", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* ARAP-Password */
{
struct dict_avp_data data = {
70, /* Code */
0, /* Vendor */
"ARAP-Password", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* ARAP-Challenge-Response */
{
struct dict_avp_data data = {
84, /* Code */
0, /* Vendor */
"ARAP-Challenge-Response", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* ARAP-Security */
{
struct dict_avp_data data = {
73, /* Code */
0, /* Vendor */
"ARAP-Security", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* ARAP-Security-Data */
{
struct dict_avp_data data = {
74, /* Code */
0, /* Vendor */
"ARAP-Security-Data", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Service-Type */
{
struct dict_avp_data data = {
6, /* Code */
0, /* Vendor */
"Service-Type", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Service-Type)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "UNKNOWN", { .i32=0 }};
struct dict_enumval_data t_2 = { "LOGIN", { .i32=1 }};
struct dict_enumval_data t_3 = { "FRAMED", { .i32=2 }};
struct dict_enumval_data t_4 = { "CALLBACK_LOGIN", { .i32=3 }};
struct dict_enumval_data t_5 = { "CALLBACK_FRAMED", { .i32=4 }};
struct dict_enumval_data t_6 = { "OUTBOUND", { .i32=5 }};
struct dict_enumval_data t_7 = { "ADMINISTRATIVE", { .i32=6 }};
struct dict_enumval_data t_8 = { "NAS_PROMPT", { .i32=7 }};
struct dict_enumval_data t_9 = { "AUTHENTICATE_ONLY", { .i32=8 }};
struct dict_enumval_data t_10 = { "CALLBACK_NAS_PROMPT", { .i32=9 }};
struct dict_enumval_data t_11 = { "CALL_CHECK", { .i32=10 }};
struct dict_enumval_data t_12 = { "CALLBACK_ADMINISTRATIVE", { .i32=11 }};
struct dict_enumval_data t_13 = { "VOICE", { .i32=12 }};
struct dict_enumval_data t_14 = { "FAX", { .i32=13 }};
struct dict_enumval_data t_15 = { "MODEM_RELAY", { .i32=14 }};
struct dict_enumval_data t_16 = { "IAPP_REGISTER", { .i32=15 }};
struct dict_enumval_data t_17 = { "IAPP_AP_CHECK", { .i32=16 }};
struct dict_enumval_data t_18 = { "AUTHORIZE_ONLY", { .i32=17 }};
struct dict_enumval_data t_19 = { "FRAMED_MANAGEMENT", { .i32=18 }};
/* 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_AVP, &data, type, NULL);
};
/* Callback-Number */
{
struct dict_avp_data data = {
19, /* Code */
0, /* Vendor */
"Callback-Number", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Callback-Id */
{
struct dict_avp_data data = {
20, /* Code */
0, /* Vendor */
"Callback-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Idle-Timeout */
{
struct dict_avp_data data = {
28, /* Code */
0, /* Vendor */
"Idle-Timeout", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Port-Limit */
{
struct dict_avp_data data = {
62, /* Code */
0, /* Vendor */
"Port-Limit", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* NAS-Filter-Rule */
{
struct dict_avp_data data = {
400, /* Code */
0, /* Vendor */
"NAS-Filter-Rule", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, IPFilterRule_type, NULL);
};
/* Filter-Id */
{
struct dict_avp_data data = {
11, /* Code */
0, /* Vendor */
"Filter-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Configuration-Token */
{
struct dict_avp_data data = {
78, /* Code */
0, /* Vendor */
"Configuration-Token", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* QoS-Filter-Rule */
{
struct dict_avp_data data = {
407, /* Code */
0, /* Vendor */
"QoS-Filter-Rule", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, QoSFilterRule_type, NULL);
};
/* Framed-Protocol */
{
struct dict_avp_data data = {
7, /* Code */
0, /* Vendor */
"Framed-Protocol", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Framed-Protocol)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "PPP", { .i32=1 }};
struct dict_enumval_data t_2 = { "SLIP", { .i32=2 }};
struct dict_enumval_data t_3 = { "ARAP", { .i32=3 }};
struct dict_enumval_data t_4 = { "GANDALF", { .i32=4 }};
struct dict_enumval_data t_5 = { "XYLOGICS", { .i32=5 }};
struct dict_enumval_data t_6 = { "X.75", { .i32=6 }};
struct dict_enumval_data t_7 = { "GPRS_PDP_CONTEXT", { .i32=7 }};
struct dict_enumval_data t_8 = { "ASCEND_ARA", { .i32=255 }};
struct dict_enumval_data t_9 = { "MPP", { .i32=256 }};
struct dict_enumval_data t_10 = { "EURAW", { .i32=257 }};
struct dict_enumval_data t_11 = { "EUUI", { .i32=258 }};
struct dict_enumval_data t_12 = { "X25", { .i32=259 }};
struct dict_enumval_data t_13 = { "COMB", { .i32=260 }};
struct dict_enumval_data t_14 = { "FR", { .i32=261 }};
/* 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_AVP, &data, type, NULL);
};
/* Framed-Routing */
{
struct dict_avp_data data = {
10, /* Code */
0, /* Vendor */
"Framed-Routing", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Framed-Routing)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "NONE", { .i32=0 }};
struct dict_enumval_data t_2 = { "SEND_ROUTING_PACKETS", { .i32=1 }};
struct dict_enumval_data t_3 = { "LISTEN_FOR_ROUTING_PACKETS", { .i32=2 }};
struct dict_enumval_data t_4 = { "SEND_AND_LISTEN", { .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);
};
/* Framed-MTU */
{
struct dict_avp_data data = {
12, /* Code */
0, /* Vendor */
"Framed-MTU", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-Compression */
{
struct dict_avp_data data = {
13, /* Code */
0, /* Vendor */
"Framed-Compression", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Framed-Compression)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "NONE", { .i32=0 }};
struct dict_enumval_data t_2 = { "IPX_HEADER_COMPRESSION", { .i32=2 }};
struct dict_enumval_data t_3 = { "STAC_LZS_COMPRESSION", { .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_AVP, &data, type, NULL);
};
/* Framed-IP-Address */
{
struct dict_avp_data data = {
8, /* Code */
0, /* Vendor */
"Framed-IP-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-IP-Netmask */
{
struct dict_avp_data data = {
9, /* Code */
0, /* Vendor */
"Framed-IP-Netmask", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-Route */
{
struct dict_avp_data data = {
22, /* Code */
0, /* Vendor */
"Framed-Route", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Framed-Pool */
{
struct dict_avp_data data = {
88, /* Code */
0, /* Vendor */
"Framed-Pool", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-Interface-Id */
{
struct dict_avp_data data = {
96, /* Code */
0, /* Vendor */
"Framed-Interface-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED64 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-IPv6-Prefix */
{
struct dict_avp_data data = {
97, /* Code */
0, /* Vendor */
"Framed-IPv6-Prefix", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-IPv6-Route */
{
struct dict_avp_data data = {
99, /* Code */
0, /* Vendor */
"Framed-IPv6-Route", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Framed-IPv6-Pool */
{
struct dict_avp_data data = {
100, /* Code */
0, /* Vendor */
"Framed-IPv6-Pool", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-IPX-Network */
{
struct dict_avp_data data = {
23, /* Code */
0, /* Vendor */
"Framed-IPX-Network", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Framed-Appletalk-Link */
{
struct dict_avp_data data = {
37, /* Code */
0, /* Vendor */
"Framed-Appletalk-Link", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-Appletalk-Network */
{
struct dict_avp_data data = {
38, /* Code */
0, /* Vendor */
"Framed-Appletalk-Network", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Framed-Appletalk-Zone */
{
struct dict_avp_data data = {
39, /* Code */
0, /* Vendor */
"Framed-Appletalk-Zone", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* ARAP-Features */
{
struct dict_avp_data data = {
71, /* Code */
0, /* Vendor */
"ARAP-Features", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* ARAP-Zone-Access */
{
struct dict_avp_data data = {
72, /* Code */
0, /* Vendor */
"ARAP-Zone-Access", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(ARAP-Zone-Access)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "ONLY_ALLOW_ACCESS_TO_DEFAULT_ZONE", { .i32=1 }};
struct dict_enumval_data t_2 = { "USE_ZONE_FILTER_INCLUSIVELY", { .i32=2 }};
struct dict_enumval_data t_3 = { "USE_ZONE_FILTER_EXCLUSIVELY", { .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_AVP, &data, type, NULL);
};
/* Login-IP-Host */
{
struct dict_avp_data data = {
14, /* Code */
0, /* Vendor */
"Login-IP-Host", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Login-IPv6-Host */
{
struct dict_avp_data data = {
98, /* Code */
0, /* Vendor */
"Login-IPv6-Host", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Login-Service */
{
struct dict_avp_data data = {
15, /* Code */
0, /* Vendor */
"Login-Service", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Login-Service)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "TELNET", { .i32=0 }};
struct dict_enumval_data t_2 = { "RLOGIN", { .i32=1 }};
struct dict_enumval_data t_3 = { "TCP_CLEAR", { .i32=2 }};
struct dict_enumval_data t_4 = { "PORTMASTER", { .i32=3 }};
struct dict_enumval_data t_5 = { "LAT", { .i32=4 }};
struct dict_enumval_data t_6 = { "X25_PAD", { .i32=5 }};
struct dict_enumval_data t_7 = { "X25_T3POS", { .i32=6 }};
struct dict_enumval_data t_8 = { "UNASSIGNED", { .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);
};
/* Login-TCP-Port */
{
struct dict_avp_data data = {
16, /* Code */
0, /* Vendor */
"Login-TCP-Port", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Login-LAT-Service */
{
struct dict_avp_data data = {
34, /* Code */
0, /* Vendor */
"Login-LAT-Service", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Login-LAT-Node */
{
struct dict_avp_data data = {
35, /* Code */
0, /* Vendor */
"Login-LAT-Node", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Login-LAT-Group */
{
struct dict_avp_data data = {
36, /* Code */
0, /* Vendor */
"Login-LAT-Group", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Login-LAT-Port */
{
struct dict_avp_data data = {
63, /* Code */
0, /* Vendor */
"Login-LAT-Port", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Tunnel-Type */
{
struct dict_avp_data data = {
64, /* Code */
0, /* Vendor */
"Tunnel-Type", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Tunnel-Type)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "PPTP", { .i32=1 }};
struct dict_enumval_data t_2 = { "L2F", { .i32=2 }};
struct dict_enumval_data t_3 = { "L2TP", { .i32=3 }};
struct dict_enumval_data t_4 = { "ATMP", { .i32=4 }};
struct dict_enumval_data t_5 = { "VTP", { .i32=5 }};
struct dict_enumval_data t_6 = { "AH", { .i32=6 }};
struct dict_enumval_data t_7 = { "IP_IP_ENCAP", { .i32=7 }};
struct dict_enumval_data t_8 = { "MIN_IP_IP", { .i32=8 }};
struct dict_enumval_data t_9 = { "ESP", { .i32=9 }};
struct dict_enumval_data t_10 = { "GRE", { .i32=10 }};
struct dict_enumval_data t_11 = { "DVS", { .i32=11 }};
struct dict_enumval_data t_12 = { "IP_IN_IP_TUNNELING", { .i32=12 }};
struct dict_enumval_data t_13 = { "VLAN", { .i32=13 }};
/* 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_AVP, &data, type, NULL);
};
/* Tunnel-Medium-Type */
{
struct dict_avp_data data = {
65, /* Code */
0, /* Vendor */
"Tunnel-Medium-Type", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Tunnel-Medium-Type)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "IPV4", { .i32=1 }};
struct dict_enumval_data t_2 = { "IPV6", { .i32=2 }};
struct dict_enumval_data t_3 = { "NSAP", { .i32=3 }};
struct dict_enumval_data t_4 = { "HDLC", { .i32=4 }};
struct dict_enumval_data t_5 = { "BBN", { .i32=5 }};
struct dict_enumval_data t_6 = { "IEEE_802", { .i32=6 }};
struct dict_enumval_data t_7 = { "E_163", { .i32=7 }};
struct dict_enumval_data t_8 = { "E_164", { .i32=8 }};
struct dict_enumval_data t_9 = { "F_69", { .i32=9 }};
struct dict_enumval_data t_10 = { "X_121", { .i32=10 }};
struct dict_enumval_data t_11 = { "IPX", { .i32=11 }};
struct dict_enumval_data t_12 = { "APPLETALK_802", { .i32=12 }};
struct dict_enumval_data t_13 = { "DECNET4", { .i32=13 }};
struct dict_enumval_data t_14 = { "VINES", { .i32=14 }};
struct dict_enumval_data t_15 = { "E_164_NSAP", { .i32=15 }};
/* 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);
};
/* Tunnel-Client-Endpoint */
{
struct dict_avp_data data = {
66, /* Code */
0, /* Vendor */
"Tunnel-Client-Endpoint", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Tunnel-Server-Endpoint */
{
struct dict_avp_data data = {
67, /* Code */
0, /* Vendor */
"Tunnel-Server-Endpoint", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Tunnel-Password */
{
struct dict_avp_data data = {
69, /* Code */
0, /* Vendor */
"Tunnel-Password", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Tunnel-Private-Group-Id */
{
struct dict_avp_data data = {
81, /* Code */
0, /* Vendor */
"Tunnel-Private-Group-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Tunnel-Assignment-Id */
{
struct dict_avp_data data = {
82, /* Code */
0, /* Vendor */
"Tunnel-Assignment-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Tunnel-Preference */
{
struct dict_avp_data data = {
83, /* Code */
0, /* Vendor */
"Tunnel-Preference", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Tunnel-Client-Auth-Id */
{
struct dict_avp_data data = {
90, /* Code */
0, /* Vendor */
"Tunnel-Client-Auth-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Tunnel-Server-Auth-Id */
{
struct dict_avp_data data = {
91, /* Code */
0, /* Vendor */
"Tunnel-Server-Auth-Id", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* Accounting-Input-Octets */
{
struct dict_avp_data data = {
363, /* Code */
0, /* Vendor */
"Accounting-Input-Octets", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED64 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Accounting-Output-Octets */
{
struct dict_avp_data data = {
364, /* Code */
0, /* Vendor */
"Accounting-Output-Octets", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED64 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Accounting-Input-Packets */
{
struct dict_avp_data data = {
365, /* Code */
0, /* Vendor */
"Accounting-Input-Packets", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED64 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Accounting-Output-Packets */
{
struct dict_avp_data data = {
366, /* Code */
0, /* Vendor */
"Accounting-Output-Packets", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED64 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Acct-Session-Time */
{
struct dict_avp_data data = {
46, /* Code */
0, /* Vendor */
"Acct-Session-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Acct-Authentic */
{
struct dict_avp_data data = {
45, /* Code */
0, /* Vendor */
"Acct-Authentic", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Acct-Authentic)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "NONE", { .i32=0 }};
struct dict_enumval_data t_2 = { "RADIUS", { .i32=1 }};
struct dict_enumval_data t_3 = { "LOCAL", { .i32=2 }};
struct dict_enumval_data t_4 = { "REMOTE", { .i32=3 }};
struct dict_enumval_data t_5 = { "DIAMETER", { .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);
};
/* Accounting-Auth-Method */
{
struct dict_avp_data data = {
406, /* Code */
0, /* Vendor */
"Accounting-Auth-Method", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Accounting-Auth-Method)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "PAP", { .i32=1 }};
struct dict_enumval_data t_2 = { "CHAP", { .i32=2 }};
struct dict_enumval_data t_3 = { "MS_CHAP_1", { .i32=3 }};
struct dict_enumval_data t_4 = { "MS_CHAP_2", { .i32=4 }};
struct dict_enumval_data t_5 = { "EAP", { .i32=5 }};
struct dict_enumval_data t_6 = { "UNDEFINED", { .i32=6 }};
struct dict_enumval_data t_7 = { "NONE", { .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_AVP, &data, type, NULL);
};
/* Acct-Delay-Time */
{
struct dict_avp_data data = {
41, /* Code */
0, /* Vendor */
"Acct-Delay-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Acct-Link-Count */
{
struct dict_avp_data data = {
51, /* Code */
0, /* Vendor */
"Acct-Link-Count", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Acct-Tunnel-Connection */
{
struct dict_avp_data data = {
68, /* Code */
0, /* Vendor */
"Acct-Tunnel-Connection", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Acct-Tunnel-Packets-Lost */
{
struct dict_avp_data data = {
86, /* Code */
0, /* Vendor */
"Acct-Tunnel-Packets-Lost", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* NAS-Identifier */
{
struct dict_avp_data data = {
32, /* Code */
0, /* Vendor */
"NAS-Identifier", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
};
/* NAS-IP-Address */
{
struct dict_avp_data data = {
4, /* Code */
0, /* Vendor */
"NAS-IP-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* NAS-IPv6-Address */
{
struct dict_avp_data data = {
95, /* Code */
0, /* Vendor */
"NAS-IPv6-Address", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Origin-AAA-Protocol */
{
struct dict_avp_data data = {
408, /* Code */
0, /* Vendor */
"Origin-AAA-Protocol", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Origin-AAA-Protocol)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "RADIUS", { .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);
};
/* State */
{
struct dict_avp_data data = {
24, /* Code */
0, /* Vendor */
"State", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Redirect-Host */
{
struct dict_avp_data data = {
292, /* Code */
0, /* Vendor */
"Redirect-Host", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_OCTETSTRING /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, DiameterURI_type, NULL);
};
/* Redirect-Host-Usage */
{
struct dict_avp_data data = {
261, /* Code */
0, /* Vendor */
"Redirect-Host-Usage", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_INTEGER32 /* base type of data */
};
struct dict_object *type;
struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Redirect-Host-Usage)", NULL, NULL, NULL };
struct dict_enumval_data t_1 = { "DONT_CACHE", { .i32=0 }};
struct dict_enumval_data t_2 = { "ALL_SESSION", { .i32=1 }};
struct dict_enumval_data t_3 = { "ALL_REALM", { .i32=2 }};
struct dict_enumval_data t_4 = { "REALM_AND_APPLICATION", { .i32=3 }};
struct dict_enumval_data t_5 = { "ALL_APPLICATION", { .i32=4 }};
struct dict_enumval_data t_6 = { "ALL_HOST", { .i32=5 }};
struct dict_enumval_data t_7 = { "ALL_USER", { .i32=6 }};
/* Create the Enumerated type, and then the AVP */
CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
CHECK_dict_new( DICT_AVP, &data, type, NULL);
};
/* Redirect-Max-Cache-Time */
{
struct dict_avp_data data = {
262, /* Code */
0, /* Vendor */
"Redirect-Max-Cache-Time", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_UNSIGNED32 /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
};
/* Tunneling */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
401, /* Code */
0, /* Vendor */
"Tunneling", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
/* CHAP-Auth */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_data data = {
402, /* Code */
0, /* Vendor */
"CHAP-Auth", /* Name */
AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY, /* Fixed flags */
AVP_FLAG_MANDATORY, /* Fixed flag values */
AVP_TYPE_GROUPED /* base type of data */
};
CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
}
}
/* Commands section */
{
}
return 0;
}
static int dict_rfc7155_avps_load_rules(char * conffile)
{
/* Grouped AVP section */
{
/* Tunneling */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "Tunneling"};
CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
struct local_rules_definition rules[] =
{
{ { .avp_vendor = 0, .avp_name = "Tunnel-Type"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Medium-Type"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Client-Endpoint"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Server-Endpoint"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Preference"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Client-Auth-Id"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Server-Auth-Id"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Assignment-Id"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Password"}, RULE_OPTIONAL, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "Tunnel-Private-Group-Id"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
/* CHAP-Auth */
{
/* Grouped */
struct dict_object * avp;
struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "CHAP-Auth"};
CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
struct local_rules_definition rules[] =
{
{ { .avp_vendor = 0, .avp_name = "CHAP-Algorithm"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "CHAP-Ident"}, RULE_REQUIRED, -1, -1 },
{ { .avp_vendor = 0, .avp_name = "CHAP-Response"}, RULE_OPTIONAL, -1, -1 }
};
PARSE_loc_rules( rules, avp );
}
}
/* Commands section */
{
}
LOG_D( "Extension 'Dictionary definitions for rfc7155_avps (None)' initialized");
return 0;
}
int dict_entry(char * conffile)
{
dict_rfc7155_avps_load_defs(conffile);
return dict_rfc7155_avps_load_rules(conffile);
}
const char* dict_rfc7155_avps_proto_ver(char * conffile) {
return rfc7155_avps_proto_ver;
}
const double dict_rfc7155_avps_gen_ts(char * conffile) {
return rfc7155_avps_gen_date;
}
EXTENSION_ENTRY2("dict_rfc7155_avps", dict_rfc7155_avps_load_defs, dict_rfc7155_avps_load_rules, "dict_rfc4004_avps");