diff --git a/extensions/dict_rfc5777_avps/CMakeLists.txt b/extensions/dict_rfc5777_avps/CMakeLists.txt
new file mode 100644
index 0000000..d0573c4
--- /dev/null
+++ b/extensions/dict_rfc5777_avps/CMakeLists.txt
@@ -0,0 +1,16 @@
+# The dict_rfc5777_avps extension
+PROJECT("dict_rfc5777_avps library generated by FdGen " C)
+
+# Compile as a module
+FD_ADD_EXTENSION(dict_rfc5777_avps dict_rfc5777_avps.c)
+
+
+####
+## INSTALL section ##
+
+INSTALL(TARGETS dict_rfc5777_avps
+	LIBRARY DESTINATION ${INSTALL_EXTENSIONS_SUFFIX}
+COMPONENT freeDiameter-dictionary-RFC5777_AVPS)
+
+
+
diff --git a/extensions/dict_rfc5777_avps/dict_rfc5777_avps.c b/extensions/dict_rfc5777_avps/dict_rfc5777_avps.c
new file mode 100644
index 0000000..f287963
--- /dev/null
+++ b/extensions/dict_rfc5777_avps/dict_rfc5777_avps.c
@@ -0,0 +1,2077 @@
+/*
+* 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);
+
+
+
diff --git a/extensions/dict_rfc5777_avps/rfc5777_avps.did b/extensions/dict_rfc5777_avps/rfc5777_avps.did
new file mode 100644
index 0000000..d94dddb
--- /dev/null
+++ b/extensions/dict_rfc5777_avps/rfc5777_avps.did
@@ -0,0 +1 @@
+dict_rfc5777_avps
