| /* |
| * 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 rfc5777_avps. |
| */ |
| #include <freeDiameter/extension.h> |
| |
| #define PROTO_VER "unspecified" |
| #define GEN_DATE 1506697143.56 |
| |
| const char *rfc5777_avps_proto_ver = PROTO_VER; |
| const double rfc5777_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_rfc5777_avps_load_defs(char * conffile) |
| { |
| TRACE_ENTRY("%p", conffile); |
| |
| /* 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); |
| /* Filter-Rule-Precedence */ |
| { |
| struct dict_avp_data data = { |
| 510, /* Code */ |
| 0, /* Vendor */ |
| "Filter-Rule-Precedence", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Classifier-ID */ |
| { |
| struct dict_avp_data data = { |
| 512, /* Code */ |
| 0, /* Vendor */ |
| "Classifier-ID", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Protocol */ |
| { |
| struct dict_avp_data data = { |
| 513, /* Code */ |
| 0, /* Vendor */ |
| "Protocol", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Protocol)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "HOPOPT", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "ICMP", { .i32=1 }}; |
| struct dict_enumval_data t_3 = { "IGMP", { .i32=2 }}; |
| struct dict_enumval_data t_4 = { "GGP", { .i32=3 }}; |
| struct dict_enumval_data t_5 = { "IPv4", { .i32=4 }}; |
| struct dict_enumval_data t_6 = { "ST", { .i32=5 }}; |
| struct dict_enumval_data t_7 = { "TCP", { .i32=6 }}; |
| struct dict_enumval_data t_8 = { "CBT", { .i32=7 }}; |
| struct dict_enumval_data t_9 = { "EGP", { .i32=8 }}; |
| struct dict_enumval_data t_10 = { "IGP", { .i32=9 }}; |
| struct dict_enumval_data t_11 = { "BBN-RCC-MON", { .i32=10 }}; |
| struct dict_enumval_data t_12 = { "NVP-II", { .i32=11 }}; |
| struct dict_enumval_data t_13 = { "PUP", { .i32=12 }}; |
| struct dict_enumval_data t_14 = { "ARGUS", { .i32=13 }}; |
| struct dict_enumval_data t_15 = { "EMCON", { .i32=14 }}; |
| struct dict_enumval_data t_16 = { "XNET", { .i32=15 }}; |
| struct dict_enumval_data t_17 = { "CHAOS", { .i32=16 }}; |
| struct dict_enumval_data t_18 = { "UDP", { .i32=17 }}; |
| struct dict_enumval_data t_19 = { "MUX", { .i32=18 }}; |
| struct dict_enumval_data t_20 = { "DCN-MEAS", { .i32=19 }}; |
| struct dict_enumval_data t_21 = { "HMP", { .i32=20 }}; |
| struct dict_enumval_data t_22 = { "PRM", { .i32=21 }}; |
| struct dict_enumval_data t_23 = { "XNS-IDP", { .i32=22 }}; |
| struct dict_enumval_data t_24 = { "TRUNK-1", { .i32=23 }}; |
| struct dict_enumval_data t_25 = { "TRUNK-2", { .i32=24 }}; |
| struct dict_enumval_data t_26 = { "LEAF-1", { .i32=25 }}; |
| struct dict_enumval_data t_27 = { "LEAF-2", { .i32=26 }}; |
| struct dict_enumval_data t_28 = { "RDP", { .i32=27 }}; |
| struct dict_enumval_data t_29 = { "IRTP", { .i32=28 }}; |
| struct dict_enumval_data t_30 = { "ISO-TP4", { .i32=29 }}; |
| struct dict_enumval_data t_31 = { "NETBLT", { .i32=30 }}; |
| struct dict_enumval_data t_32 = { "MFE-NSP", { .i32=31 }}; |
| struct dict_enumval_data t_33 = { "MERIT-INP", { .i32=32 }}; |
| struct dict_enumval_data t_34 = { "DCCP", { .i32=33 }}; |
| struct dict_enumval_data t_35 = { "3PC", { .i32=34 }}; |
| struct dict_enumval_data t_36 = { "IDPR", { .i32=35 }}; |
| struct dict_enumval_data t_37 = { "XTP", { .i32=36 }}; |
| struct dict_enumval_data t_38 = { "DDP", { .i32=37 }}; |
| struct dict_enumval_data t_39 = { "IDPR-CMTP", { .i32=38 }}; |
| struct dict_enumval_data t_40 = { "TPplusplus", { .i32=39 }}; |
| struct dict_enumval_data t_41 = { "IL", { .i32=40 }}; |
| struct dict_enumval_data t_42 = { "IPv6", { .i32=41 }}; |
| struct dict_enumval_data t_43 = { "SDRP", { .i32=42 }}; |
| struct dict_enumval_data t_44 = { "IPv6-Route", { .i32=43 }}; |
| struct dict_enumval_data t_45 = { "IPv6-Frag", { .i32=44 }}; |
| struct dict_enumval_data t_46 = { "IDRP", { .i32=45 }}; |
| struct dict_enumval_data t_47 = { "RSVP", { .i32=46 }}; |
| struct dict_enumval_data t_48 = { "GRE", { .i32=47 }}; |
| struct dict_enumval_data t_49 = { "DSR", { .i32=48 }}; |
| struct dict_enumval_data t_50 = { "BNA", { .i32=49 }}; |
| struct dict_enumval_data t_51 = { "ESP", { .i32=50 }}; |
| struct dict_enumval_data t_52 = { "AH", { .i32=51 }}; |
| struct dict_enumval_data t_53 = { "I-NLSP", { .i32=52 }}; |
| struct dict_enumval_data t_54 = { "SWIPE", { .i32=53 }}; |
| struct dict_enumval_data t_55 = { "NARP", { .i32=54 }}; |
| struct dict_enumval_data t_56 = { "MOBILE", { .i32=55 }}; |
| struct dict_enumval_data t_57 = { "TLSP", { .i32=56 }}; |
| struct dict_enumval_data t_58 = { "SKIP", { .i32=57 }}; |
| struct dict_enumval_data t_59 = { "IPv6-ICMP", { .i32=58 }}; |
| struct dict_enumval_data t_60 = { "IPv6-NoNxt", { .i32=59 }}; |
| struct dict_enumval_data t_61 = { "IPv6-Opts", { .i32=60 }}; |
| struct dict_enumval_data t_62 = { "CFTP", { .i32=62 }}; |
| struct dict_enumval_data t_63 = { "SAT-EXPAK", { .i32=64 }}; |
| struct dict_enumval_data t_64 = { "KRYPTOLAN", { .i32=65 }}; |
| struct dict_enumval_data t_65 = { "RVD", { .i32=66 }}; |
| struct dict_enumval_data t_66 = { "IPPC", { .i32=67 }}; |
| struct dict_enumval_data t_67 = { "SAT-MON", { .i32=69 }}; |
| struct dict_enumval_data t_68 = { "VISA", { .i32=70 }}; |
| struct dict_enumval_data t_69 = { "IPCV", { .i32=71 }}; |
| struct dict_enumval_data t_70 = { "CPNX", { .i32=72 }}; |
| struct dict_enumval_data t_71 = { "CPHB", { .i32=73 }}; |
| struct dict_enumval_data t_72 = { "WSN", { .i32=74 }}; |
| struct dict_enumval_data t_73 = { "PVP", { .i32=75 }}; |
| struct dict_enumval_data t_74 = { "BR-SAT-MON", { .i32=76 }}; |
| struct dict_enumval_data t_75 = { "SUN-ND", { .i32=77 }}; |
| struct dict_enumval_data t_76 = { "WB-MON", { .i32=78 }}; |
| struct dict_enumval_data t_77 = { "WB-EXPAK", { .i32=79 }}; |
| struct dict_enumval_data t_78 = { "ISO-IP", { .i32=80 }}; |
| struct dict_enumval_data t_79 = { "VMTP", { .i32=81 }}; |
| struct dict_enumval_data t_80 = { "SECURE-VMTP", { .i32=82 }}; |
| struct dict_enumval_data t_81 = { "VINES", { .i32=83 }}; |
| struct dict_enumval_data t_82 = { "TTP", { .i32=84 }}; |
| struct dict_enumval_data t_83 = { "IPTM", { .i32=84 }}; |
| struct dict_enumval_data t_84 = { "NSFNET-IGP", { .i32=85 }}; |
| struct dict_enumval_data t_85 = { "DGP", { .i32=86 }}; |
| struct dict_enumval_data t_86 = { "TCF", { .i32=87 }}; |
| struct dict_enumval_data t_87 = { "EIGRP", { .i32=88 }}; |
| struct dict_enumval_data t_88 = { "OSPFIGP", { .i32=89 }}; |
| struct dict_enumval_data t_89 = { "Sprite-RPC", { .i32=90 }}; |
| struct dict_enumval_data t_90 = { "LARP", { .i32=91 }}; |
| struct dict_enumval_data t_91 = { "MTP", { .i32=92 }}; |
| struct dict_enumval_data t_92 = { "AX_25", { .i32=93 }}; |
| struct dict_enumval_data t_93 = { "IPIP", { .i32=94 }}; |
| struct dict_enumval_data t_94 = { "MICP", { .i32=95 }}; |
| struct dict_enumval_data t_95 = { "SCC-SP", { .i32=96 }}; |
| struct dict_enumval_data t_96 = { "ETHERIP", { .i32=97 }}; |
| struct dict_enumval_data t_97 = { "ENCAP", { .i32=98 }}; |
| struct dict_enumval_data t_98 = { "GMTP", { .i32=100 }}; |
| struct dict_enumval_data t_99 = { "IFMP", { .i32=101 }}; |
| struct dict_enumval_data t_100 = { "PNNI", { .i32=102 }}; |
| struct dict_enumval_data t_101 = { "PIM", { .i32=103 }}; |
| struct dict_enumval_data t_102 = { "ARIS", { .i32=104 }}; |
| struct dict_enumval_data t_103 = { "SCPS", { .i32=105 }}; |
| struct dict_enumval_data t_104 = { "QNX", { .i32=106 }}; |
| struct dict_enumval_data t_105 = { "A_N", { .i32=107 }}; |
| struct dict_enumval_data t_106 = { "IPComp", { .i32=108 }}; |
| struct dict_enumval_data t_107 = { "SNP", { .i32=109 }}; |
| struct dict_enumval_data t_108 = { "Compaq-Peer", { .i32=110 }}; |
| struct dict_enumval_data t_109 = { "IPX-in-IP", { .i32=111 }}; |
| struct dict_enumval_data t_110 = { "VRRP", { .i32=112 }}; |
| struct dict_enumval_data t_111 = { "PGM", { .i32=113 }}; |
| struct dict_enumval_data t_112 = { "L2TP", { .i32=115 }}; |
| struct dict_enumval_data t_113 = { "DDX", { .i32=116 }}; |
| struct dict_enumval_data t_114 = { "IATP", { .i32=117 }}; |
| struct dict_enumval_data t_115 = { "STP", { .i32=118 }}; |
| struct dict_enumval_data t_116 = { "SRP", { .i32=119 }}; |
| struct dict_enumval_data t_117 = { "UTI", { .i32=120 }}; |
| struct dict_enumval_data t_118 = { "SMP", { .i32=121 }}; |
| struct dict_enumval_data t_119 = { "SM", { .i32=122 }}; |
| struct dict_enumval_data t_120 = { "PTP", { .i32=123 }}; |
| struct dict_enumval_data t_121 = { "ISISoverIPv4", { .i32=124 }}; |
| struct dict_enumval_data t_122 = { "FIRE", { .i32=125 }}; |
| struct dict_enumval_data t_123 = { "CRTP", { .i32=126 }}; |
| struct dict_enumval_data t_124 = { "CRUDP", { .i32=127 }}; |
| struct dict_enumval_data t_125 = { "SSCOPMCE", { .i32=128 }}; |
| struct dict_enumval_data t_126 = { "IPLT", { .i32=129 }}; |
| struct dict_enumval_data t_127 = { "SPS", { .i32=130 }}; |
| struct dict_enumval_data t_128 = { "PIPE", { .i32=131 }}; |
| struct dict_enumval_data t_129 = { "SCTP", { .i32=132 }}; |
| struct dict_enumval_data t_130 = { "FC", { .i32=133 }}; |
| struct dict_enumval_data t_131 = { "RSVP-E2E-IGNORE", { .i32=134 }}; |
| struct dict_enumval_data t_132 = { "MobilityHeader", { .i32=135 }}; |
| struct dict_enumval_data t_133 = { "UDPLite", { .i32=136 }}; |
| struct dict_enumval_data t_134 = { "MPLS-in-IP", { .i32=137 }}; |
| struct dict_enumval_data t_135 = { "manet", { .i32=138 }}; |
| struct dict_enumval_data t_136 = { "HIP", { .i32=139 }}; |
| struct dict_enumval_data t_137 = { "Shim6", { .i32=140 }}; |
| struct dict_enumval_data t_138 = { "WESP", { .i32=141 }}; |
| struct dict_enumval_data t_139 = { "ROHC", { .i32=142 }}; |
| struct dict_enumval_data t_140 = { "Reserved", { .i32=255 }}; |
| /* 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_ENUMVAL, &t_50, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_51, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_52, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_53, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_54, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_55, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_56, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_57, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_58, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_59, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_60, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_61, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_62, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_63, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_64, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_65, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_66, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_67, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_68, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_69, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_70, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_71, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_72, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_73, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_74, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_75, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_76, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_77, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_78, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_79, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_80, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_81, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_82, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_83, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_84, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_85, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_86, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_87, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_88, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_89, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_90, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_91, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_92, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_93, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_94, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_95, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_96, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_97, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_98, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_99, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_100, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_101, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_102, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_103, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_104, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_105, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_106, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_107, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_108, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_109, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_110, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_111, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_112, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_113, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_114, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_115, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_116, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_117, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_118, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_119, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_120, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_121, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_122, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_123, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_124, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_125, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_126, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_127, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_128, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_129, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_130, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_131, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_132, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_133, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_134, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_135, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_136, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_137, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_138, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_139, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_140, type, NULL); |
| CHECK_dict_new( DICT_AVP, &data, type, NULL); |
| }; |
| /* Direction */ |
| { |
| struct dict_avp_data data = { |
| 514, /* Code */ |
| 0, /* Vendor */ |
| "Direction", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Direction)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "IN", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "OUT", { .i32=1 }}; |
| struct dict_enumval_data t_3 = { "BOTH", { .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); |
| }; |
| /* Negated */ |
| { |
| struct dict_avp_data data = { |
| 517, /* Code */ |
| 0, /* Vendor */ |
| "Negated", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Negated)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "False", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "True", { .i32=1 }}; |
| /* Create the Enumerated type, and then the AVP */ |
| CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type); |
| CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL); |
| CHECK_dict_new( DICT_AVP, &data, type, NULL); |
| }; |
| /* IP-Address */ |
| { |
| struct dict_avp_data data = { |
| 518, /* Code */ |
| 0, /* Vendor */ |
| "IP-Address", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, Address_type, NULL); |
| }; |
| /* IP-Address-Start */ |
| { |
| struct dict_avp_data data = { |
| 520, /* Code */ |
| 0, /* Vendor */ |
| "IP-Address-Start", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, Address_type, NULL); |
| }; |
| /* IP-Address-End */ |
| { |
| struct dict_avp_data data = { |
| 521, /* Code */ |
| 0, /* Vendor */ |
| "IP-Address-End", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, Address_type, NULL); |
| }; |
| /* IP-Bit-Mask-Width */ |
| { |
| struct dict_avp_data data = { |
| 523, /* Code */ |
| 0, /* Vendor */ |
| "IP-Bit-Mask-Width", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* MAC-Address */ |
| { |
| struct dict_avp_data data = { |
| 524, /* Code */ |
| 0, /* Vendor */ |
| "MAC-Address", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* MAC-Address-Mask-Pattern */ |
| { |
| struct dict_avp_data data = { |
| 526, /* Code */ |
| 0, /* Vendor */ |
| "MAC-Address-Mask-Pattern", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* EUI64-Address */ |
| { |
| struct dict_avp_data data = { |
| 527, /* Code */ |
| 0, /* Vendor */ |
| "EUI64-Address", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* EUI64-Address-Mask-Pattern */ |
| { |
| struct dict_avp_data data = { |
| 529, /* Code */ |
| 0, /* Vendor */ |
| "EUI64-Address-Mask-Pattern", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Port */ |
| { |
| struct dict_avp_data data = { |
| 530, /* Code */ |
| 0, /* Vendor */ |
| "Port", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Port-Start */ |
| { |
| struct dict_avp_data data = { |
| 532, /* Code */ |
| 0, /* Vendor */ |
| "Port-Start", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Port-End */ |
| { |
| struct dict_avp_data data = { |
| 533, /* Code */ |
| 0, /* Vendor */ |
| "Port-End", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Use-Assigned-Address */ |
| { |
| struct dict_avp_data data = { |
| 534, /* Code */ |
| 0, /* Vendor */ |
| "Use-Assigned-Address", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Use-Assigned-Address)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "False", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "True", { .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); |
| }; |
| /* Diffserv-Code-Point */ |
| { |
| struct dict_avp_data data = { |
| 535, /* Code */ |
| 0, /* Vendor */ |
| "Diffserv-Code-Point", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Diffserv-Code-Point)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "CS0", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "CS1", { .i32=8 }}; |
| struct dict_enumval_data t_3 = { "CS2", { .i32=16 }}; |
| struct dict_enumval_data t_4 = { "CS3", { .i32=24 }}; |
| struct dict_enumval_data t_5 = { "CS4", { .i32=32 }}; |
| struct dict_enumval_data t_6 = { "CS5", { .i32=40 }}; |
| struct dict_enumval_data t_7 = { "CS6", { .i32=48 }}; |
| struct dict_enumval_data t_8 = { "CS7", { .i32=56 }}; |
| struct dict_enumval_data t_9 = { "AF11", { .i32=10 }}; |
| struct dict_enumval_data t_10 = { "AF12", { .i32=12 }}; |
| struct dict_enumval_data t_11 = { "AF13", { .i32=14 }}; |
| struct dict_enumval_data t_12 = { "AF21", { .i32=18 }}; |
| struct dict_enumval_data t_13 = { "AF22", { .i32=20 }}; |
| struct dict_enumval_data t_14 = { "AF23", { .i32=22 }}; |
| struct dict_enumval_data t_15 = { "AF31", { .i32=26 }}; |
| struct dict_enumval_data t_16 = { "AF32", { .i32=28 }}; |
| struct dict_enumval_data t_17 = { "AF33", { .i32=30 }}; |
| struct dict_enumval_data t_18 = { "AF41", { .i32=34 }}; |
| struct dict_enumval_data t_19 = { "AF42", { .i32=36 }}; |
| struct dict_enumval_data t_20 = { "AF43", { .i32=38 }}; |
| struct dict_enumval_data t_21 = { "EF", { .i32=46 }}; |
| struct dict_enumval_data t_22 = { "VOICE_ADMIT", { .i32=44 }}; |
| /* Create the Enumerated type, and then the AVP */ |
| CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type); |
| CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_11, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_12, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_13, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_14, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_15, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_16, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_17, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_18, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_19, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_20, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_21, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_22, type, NULL); |
| CHECK_dict_new( DICT_AVP, &data, type, NULL); |
| }; |
| /* Fragmentation-Flag */ |
| { |
| struct dict_avp_data data = { |
| 536, /* Code */ |
| 0, /* Vendor */ |
| "Fragmentation-Flag", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Fragmentation-Flag)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "DF", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "MF", { .i32=1 }}; |
| /* Create the Enumerated type, and then the AVP */ |
| CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type); |
| CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL); |
| CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL); |
| CHECK_dict_new( DICT_AVP, &data, type, NULL); |
| }; |
| /* IP-Option-Type */ |
| { |
| struct dict_avp_data data = { |
| 538, /* Code */ |
| 0, /* Vendor */ |
| "IP-Option-Type", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(IP-Option-Type)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "EOOL", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "NOP", { .i32=1 }}; |
| struct dict_enumval_data t_3 = { "SEC", { .i32=2 }}; |
| struct dict_enumval_data t_4 = { "LSR", { .i32=3 }}; |
| struct dict_enumval_data t_5 = { "TS", { .i32=4 }}; |
| struct dict_enumval_data t_6 = { "E-SEC", { .i32=5 }}; |
| struct dict_enumval_data t_7 = { "CIPSO", { .i32=6 }}; |
| struct dict_enumval_data t_8 = { "RR", { .i32=7 }}; |
| struct dict_enumval_data t_9 = { "SID", { .i32=8 }}; |
| struct dict_enumval_data t_10 = { "SSR", { .i32=9 }}; |
| struct dict_enumval_data t_11 = { "ZSU", { .i32=10 }}; |
| struct dict_enumval_data t_12 = { "MTUP", { .i32=11 }}; |
| struct dict_enumval_data t_13 = { "MTUR", { .i32=12 }}; |
| struct dict_enumval_data t_14 = { "FINN", { .i32=13 }}; |
| struct dict_enumval_data t_15 = { "VISA", { .i32=14 }}; |
| struct dict_enumval_data t_16 = { "ENCODE", { .i32=15 }}; |
| struct dict_enumval_data t_17 = { "IMITD", { .i32=16 }}; |
| struct dict_enumval_data t_18 = { "EIP", { .i32=17 }}; |
| struct dict_enumval_data t_19 = { "TR", { .i32=18 }}; |
| struct dict_enumval_data t_20 = { "ADDEXT", { .i32=19 }}; |
| struct dict_enumval_data t_21 = { "RTRALT", { .i32=20 }}; |
| struct dict_enumval_data t_22 = { "SDB", { .i32=21 }}; |
| struct dict_enumval_data t_23 = { "DPS", { .i32=23 }}; |
| struct dict_enumval_data t_24 = { "UMP", { .i32=24 }}; |
| struct dict_enumval_data t_25 = { "QS", { .i32=25 }}; |
| struct dict_enumval_data t_26 = { "EXP", { .i32=30 }}; |
| /* 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_AVP, &data, type, NULL); |
| }; |
| /* IP-Option-Value */ |
| { |
| struct dict_avp_data data = { |
| 539, /* Code */ |
| 0, /* Vendor */ |
| "IP-Option-Value", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* TCP-Option-Type */ |
| { |
| struct dict_avp_data data = { |
| 541, /* Code */ |
| 0, /* Vendor */ |
| "TCP-Option-Type", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(TCP-Option-Type)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "EOL", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "NOP", { .i32=1 }}; |
| struct dict_enumval_data t_3 = { "MAX_SEG_SZ", { .i32=2 }}; |
| struct dict_enumval_data t_4 = { "Window_Scale", { .i32=3 }}; |
| struct dict_enumval_data t_5 = { "SACK_Permitted", { .i32=4 }}; |
| struct dict_enumval_data t_6 = { "SACK", { .i32=5 }}; |
| struct dict_enumval_data t_7 = { "Echo", { .i32=6 }}; |
| struct dict_enumval_data t_8 = { "Echo_Reply", { .i32=7 }}; |
| struct dict_enumval_data t_9 = { "Timestamps", { .i32=8 }}; |
| struct dict_enumval_data t_10 = { "PartialOrderConnectionPermitted", { .i32=9 }}; |
| struct dict_enumval_data t_11 = { "PartialOrderServiceProfile", { .i32=10 }}; |
| struct dict_enumval_data t_12 = { "CC", { .i32=11 }}; |
| struct dict_enumval_data t_13 = { "CC_NEW", { .i32=12 }}; |
| struct dict_enumval_data t_14 = { "CC_ECHO", { .i32=13 }}; |
| struct dict_enumval_data t_15 = { "TCP_Alternate_Checksum_Request", { .i32=14 }}; |
| struct dict_enumval_data t_16 = { "TCP_Alternate_Checksum_Data", { .i32=15 }}; |
| struct dict_enumval_data t_17 = { "Skeeter", { .i32=16 }}; |
| struct dict_enumval_data t_18 = { "Bubba", { .i32=17 }}; |
| struct dict_enumval_data t_19 = { "Trailer_Checksum_Option", { .i32=18 }}; |
| struct dict_enumval_data t_20 = { "MD5_Signature_Option", { .i32=19 }}; |
| struct dict_enumval_data t_21 = { "SCPS_Capabilities", { .i32=20 }}; |
| struct dict_enumval_data t_22 = { "Selective_Negative_Acknowledgements", { .i32=21 }}; |
| struct dict_enumval_data t_23 = { "Record_Boundaries", { .i32=22 }}; |
| struct dict_enumval_data t_24 = { "Corruption_experienced", { .i32=23 }}; |
| struct dict_enumval_data t_25 = { "SNAP", { .i32=24 }}; |
| struct dict_enumval_data t_26 = { "TCP_Compression_Filter", { .i32=26 }}; |
| struct dict_enumval_data t_27 = { "Quick-Start_Response", { .i32=27 }}; |
| struct dict_enumval_data t_28 = { "User_Timeout_Option", { .i32=28 }}; |
| struct dict_enumval_data t_29 = { "TCP_Authentication_Option", { .i32=29 }}; |
| struct dict_enumval_data t_30 = { "Multipath_TCP", { .i32=30 }}; |
| struct dict_enumval_data t_31 = { "Reserved1", { .i32=31 }}; |
| struct dict_enumval_data t_32 = { "Reserved2", { .i32=32 }}; |
| struct dict_enumval_data t_33 = { "Reserved3", { .i32=33 }}; |
| struct dict_enumval_data t_34 = { "TCP_Fast_Open_Cookie", { .i32=34 }}; |
| struct dict_enumval_data t_35 = { "Reserved4", { .i32=69 }}; |
| struct dict_enumval_data t_36 = { "Reserved5", { .i32=70 }}; |
| struct dict_enumval_data t_37 = { "Reserved6", { .i32=76 }}; |
| struct dict_enumval_data t_38 = { "Reserved7", { .i32=77 }}; |
| struct dict_enumval_data t_39 = { "Reserved8", { .i32=78 }}; |
| struct dict_enumval_data t_40 = { "RFC3692-style_Experiment_1", { .i32=253 }}; |
| struct dict_enumval_data t_41 = { "RFC3692-style_Experiment_2", { .i32=254 }}; |
| /* 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_AVP, &data, type, NULL); |
| }; |
| /* TCP-Option-Value */ |
| { |
| struct dict_avp_data data = { |
| 542, /* Code */ |
| 0, /* Vendor */ |
| "TCP-Option-Value", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* TCP-Flag-Type */ |
| { |
| struct dict_avp_data data = { |
| 544, /* Code */ |
| 0, /* Vendor */ |
| "TCP-Flag-Type", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* ICMP-Type-Number */ |
| { |
| struct dict_avp_data data = { |
| 546, /* Code */ |
| 0, /* Vendor */ |
| "ICMP-Type-Number", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(ICMP-Type-Number)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "Echo_Reply", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "Destination_Unreachable", { .i32=3 }}; |
| struct dict_enumval_data t_3 = { "Source_Quench", { .i32=4 }}; |
| struct dict_enumval_data t_4 = { "Redirect", { .i32=5 }}; |
| struct dict_enumval_data t_5 = { "Alternate_Host_Address", { .i32=6 }}; |
| struct dict_enumval_data t_6 = { "Echo", { .i32=8 }}; |
| struct dict_enumval_data t_7 = { "Router_Advertisement", { .i32=9 }}; |
| struct dict_enumval_data t_8 = { "Router_Solicitation", { .i32=10 }}; |
| struct dict_enumval_data t_9 = { "Time_Exceeded", { .i32=11 }}; |
| struct dict_enumval_data t_10 = { "Parameter_Problem", { .i32=12 }}; |
| struct dict_enumval_data t_11 = { "Timestamp", { .i32=13 }}; |
| struct dict_enumval_data t_12 = { "Timestamp_Reply", { .i32=14 }}; |
| struct dict_enumval_data t_13 = { "Information_Request", { .i32=15 }}; |
| struct dict_enumval_data t_14 = { "Information_Reply", { .i32=16 }}; |
| struct dict_enumval_data t_15 = { "Address_Mask_Request", { .i32=17 }}; |
| struct dict_enumval_data t_16 = { "Address_Mask_Reply", { .i32=18 }}; |
| struct dict_enumval_data t_17 = { "Traceroute", { .i32=30 }}; |
| struct dict_enumval_data t_18 = { "Datagram_Conversion_Error", { .i32=31 }}; |
| struct dict_enumval_data t_19 = { "Mobile_Host_Redirect", { .i32=32 }}; |
| struct dict_enumval_data t_20 = { "IPv6_Where-Are-You", { .i32=33 }}; |
| struct dict_enumval_data t_21 = { "IPv6_I-Am-Here", { .i32=34 }}; |
| struct dict_enumval_data t_22 = { "Mobile_Registration_Request", { .i32=35 }}; |
| struct dict_enumval_data t_23 = { "Mobile_Registration_Reply", { .i32=36 }}; |
| struct dict_enumval_data t_24 = { "Domain_Name_Request", { .i32=37 }}; |
| struct dict_enumval_data t_25 = { "Domain_Name_Reply", { .i32=38 }}; |
| struct dict_enumval_data t_26 = { "SKIP", { .i32=39 }}; |
| struct dict_enumval_data t_27 = { "Photuris", { .i32=40 }}; |
| struct dict_enumval_data t_28 = { "ICMP_messages_utilized_by_experimental", { .i32=41 }}; |
| struct dict_enumval_data t_29 = { "RFC3692-style_Experiment_1", { .i32=253 }}; |
| struct dict_enumval_data t_30 = { "RFC3692-style_Experiment_2", { .i32=254 }}; |
| /* 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_AVP, &data, type, NULL); |
| }; |
| /* ICMP-Code */ |
| { |
| struct dict_avp_data data = { |
| 547, /* Code */ |
| 0, /* Vendor */ |
| "ICMP-Code", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(ICMP-Code)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "Echo_Reply", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "Destination_Unreachable", { .i32=3 }}; |
| struct dict_enumval_data t_3 = { "Source_Quench", { .i32=4 }}; |
| struct dict_enumval_data t_4 = { "Redirect", { .i32=5 }}; |
| struct dict_enumval_data t_5 = { "Alternate_Host_Address", { .i32=6 }}; |
| struct dict_enumval_data t_6 = { "Echo", { .i32=8 }}; |
| struct dict_enumval_data t_7 = { "Router_Advertisement", { .i32=9 }}; |
| struct dict_enumval_data t_8 = { "Router_Solicitation", { .i32=10 }}; |
| struct dict_enumval_data t_9 = { "Time_Exceeded", { .i32=11 }}; |
| struct dict_enumval_data t_10 = { "Parameter_Problem", { .i32=12 }}; |
| struct dict_enumval_data t_11 = { "Timestamp", { .i32=13 }}; |
| struct dict_enumval_data t_12 = { "Timestamp_Reply", { .i32=14 }}; |
| struct dict_enumval_data t_13 = { "Information_Request", { .i32=15 }}; |
| struct dict_enumval_data t_14 = { "Information_Reply", { .i32=16 }}; |
| struct dict_enumval_data t_15 = { "Address_Mask_Request", { .i32=17 }}; |
| struct dict_enumval_data t_16 = { "Address_Mask_Reply", { .i32=18 }}; |
| struct dict_enumval_data t_17 = { "Traceroute", { .i32=30 }}; |
| struct dict_enumval_data t_18 = { "Datagram_Conversion_Error", { .i32=31 }}; |
| struct dict_enumval_data t_19 = { "Mobile_Host_Redirect", { .i32=32 }}; |
| struct dict_enumval_data t_20 = { "IPv6_Where-Are-You", { .i32=33 }}; |
| struct dict_enumval_data t_21 = { "IPv6_I-Am-Here", { .i32=34 }}; |
| struct dict_enumval_data t_22 = { "Mobile_Registration_Request", { .i32=35 }}; |
| struct dict_enumval_data t_23 = { "Mobile_Registration_Reply", { .i32=36 }}; |
| struct dict_enumval_data t_24 = { "Domain_Name_Request", { .i32=37 }}; |
| struct dict_enumval_data t_25 = { "Domain_Name_Reply", { .i32=38 }}; |
| struct dict_enumval_data t_26 = { "SKIP", { .i32=39 }}; |
| struct dict_enumval_data t_27 = { "Photuris", { .i32=40 }}; |
| struct dict_enumval_data t_28 = { "ICMP_messages_utilized_by_experimental", { .i32=41 }}; |
| struct dict_enumval_data t_29 = { "RFC3692-style_Experiment_1", { .i32=253 }}; |
| struct dict_enumval_data t_30 = { "RFC3692-style_Experiment_2", { .i32=254 }}; |
| /* 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_AVP, &data, type, NULL); |
| }; |
| /* ETH-Ether-Type */ |
| { |
| struct dict_avp_data data = { |
| 550, /* Code */ |
| 0, /* Vendor */ |
| "ETH-Ether-Type", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* ETH-SAP */ |
| { |
| struct dict_avp_data data = { |
| 551, /* Code */ |
| 0, /* Vendor */ |
| "ETH-SAP", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* S-VID-Start */ |
| { |
| struct dict_avp_data data = { |
| 553, /* Code */ |
| 0, /* Vendor */ |
| "S-VID-Start", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* S-VID-End */ |
| { |
| struct dict_avp_data data = { |
| 554, /* Code */ |
| 0, /* Vendor */ |
| "S-VID-End", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* C-VID-Start */ |
| { |
| struct dict_avp_data data = { |
| 555, /* Code */ |
| 0, /* Vendor */ |
| "C-VID-Start", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* C-VID-End */ |
| { |
| struct dict_avp_data data = { |
| 556, /* Code */ |
| 0, /* Vendor */ |
| "C-VID-End", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Low-User-Priority */ |
| { |
| struct dict_avp_data data = { |
| 558, /* Code */ |
| 0, /* Vendor */ |
| "Low-User-Priority", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* High-User-Priority */ |
| { |
| struct dict_avp_data data = { |
| 559, /* Code */ |
| 0, /* Vendor */ |
| "High-User-Priority", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Time-Of-Day-Start */ |
| { |
| struct dict_avp_data data = { |
| 561, /* Code */ |
| 0, /* Vendor */ |
| "Time-Of-Day-Start", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Time-Of-Day-End */ |
| { |
| struct dict_avp_data data = { |
| 562, /* Code */ |
| 0, /* Vendor */ |
| "Time-Of-Day-End", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Day-Of-Week-Mask */ |
| { |
| struct dict_avp_data data = { |
| 563, /* Code */ |
| 0, /* Vendor */ |
| "Day-Of-Week-Mask", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Day-Of-Month-Mask */ |
| { |
| struct dict_avp_data data = { |
| 564, /* Code */ |
| 0, /* Vendor */ |
| "Day-Of-Month-Mask", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Month-Of-Year-Mask */ |
| { |
| struct dict_avp_data data = { |
| 565, /* Code */ |
| 0, /* Vendor */ |
| "Month-Of-Year-Mask", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Absolute-Start-Time */ |
| { |
| struct dict_avp_data data = { |
| 566, /* Code */ |
| 0, /* Vendor */ |
| "Absolute-Start-Time", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, Time_type, NULL); |
| }; |
| /* Absolute-Start-Fractional-Seconds */ |
| { |
| struct dict_avp_data data = { |
| 567, /* Code */ |
| 0, /* Vendor */ |
| "Absolute-Start-Fractional-Seconds", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Absolute-End-Time */ |
| { |
| struct dict_avp_data data = { |
| 568, /* Code */ |
| 0, /* Vendor */ |
| "Absolute-End-Time", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_OCTETSTRING /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, Time_type, NULL); |
| }; |
| /* Absolute-End-Fractional-Seconds */ |
| { |
| struct dict_avp_data data = { |
| 569, /* Code */ |
| 0, /* Vendor */ |
| "Absolute-End-Fractional-Seconds", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Timezone-Flag */ |
| { |
| struct dict_avp_data data = { |
| 570, /* Code */ |
| 0, /* Vendor */ |
| "Timezone-Flag", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Timezone-Flag)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "UTC", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "LOCAL", { .i32=1 }}; |
| struct dict_enumval_data t_3 = { "OFFSET", { .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); |
| }; |
| /* Timezone-Offset */ |
| { |
| struct dict_avp_data data = { |
| 571, /* Code */ |
| 0, /* Vendor */ |
| "Timezone-Offset", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* Treatment-Action */ |
| { |
| struct dict_avp_data data = { |
| 572, /* Code */ |
| 0, /* Vendor */ |
| "Treatment-Action", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(Treatment-Action)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "drop", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "shape", { .i32=1 }}; |
| struct dict_enumval_data t_3 = { "mark", { .i32=2 }}; |
| struct dict_enumval_data t_4 = { "permit", { .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); |
| }; |
| /* QoS-Profile-Id */ |
| { |
| struct dict_avp_data data = { |
| 573, /* Code */ |
| 0, /* Vendor */ |
| "QoS-Profile-Id", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_UNSIGNED32 /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data, NULL, NULL); |
| }; |
| /* QoS-Semantics */ |
| { |
| struct dict_avp_data data = { |
| 575, /* Code */ |
| 0, /* Vendor */ |
| "QoS-Semantics", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_INTEGER32 /* base type of data */ |
| }; |
| struct dict_object *type; |
| struct dict_type_data tdata = { AVP_TYPE_INTEGER32, "Enumerated(QoS-Semantics)", NULL, NULL, NULL }; |
| struct dict_enumval_data t_1 = { "QoS_Desired", { .i32=0 }}; |
| struct dict_enumval_data t_2 = { "QoS_Available", { .i32=1 }}; |
| struct dict_enumval_data t_3 = { "QoS_Delivered", { .i32=2 }}; |
| struct dict_enumval_data t_4 = { "Minimum_QoS", { .i32=3 }}; |
| struct dict_enumval_data t_5 = { "QoS_Authorized", { .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); |
| }; |
| /* QoS-Parameters */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 576, /* Code */ |
| 0, /* Vendor */ |
| "QoS-Parameters", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* ETH-Proto-Type */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 549, /* Code */ |
| 0, /* Vendor */ |
| "ETH-Proto-Type", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* VLAN-ID-Range */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 552, /* Code */ |
| 0, /* Vendor */ |
| "VLAN-ID-Range", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* IP-Option */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 537, /* Code */ |
| 0, /* Vendor */ |
| "IP-Option", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* IP-Address-Mask */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 522, /* Code */ |
| 0, /* Vendor */ |
| "IP-Address-Mask", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* Time-Of-Day-Condition */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 560, /* Code */ |
| 0, /* Vendor */ |
| "Time-Of-Day-Condition", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* TCP-Option */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 540, /* Code */ |
| 0, /* Vendor */ |
| "TCP-Option", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* MAC-Address-Mask */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 525, /* Code */ |
| 0, /* Vendor */ |
| "MAC-Address-Mask", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* TCP-Flags */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 543, /* Code */ |
| 0, /* Vendor */ |
| "TCP-Flags", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* Port-Range */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 531, /* Code */ |
| 0, /* Vendor */ |
| "Port-Range", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* ICMP-Type */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 545, /* Code */ |
| 0, /* Vendor */ |
| "ICMP-Type", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* User-Priority-Range */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 557, /* Code */ |
| 0, /* Vendor */ |
| "User-Priority-Range", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* QoS-Profile-Template */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 574, /* Code */ |
| 0, /* Vendor */ |
| "QoS-Profile-Template", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* IP-Address-Range */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 519, /* Code */ |
| 0, /* Vendor */ |
| "IP-Address-Range", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* EUI64-Address-Mask */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 528, /* Code */ |
| 0, /* Vendor */ |
| "EUI64-Address-Mask", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* From-Spec */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 515, /* Code */ |
| 0, /* Vendor */ |
| "From-Spec", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* Excess-Treatment */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 577, /* Code */ |
| 0, /* Vendor */ |
| "Excess-Treatment", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* ETH-Option */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 548, /* Code */ |
| 0, /* Vendor */ |
| "ETH-Option", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* To-Spec */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 516, /* Code */ |
| 0, /* Vendor */ |
| "To-Spec", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* QoS-Capability */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 578, /* Code */ |
| 0, /* Vendor */ |
| "QoS-Capability", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* Classifier */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 511, /* Code */ |
| 0, /* Vendor */ |
| "Classifier", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* Filter-Rule */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 509, /* Code */ |
| 0, /* Vendor */ |
| "Filter-Rule", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* Fixed flag values */ |
| AVP_TYPE_GROUPED /* base type of data */ |
| }; |
| CHECK_dict_new( DICT_AVP, &data , NULL, &avp); |
| } |
| /* QoS-Resources */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_data data = { |
| 508, /* Code */ |
| 0, /* Vendor */ |
| "QoS-Resources", /* Name */ |
| 0, /* Fixed flags */ |
| 0, /* 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_rfc5777_avps_load_rules(char * conffile) |
| { |
| /* Grouped AVP section */ |
| { |
| /* QoS-Parameters */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "QoS-Parameters"}; |
| CHECK_dict_search(DICT_AVP, AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp) |
| struct local_rules_definition rules[] = |
| { |
| |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* ETH-Proto-Type */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "ETH-Proto-Type"}; |
| 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 = "ETH-Ether-Type"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "ETH-SAP"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* VLAN-ID-Range */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "VLAN-ID-Range"}; |
| 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 = "S-VID-Start"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "S-VID-End"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "C-VID-Start"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "C-VID-End"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* IP-Option */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "IP-Option"}; |
| 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 = "IP-Option-Type"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "IP-Option-Value"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Negated"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* IP-Address-Mask */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "IP-Address-Mask"}; |
| 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 = "IP-Address"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "IP-Bit-Mask-Width"}, RULE_REQUIRED, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* Time-Of-Day-Condition */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "Time-Of-Day-Condition"}; |
| 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 = "Time-Of-Day-Start"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Time-Of-Day-End"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Day-Of-Week-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Day-Of-Month-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Month-Of-Year-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Absolute-Start-Time"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Absolute-End-Time"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Timezone-Flag"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* TCP-Option */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "TCP-Option"}; |
| 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 = "TCP-Option-Type"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "TCP-Option-Value"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Negated"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* MAC-Address-Mask */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "MAC-Address-Mask"}; |
| 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 = "MAC-Address"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "MAC-Address-Mask-Pattern"}, RULE_REQUIRED, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* TCP-Flags */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "TCP-Flags"}; |
| 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 = "TCP-Flag-Type"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Negated"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* Port-Range */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "Port-Range"}; |
| 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 = "Port-Start"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Port-End"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* ICMP-Type */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "ICMP-Type"}; |
| 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 = "ICMP-Type-Number"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "ICMP-Code"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Negated"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* User-Priority-Range */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "User-Priority-Range"}; |
| 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 = "Low-User-Priority"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "High-User-Priority"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* QoS-Profile-Template */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "QoS-Profile-Template"}; |
| 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 = "Vendor-Id"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "QoS-Profile-Id"}, RULE_REQUIRED, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* IP-Address-Range */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "IP-Address-Range"}; |
| 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 = "IP-Address-Start"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "IP-Address-End"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* EUI64-Address-Mask */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "EUI64-Address-Mask"}; |
| 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 = "EUI64-Address"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "EUI64-Address-Mask-Pattern"}, RULE_REQUIRED, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* From-Spec */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "From-Spec"}; |
| 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 = "IP-Address"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "IP-Address-Range"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "IP-Address-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "MAC-Address"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "MAC-Address-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "EUI64-Address"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "EUI64-Address-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Port"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Port-Range"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Negated"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Use-Assigned-Address"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* Excess-Treatment */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "Excess-Treatment"}; |
| 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 = "Treatment-Action"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "QoS-Profile-Template"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "QoS-Parameters"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* ETH-Option */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "ETH-Option"}; |
| 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 = "ETH-Proto-Type"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "VLAN-ID-Range"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "User-Priority-Range"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* To-Spec */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "To-Spec"}; |
| 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 = "IP-Address"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "IP-Address-Range"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "IP-Address-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "MAC-Address"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "MAC-Address-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "EUI64-Address"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "EUI64-Address-Mask"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Port"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Port-Range"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Negated"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Use-Assigned-Address"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* QoS-Capability */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "QoS-Capability"}; |
| 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 = "QoS-Profile-Template"}, RULE_REQUIRED, 1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* Classifier */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "Classifier"}; |
| 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 = "Classifier-ID"}, RULE_REQUIRED, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Protocol"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Direction"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "From-Spec"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "To-Spec"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Diffserv-Code-Point"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Fragmentation-Flag"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "IP-Option"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "TCP-Option"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "TCP-Flags"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "ICMP-Type"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "ETH-Option"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* Filter-Rule */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "Filter-Rule"}; |
| 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 = "Filter-Rule-Precedence"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Classifier"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Time-Of-Day-Condition"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Treatment-Action"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "QoS-Semantics"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "QoS-Profile-Template"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "QoS-Parameters"}, RULE_OPTIONAL, -1, -1 }, |
| { { .avp_vendor = 0, .avp_name = "Excess-Treatment"}, RULE_OPTIONAL, -1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| /* QoS-Resources */ |
| { |
| /* Grouped */ |
| struct dict_object * avp; |
| struct dict_avp_request avp_vendor_plus_name = { .avp_vendor = 0, .avp_name = "QoS-Resources"}; |
| 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 = "Filter-Rule"}, RULE_REQUIRED, 1, -1 } |
| }; |
| PARSE_loc_rules( rules, avp ); |
| } |
| |
| } |
| |
| /* Commands section */ |
| { |
| |
| } |
| |
| LOG_D( "Extension 'Dictionary definitions for rfc5777_avps (None)' initialized"); |
| return 0; |
| } |
| |
| int dict_entry(char * conffile) |
| { |
| dict_rfc5777_avps_load_defs(conffile); |
| return dict_rfc5777_avps_load_rules(conffile); |
| } |
| |
| const char* dict_rfc5777_avps_proto_ver(char * conffile) { |
| return rfc5777_avps_proto_ver; |
| } |
| |
| const double dict_rfc5777_avps_gen_ts(char * conffile) { |
| return rfc5777_avps_gen_date; |
| } |
| |
| EXTENSION_ENTRY2("dict_rfc5777_avps", dict_rfc5777_avps_load_defs, dict_rfc5777_avps_load_rules); |
| |
| |
| |