]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#182, !128] Regen flex/bison 182-remove-always-include-fqdn-configuration-parameter-from-d2clientconfig
authorFrancis Dupont <fdupont@isc.org>
Tue, 20 Nov 2018 13:51:15 +0000 (13:51 +0000)
committerFrancis Dupont <fdupont@isc.org>
Tue, 20 Nov 2018 13:51:15 +0000 (13:51 +0000)
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/location.hh
src/bin/dhcp4/position.hh
src/bin/dhcp4/stack.hh
src/bin/dhcp6/dhcp6_parser.cc
src/bin/dhcp6/dhcp6_parser.h
src/bin/dhcp6/location.hh
src/bin/dhcp6/position.hh
src/bin/dhcp6/stack.hh

index 62965e768c6c68625d53f8a67d44699f01d53a31..3133a9312b1eed472cb9db8ac4172461a2782875 100644 (file)
@@ -245,30 +245,30 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 186: // value
-      case 190: // map_value
-      case 231: // socket_type
-      case 234: // outbound_interface_value
-      case 256: // db_type
-      case 338: // hr_mode
-      case 487: // ncr_protocol_value
-      case 495: // replace_client_name_value
+      case 185: // value
+      case 189: // map_value
+      case 230: // socket_type
+      case 233: // outbound_interface_value
+      case 255: // db_type
+      case 337: // hr_mode
+      case 486: // ncr_protocol_value
+      case 493: // replace_client_name_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 169: // "boolean"
+      case 168: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
         break;
 
-      case 168: // "floating point"
+      case 167: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
         break;
 
-      case 167: // "integer"
+      case 166: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 166: // "constant string"
+      case 165: // "constant string"
         value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
         break;
 
@@ -287,30 +287,30 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 186: // value
-      case 190: // map_value
-      case 231: // socket_type
-      case 234: // outbound_interface_value
-      case 256: // db_type
-      case 338: // hr_mode
-      case 487: // ncr_protocol_value
-      case 495: // replace_client_name_value
+      case 185: // value
+      case 189: // map_value
+      case 230: // socket_type
+      case 233: // outbound_interface_value
+      case 255: // db_type
+      case 337: // hr_mode
+      case 486: // ncr_protocol_value
+      case 493: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 169: // "boolean"
+      case 168: // "boolean"
         value.move< bool > (YY_MOVE (that.value));
         break;
 
-      case 168: // "floating point"
+      case 167: // "floating point"
         value.move< double > (YY_MOVE (that.value));
         break;
 
-      case 167: // "integer"
+      case 166: // "integer"
         value.move< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 166: // "constant string"
+      case 165: // "constant string"
         value.move< std::string > (YY_MOVE (that.value));
         break;
 
@@ -329,30 +329,30 @@ namespace isc { namespace dhcp {
     state = that.state;
     switch (that.type_get ())
     {
-      case 186: // value
-      case 190: // map_value
-      case 231: // socket_type
-      case 234: // outbound_interface_value
-      case 256: // db_type
-      case 338: // hr_mode
-      case 487: // ncr_protocol_value
-      case 495: // replace_client_name_value
+      case 185: // value
+      case 189: // map_value
+      case 230: // socket_type
+      case 233: // outbound_interface_value
+      case 255: // db_type
+      case 337: // hr_mode
+      case 486: // ncr_protocol_value
+      case 493: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 169: // "boolean"
+      case 168: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 168: // "floating point"
+      case 167: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 167: // "integer"
+      case 166: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 166: // "constant string"
+      case 165: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -393,86 +393,86 @@ namespace isc { namespace dhcp {
         << yysym.location << ": ";
     switch (yytype)
     {
-            case 166: // "constant string"
+            case 165: // "constant string"
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< std::string > (); }
 #line 401 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 167: // "integer"
+      case 166: // "integer"
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< int64_t > (); }
 #line 408 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 168: // "floating point"
+      case 167: // "floating point"
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< double > (); }
 #line 415 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 169: // "boolean"
+      case 168: // "boolean"
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< bool > (); }
 #line 422 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 186: // value
+      case 185: // value
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 429 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 190: // map_value
+      case 189: // map_value
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 436 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 231: // socket_type
+      case 230: // socket_type
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 443 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 234: // outbound_interface_value
+      case 233: // outbound_interface_value
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 450 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 256: // db_type
+      case 255: // db_type
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 457 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 338: // hr_mode
+      case 337: // hr_mode
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 464 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 487: // ncr_protocol_value
+      case 486: // ncr_protocol_value
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 471 "dhcp4_parser.cc" // lalr1.cc:672
         break;
 
-      case 495: // replace_client_name_value
+      case 493: // replace_client_name_value
 
-#line 246 "dhcp4_parser.yy" // lalr1.cc:672
+#line 245 "dhcp4_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 478 "dhcp4_parser.cc" // lalr1.cc:672
         break;
@@ -684,30 +684,30 @@ namespace isc { namespace dhcp {
          when using variants.  */
       switch (yyr1_[yyn])
     {
-      case 186: // value
-      case 190: // map_value
-      case 231: // socket_type
-      case 234: // outbound_interface_value
-      case 256: // db_type
-      case 338: // hr_mode
-      case 487: // ncr_protocol_value
-      case 495: // replace_client_name_value
+      case 185: // value
+      case 189: // map_value
+      case 230: // socket_type
+      case 233: // outbound_interface_value
+      case 255: // db_type
+      case 337: // hr_mode
+      case 486: // ncr_protocol_value
+      case 493: // replace_client_name_value
         yylhs.value.emplace< ElementPtr > ();
         break;
 
-      case 169: // "boolean"
+      case 168: // "boolean"
         yylhs.value.emplace< bool > ();
         break;
 
-      case 168: // "floating point"
+      case 167: // "floating point"
         yylhs.value.emplace< double > ();
         break;
 
-      case 167: // "integer"
+      case 166: // "integer"
         yylhs.value.emplace< int64_t > ();
         break;
 
-      case 166: // "constant string"
+      case 165: // "constant string"
         yylhs.value.emplace< std::string > ();
         break;
 
@@ -732,133 +732,133 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 255 "dhcp4_parser.yy" // lalr1.cc:907
+#line 254 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 738 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 4:
-#line 256 "dhcp4_parser.yy" // lalr1.cc:907
+#line 255 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.CONFIG; }
 #line 744 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 6:
-#line 257 "dhcp4_parser.yy" // lalr1.cc:907
+#line 256 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.DHCP4; }
 #line 750 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 8:
-#line 258 "dhcp4_parser.yy" // lalr1.cc:907
+#line 257 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 756 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 10:
-#line 259 "dhcp4_parser.yy" // lalr1.cc:907
+#line 258 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.SUBNET4; }
 #line 762 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 12:
-#line 260 "dhcp4_parser.yy" // lalr1.cc:907
+#line 259 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.POOLS; }
 #line 768 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 14:
-#line 261 "dhcp4_parser.yy" // lalr1.cc:907
+#line 260 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 774 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 16:
-#line 262 "dhcp4_parser.yy" // lalr1.cc:907
+#line 261 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.DHCP4; }
 #line 780 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 18:
-#line 263 "dhcp4_parser.yy" // lalr1.cc:907
+#line 262 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 786 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 20:
-#line 264 "dhcp4_parser.yy" // lalr1.cc:907
+#line 263 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 792 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 22:
-#line 265 "dhcp4_parser.yy" // lalr1.cc:907
+#line 264 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 798 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 24:
-#line 266 "dhcp4_parser.yy" // lalr1.cc:907
+#line 265 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 804 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 26:
-#line 267 "dhcp4_parser.yy" // lalr1.cc:907
+#line 266 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.LOGGING; }
 #line 810 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 28:
-#line 268 "dhcp4_parser.yy" // lalr1.cc:907
+#line 267 "dhcp4_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 816 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 30:
-#line 276 "dhcp4_parser.yy" // lalr1.cc:907
+#line 275 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
 #line 822 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 31:
-#line 277 "dhcp4_parser.yy" // lalr1.cc:907
+#line 276 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
 #line 828 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 32:
-#line 278 "dhcp4_parser.yy" // lalr1.cc:907
+#line 277 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
 #line 834 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 33:
-#line 279 "dhcp4_parser.yy" // lalr1.cc:907
+#line 278 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
 #line 840 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 34:
-#line 280 "dhcp4_parser.yy" // lalr1.cc:907
+#line 279 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 846 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 35:
-#line 281 "dhcp4_parser.yy" // lalr1.cc:907
+#line 280 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 852 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 36:
-#line 282 "dhcp4_parser.yy" // lalr1.cc:907
+#line 281 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 858 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 37:
-#line 285 "dhcp4_parser.yy" // lalr1.cc:907
+#line 284 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
@@ -867,7 +867,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 38:
-#line 290 "dhcp4_parser.yy" // lalr1.cc:907
+#line 289 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -878,7 +878,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 39:
-#line 295 "dhcp4_parser.yy" // lalr1.cc:907
+#line 294 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -888,13 +888,13 @@ namespace isc { namespace dhcp {
     break;
 
   case 40:
-#line 301 "dhcp4_parser.yy" // lalr1.cc:907
+#line 300 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 894 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 43:
-#line 308 "dhcp4_parser.yy" // lalr1.cc:907
+#line 307 "dhcp4_parser.yy" // lalr1.cc:907
     {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
@@ -903,7 +903,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 44:
-#line 312 "dhcp4_parser.yy" // lalr1.cc:907
+#line 311 "dhcp4_parser.yy" // lalr1.cc:907
     {
                   // map consisting of a shorter map followed by
                   // comma and string:value
@@ -913,7 +913,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 45:
-#line 319 "dhcp4_parser.yy" // lalr1.cc:907
+#line 318 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
@@ -922,7 +922,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 46:
-#line 322 "dhcp4_parser.yy" // lalr1.cc:907
+#line 321 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // list parsing complete. Put any sanity checking here
 }
@@ -930,7 +930,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 49:
-#line 330 "dhcp4_parser.yy" // lalr1.cc:907
+#line 329 "dhcp4_parser.yy" // lalr1.cc:907
     {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
@@ -939,7 +939,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 50:
-#line 334 "dhcp4_parser.yy" // lalr1.cc:907
+#line 333 "dhcp4_parser.yy" // lalr1.cc:907
     {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
@@ -948,7 +948,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 51:
-#line 341 "dhcp4_parser.yy" // lalr1.cc:907
+#line 340 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // List parsing about to start
 }
@@ -956,7 +956,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 52:
-#line 343 "dhcp4_parser.yy" // lalr1.cc:907
+#line 342 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
@@ -965,7 +965,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 55:
-#line 352 "dhcp4_parser.yy" // lalr1.cc:907
+#line 351 "dhcp4_parser.yy" // lalr1.cc:907
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -974,7 +974,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 56:
-#line 356 "dhcp4_parser.yy" // lalr1.cc:907
+#line 355 "dhcp4_parser.yy" // lalr1.cc:907
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -983,7 +983,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 57:
-#line 367 "dhcp4_parser.yy" // lalr1.cc:907
+#line 366 "dhcp4_parser.yy" // lalr1.cc:907
     {
     const std::string& where = ctx.contextName();
     const std::string& keyword = yystack_[1].value.as< std::string > ();
@@ -994,7 +994,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 58:
-#line 377 "dhcp4_parser.yy" // lalr1.cc:907
+#line 376 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1005,7 +1005,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 59:
-#line 382 "dhcp4_parser.yy" // lalr1.cc:907
+#line 381 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -1018,7 +1018,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 68:
-#line 406 "dhcp4_parser.yy" // lalr1.cc:907
+#line 405 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1031,7 +1031,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 69:
-#line 413 "dhcp4_parser.yy" // lalr1.cc:907
+#line 412 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1041,7 +1041,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 70:
-#line 421 "dhcp4_parser.yy" // lalr1.cc:907
+#line 420 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the Dhcp4 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1051,7 +1051,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 71:
-#line 425 "dhcp4_parser.yy" // lalr1.cc:907
+#line 424 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // No global parameter is required
     // parsing completed
@@ -1060,7 +1060,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 107:
-#line 471 "dhcp4_parser.yy" // lalr1.cc:907
+#line 470 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("valid-lifetime", prf);
@@ -1069,7 +1069,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 108:
-#line 476 "dhcp4_parser.yy" // lalr1.cc:907
+#line 475 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("renew-timer", prf);
@@ -1078,7 +1078,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 109:
-#line 481 "dhcp4_parser.yy" // lalr1.cc:907
+#line 480 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rebind-timer", prf);
@@ -1087,7 +1087,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 110:
-#line 486 "dhcp4_parser.yy" // lalr1.cc:907
+#line 485 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("decline-probation-period", dpp);
@@ -1096,7 +1096,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 111:
-#line 491 "dhcp4_parser.yy" // lalr1.cc:907
+#line 490 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1104,7 +1104,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 112:
-#line 493 "dhcp4_parser.yy" // lalr1.cc:907
+#line 492 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr stag(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-tag", stag);
@@ -1114,7 +1114,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 113:
-#line 499 "dhcp4_parser.yy" // lalr1.cc:907
+#line 498 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("echo-client-id", echo);
@@ -1123,7 +1123,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 114:
-#line 504 "dhcp4_parser.yy" // lalr1.cc:907
+#line 503 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("match-client-id", match);
@@ -1132,7 +1132,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 115:
-#line 509 "dhcp4_parser.yy" // lalr1.cc:907
+#line 508 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("authoritative", prf);
@@ -1141,7 +1141,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 116:
-#line 515 "dhcp4_parser.yy" // lalr1.cc:907
+#line 514 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces-config", i);
@@ -1152,7 +1152,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 117:
-#line 520 "dhcp4_parser.yy" // lalr1.cc:907
+#line 519 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
@@ -1162,7 +1162,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 127:
-#line 539 "dhcp4_parser.yy" // lalr1.cc:907
+#line 538 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1172,7 +1172,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 128:
-#line 543 "dhcp4_parser.yy" // lalr1.cc:907
+#line 542 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // No interfaces config param is required
     // parsing completed
@@ -1181,7 +1181,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 129:
-#line 548 "dhcp4_parser.yy" // lalr1.cc:907
+#line 547 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces", l);
@@ -1192,7 +1192,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 130:
-#line 553 "dhcp4_parser.yy" // lalr1.cc:907
+#line 552 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1201,7 +1201,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 131:
-#line 558 "dhcp4_parser.yy" // lalr1.cc:907
+#line 557 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.DHCP_SOCKET_TYPE);
 }
@@ -1209,7 +1209,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 132:
-#line 560 "dhcp4_parser.yy" // lalr1.cc:907
+#line 559 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -1218,19 +1218,19 @@ namespace isc { namespace dhcp {
     break;
 
   case 133:
-#line 565 "dhcp4_parser.yy" // lalr1.cc:907
+#line 564 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
 #line 1224 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 134:
-#line 566 "dhcp4_parser.yy" // lalr1.cc:907
+#line 565 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
 #line 1230 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 135:
-#line 569 "dhcp4_parser.yy" // lalr1.cc:907
+#line 568 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.OUTBOUND_INTERFACE);
 }
@@ -1238,7 +1238,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 136:
-#line 571 "dhcp4_parser.yy" // lalr1.cc:907
+#line 570 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -1247,7 +1247,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 137:
-#line 576 "dhcp4_parser.yy" // lalr1.cc:907
+#line 575 "dhcp4_parser.yy" // lalr1.cc:907
     {
     yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location)));
 }
@@ -1255,7 +1255,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 138:
-#line 578 "dhcp4_parser.yy" // lalr1.cc:907
+#line 577 "dhcp4_parser.yy" // lalr1.cc:907
     {
     yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location)));
     }
@@ -1263,7 +1263,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 139:
-#line 582 "dhcp4_parser.yy" // lalr1.cc:907
+#line 581 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
@@ -1272,7 +1272,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 140:
-#line 588 "dhcp4_parser.yy" // lalr1.cc:907
+#line 587 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lease-database", i);
@@ -1283,7 +1283,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 141:
-#line 593 "dhcp4_parser.yy" // lalr1.cc:907
+#line 592 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1294,7 +1294,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 142:
-#line 600 "dhcp4_parser.yy" // lalr1.cc:907
+#line 599 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sanity-checks", m);
@@ -1305,7 +1305,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 143:
-#line 605 "dhcp4_parser.yy" // lalr1.cc:907
+#line 604 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1314,7 +1314,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 147:
-#line 615 "dhcp4_parser.yy" // lalr1.cc:907
+#line 614 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1322,7 +1322,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 148:
-#line 617 "dhcp4_parser.yy" // lalr1.cc:907
+#line 616 "dhcp4_parser.yy" // lalr1.cc:907
     {
 
     if ( (string(yystack_[0].value.as< std::string > ()) == "none") ||
@@ -1342,7 +1342,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 149:
-#line 633 "dhcp4_parser.yy" // lalr1.cc:907
+#line 632 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-database", i);
@@ -1353,7 +1353,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 150:
-#line 638 "dhcp4_parser.yy" // lalr1.cc:907
+#line 637 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1364,7 +1364,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 151:
-#line 645 "dhcp4_parser.yy" // lalr1.cc:907
+#line 644 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-databases", l);
@@ -1375,7 +1375,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 152:
-#line 650 "dhcp4_parser.yy" // lalr1.cc:907
+#line 649 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1384,7 +1384,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 157:
-#line 663 "dhcp4_parser.yy" // lalr1.cc:907
+#line 662 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1394,7 +1394,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 158:
-#line 667 "dhcp4_parser.yy" // lalr1.cc:907
+#line 666 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1404,7 +1404,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 179:
-#line 697 "dhcp4_parser.yy" // lalr1.cc:907
+#line 696 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
@@ -1412,7 +1412,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 180:
-#line 699 "dhcp4_parser.yy" // lalr1.cc:907
+#line 698 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -1421,31 +1421,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 181:
-#line 704 "dhcp4_parser.yy" // lalr1.cc:907
+#line 703 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
 #line 1427 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 182:
-#line 705 "dhcp4_parser.yy" // lalr1.cc:907
+#line 704 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
 #line 1433 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 183:
-#line 706 "dhcp4_parser.yy" // lalr1.cc:907
+#line 705 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
 #line 1439 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 184:
-#line 707 "dhcp4_parser.yy" // lalr1.cc:907
+#line 706 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
 #line 1445 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 185:
-#line 710 "dhcp4_parser.yy" // lalr1.cc:907
+#line 709 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1453,7 +1453,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 186:
-#line 712 "dhcp4_parser.yy" // lalr1.cc:907
+#line 711 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("user", user);
@@ -1463,7 +1463,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 187:
-#line 718 "dhcp4_parser.yy" // lalr1.cc:907
+#line 717 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1471,7 +1471,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 188:
-#line 720 "dhcp4_parser.yy" // lalr1.cc:907
+#line 719 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("password", pwd);
@@ -1481,7 +1481,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 189:
-#line 726 "dhcp4_parser.yy" // lalr1.cc:907
+#line 725 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1489,7 +1489,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 190:
-#line 728 "dhcp4_parser.yy" // lalr1.cc:907
+#line 727 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host", h);
@@ -1499,7 +1499,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 191:
-#line 734 "dhcp4_parser.yy" // lalr1.cc:907
+#line 733 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
@@ -1508,7 +1508,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 192:
-#line 739 "dhcp4_parser.yy" // lalr1.cc:907
+#line 738 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1516,7 +1516,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 193:
-#line 741 "dhcp4_parser.yy" // lalr1.cc:907
+#line 740 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("name", name);
@@ -1526,7 +1526,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 194:
-#line 747 "dhcp4_parser.yy" // lalr1.cc:907
+#line 746 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
@@ -1535,7 +1535,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 195:
-#line 752 "dhcp4_parser.yy" // lalr1.cc:907
+#line 751 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
@@ -1544,7 +1544,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 196:
-#line 757 "dhcp4_parser.yy" // lalr1.cc:907
+#line 756 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
@@ -1553,7 +1553,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 197:
-#line 762 "dhcp4_parser.yy" // lalr1.cc:907
+#line 761 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
@@ -1562,7 +1562,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 198:
-#line 767 "dhcp4_parser.yy" // lalr1.cc:907
+#line 766 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("request-timeout", n);
@@ -1571,7 +1571,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 199:
-#line 772 "dhcp4_parser.yy" // lalr1.cc:907
+#line 771 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-keepalive", n);
@@ -1580,7 +1580,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 200:
-#line 777 "dhcp4_parser.yy" // lalr1.cc:907
+#line 776 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-nodelay", n);
@@ -1589,7 +1589,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 201:
-#line 782 "dhcp4_parser.yy" // lalr1.cc:907
+#line 781 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1597,7 +1597,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 202:
-#line 784 "dhcp4_parser.yy" // lalr1.cc:907
+#line 783 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("contact-points", cp);
@@ -1607,7 +1607,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 203:
-#line 790 "dhcp4_parser.yy" // lalr1.cc:907
+#line 789 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1615,7 +1615,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 204:
-#line 792 "dhcp4_parser.yy" // lalr1.cc:907
+#line 791 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("keyspace", ks);
@@ -1625,7 +1625,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 205:
-#line 798 "dhcp4_parser.yy" // lalr1.cc:907
+#line 797 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reconnect-tries", n);
@@ -1634,7 +1634,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 206:
-#line 803 "dhcp4_parser.yy" // lalr1.cc:907
+#line 802 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reconnect-wait-time", n);
@@ -1643,7 +1643,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 207:
-#line 808 "dhcp4_parser.yy" // lalr1.cc:907
+#line 807 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host-reservation-identifiers", l);
@@ -1654,7 +1654,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 208:
-#line 813 "dhcp4_parser.yy" // lalr1.cc:907
+#line 812 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1663,7 +1663,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 216:
-#line 829 "dhcp4_parser.yy" // lalr1.cc:907
+#line 828 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -1672,7 +1672,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 217:
-#line 834 "dhcp4_parser.yy" // lalr1.cc:907
+#line 833 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
@@ -1681,7 +1681,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 218:
-#line 839 "dhcp4_parser.yy" // lalr1.cc:907
+#line 838 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(circuit);
@@ -1690,7 +1690,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 219:
-#line 844 "dhcp4_parser.yy" // lalr1.cc:907
+#line 843 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(client);
@@ -1699,7 +1699,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 220:
-#line 849 "dhcp4_parser.yy" // lalr1.cc:907
+#line 848 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
@@ -1708,7 +1708,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 221:
-#line 854 "dhcp4_parser.yy" // lalr1.cc:907
+#line 853 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hooks-libraries", l);
@@ -1719,7 +1719,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 222:
-#line 859 "dhcp4_parser.yy" // lalr1.cc:907
+#line 858 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1728,7 +1728,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 227:
-#line 872 "dhcp4_parser.yy" // lalr1.cc:907
+#line 871 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1738,7 +1738,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 228:
-#line 876 "dhcp4_parser.yy" // lalr1.cc:907
+#line 875 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1748,7 +1748,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 229:
-#line 882 "dhcp4_parser.yy" // lalr1.cc:907
+#line 881 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the hooks-libraries list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1758,7 +1758,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 230:
-#line 886 "dhcp4_parser.yy" // lalr1.cc:907
+#line 885 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1768,7 +1768,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 236:
-#line 901 "dhcp4_parser.yy" // lalr1.cc:907
+#line 900 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1776,7 +1776,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 237:
-#line 903 "dhcp4_parser.yy" // lalr1.cc:907
+#line 902 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("library", lib);
@@ -1786,7 +1786,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 238:
-#line 909 "dhcp4_parser.yy" // lalr1.cc:907
+#line 908 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1794,7 +1794,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 239:
-#line 911 "dhcp4_parser.yy" // lalr1.cc:907
+#line 910 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -1803,7 +1803,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 240:
-#line 917 "dhcp4_parser.yy" // lalr1.cc:907
+#line 916 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("expired-leases-processing", m);
@@ -1814,7 +1814,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 241:
-#line 922 "dhcp4_parser.yy" // lalr1.cc:907
+#line 921 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
@@ -1824,7 +1824,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 250:
-#line 940 "dhcp4_parser.yy" // lalr1.cc:907
+#line 939 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reclaim-timer-wait-time", value);
@@ -1833,7 +1833,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 251:
-#line 945 "dhcp4_parser.yy" // lalr1.cc:907
+#line 944 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value);
@@ -1842,7 +1842,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 252:
-#line 950 "dhcp4_parser.yy" // lalr1.cc:907
+#line 949 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
@@ -1851,7 +1851,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 253:
-#line 955 "dhcp4_parser.yy" // lalr1.cc:907
+#line 954 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
@@ -1860,7 +1860,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 254:
-#line 960 "dhcp4_parser.yy" // lalr1.cc:907
+#line 959 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
@@ -1869,7 +1869,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 255:
-#line 965 "dhcp4_parser.yy" // lalr1.cc:907
+#line 964 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
@@ -1878,7 +1878,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 256:
-#line 973 "dhcp4_parser.yy" // lalr1.cc:907
+#line 972 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet4", l);
@@ -1889,7 +1889,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 257:
-#line 978 "dhcp4_parser.yy" // lalr1.cc:907
+#line 977 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1898,7 +1898,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 262:
-#line 998 "dhcp4_parser.yy" // lalr1.cc:907
+#line 997 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1908,7 +1908,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 263:
-#line 1002 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1001 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -1934,7 +1934,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 264:
-#line 1024 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1023 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the subnet4 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1944,7 +1944,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 265:
-#line 1028 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1027 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The subnet subnet4 parameter is required
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1954,7 +1954,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 292:
-#line 1066 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1065 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1962,7 +1962,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 293:
-#line 1068 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1067 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
@@ -1972,7 +1972,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 294:
-#line 1074 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1073 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1980,7 +1980,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 295:
-#line 1076 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1075 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-interface", iface);
@@ -1990,7 +1990,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 296:
-#line 1082 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1081 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1998,7 +1998,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 297:
-#line 1084 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1083 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-interface-id", iface);
@@ -2008,7 +2008,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 298:
-#line 1090 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1089 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2016,7 +2016,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 299:
-#line 1092 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1091 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("4o6-subnet", iface);
@@ -2026,7 +2026,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 300:
-#line 1098 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1097 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2034,7 +2034,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 301:
-#line 1100 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1099 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
@@ -2044,7 +2044,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 302:
-#line 1106 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1105 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2052,7 +2052,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 303:
-#line 1108 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1107 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-class", cls);
@@ -2062,7 +2062,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 304:
-#line 1114 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1113 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("require-client-classes", c);
@@ -2073,7 +2073,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 305:
-#line 1119 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1118 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2082,7 +2082,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 306:
-#line 1124 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1123 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
@@ -2090,7 +2090,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 307:
-#line 1126 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1125 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -2099,31 +2099,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 308:
-#line 1131 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1130 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
 #line 2105 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 309:
-#line 1132 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1131 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
 #line 2111 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 310:
-#line 1133 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1132 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
 #line 2117 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 311:
-#line 1134 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1133 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
 #line 2123 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
   case 312:
-#line 1137 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1136 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
@@ -2132,7 +2132,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 313:
-#line 1144 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1143 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("shared-networks", l);
@@ -2143,7 +2143,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 314:
-#line 1149 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1148 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2152,7 +2152,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 319:
-#line 1164 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1163 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2162,7 +2162,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 320:
-#line 1168 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1167 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
 }
@@ -2170,7 +2170,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 342:
-#line 1201 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1200 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-def", l);
@@ -2181,7 +2181,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 343:
-#line 1206 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1205 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2190,7 +2190,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 344:
-#line 1214 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1213 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
@@ -2199,7 +2199,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 345:
-#line 1217 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1216 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // parsing completed
 }
@@ -2207,7 +2207,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 350:
-#line 1233 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1232 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2217,7 +2217,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 351:
-#line 1237 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1236 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2229,7 +2229,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 352:
-#line 1248 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1247 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2239,7 +2239,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 353:
-#line 1252 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1251 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2251,7 +2251,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 369:
-#line 1284 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1283 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
@@ -2260,7 +2260,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 371:
-#line 1291 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1290 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2268,7 +2268,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 372:
-#line 1293 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1292 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
@@ -2278,7 +2278,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 373:
-#line 1299 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1298 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2286,7 +2286,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 374:
-#line 1301 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1300 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("record-types", rtypes);
@@ -2296,7 +2296,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 375:
-#line 1307 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1306 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2304,7 +2304,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 376:
-#line 1309 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1308 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
@@ -2314,7 +2314,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 378:
-#line 1317 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1316 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2322,7 +2322,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 379:
-#line 1319 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1318 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
@@ -2332,7 +2332,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 380:
-#line 1325 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1324 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
@@ -2341,7 +2341,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 381:
-#line 1334 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1333 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-data", l);
@@ -2352,7 +2352,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 382:
-#line 1339 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1338 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2361,7 +2361,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 387:
-#line 1358 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1357 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2371,7 +2371,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 388:
-#line 1362 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1361 "dhcp4_parser.yy" // lalr1.cc:907
     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
@@ -2380,7 +2380,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 389:
-#line 1370 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1369 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2390,7 +2390,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 390:
-#line 1374 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1373 "dhcp4_parser.yy" // lalr1.cc:907
     {
     /// @todo: the code or name parameters are required.
     // parsing completed
@@ -2399,7 +2399,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 405:
-#line 1407 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1406 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2407,7 +2407,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 406:
-#line 1409 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1408 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
@@ -2417,7 +2417,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 409:
-#line 1419 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1418 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
@@ -2426,7 +2426,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 410:
-#line 1424 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1423 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
@@ -2435,7 +2435,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 411:
-#line 1432 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1431 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pools", l);
@@ -2446,7 +2446,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 412:
-#line 1437 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1436 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2455,7 +2455,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 417:
-#line 1452 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1451 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2465,7 +2465,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 418:
-#line 1456 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1455 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2475,7 +2475,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 419:
-#line 1462 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1461 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2485,7 +2485,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 420:
-#line 1466 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1465 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2495,7 +2495,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 430:
-#line 1485 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1484 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2503,7 +2503,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 431:
-#line 1487 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1486 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
@@ -2513,7 +2513,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 432:
-#line 1493 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1492 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2521,7 +2521,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 433:
-#line 1495 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1494 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as< ElementPtr > ();
@@ -2548,7 +2548,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 434:
-#line 1518 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1517 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2556,7 +2556,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 435:
-#line 1520 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1519 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2585,7 +2585,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 436:
-#line 1548 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1547 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reservations", l);
@@ -2596,7 +2596,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 437:
-#line 1553 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1552 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2605,7 +2605,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 442:
-#line 1566 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1565 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2615,7 +2615,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 443:
-#line 1570 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1569 "dhcp4_parser.yy" // lalr1.cc:907
     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
@@ -2624,7 +2624,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 444:
-#line 1575 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1574 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2634,7 +2634,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 445:
-#line 1579 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1578 "dhcp4_parser.yy" // lalr1.cc:907
     {
     /// @todo: an identifier parameter is required.
     // parsing completed
@@ -2643,7 +2643,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 465:
-#line 1610 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1609 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2651,7 +2651,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 466:
-#line 1612 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1611 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr next_server(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("next-server", next_server);
@@ -2661,7 +2661,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 467:
-#line 1618 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1617 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2669,7 +2669,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 468:
-#line 1620 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1619 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr srv(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-hostname", srv);
@@ -2679,7 +2679,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 469:
-#line 1626 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1625 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2687,7 +2687,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 470:
-#line 1628 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1627 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr bootfile(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("boot-file-name", bootfile);
@@ -2697,7 +2697,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 471:
-#line 1634 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1633 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2705,7 +2705,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 472:
-#line 1636 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1635 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-address", addr);
@@ -2715,7 +2715,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 473:
-#line 1642 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1641 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-addresses", l);
@@ -2726,7 +2726,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 474:
-#line 1647 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1646 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2735,7 +2735,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 475:
-#line 1652 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1651 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2743,7 +2743,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 476:
-#line 1654 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1653 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
@@ -2753,7 +2753,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 477:
-#line 1660 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1659 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2761,7 +2761,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 478:
-#line 1662 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1661 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hw-address", hw);
@@ -2771,7 +2771,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 479:
-#line 1668 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1667 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2779,7 +2779,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 480:
-#line 1670 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1669 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-id", hw);
@@ -2789,7 +2789,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 481:
-#line 1676 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1675 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2797,7 +2797,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 482:
-#line 1678 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1677 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("circuit-id", hw);
@@ -2807,7 +2807,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 483:
-#line 1684 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1683 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2815,7 +2815,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 484:
-#line 1686 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1685 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flex-id", hw);
@@ -2825,7 +2825,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 485:
-#line 1692 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1691 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2833,7 +2833,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 486:
-#line 1694 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1693 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
@@ -2843,7 +2843,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 487:
-#line 1700 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1699 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", c);
@@ -2854,7 +2854,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 488:
-#line 1705 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1704 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2863,7 +2863,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 489:
-#line 1713 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1712 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay", m);
@@ -2874,7 +2874,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 490:
-#line 1718 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1717 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2883,7 +2883,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 493:
-#line 1730 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1729 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", l);
@@ -2894,7 +2894,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 494:
-#line 1735 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1734 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2903,7 +2903,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 497:
-#line 1744 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1743 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2913,7 +2913,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 498:
-#line 1748 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1747 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2923,7 +2923,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 515:
-#line 1777 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1776 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2931,7 +2931,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 516:
-#line 1779 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1778 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
@@ -2941,7 +2941,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 517:
-#line 1785 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1784 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
@@ -2950,7 +2950,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 518:
-#line 1794 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1793 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
@@ -2959,7 +2959,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 519:
-#line 1801 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1800 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("control-socket", m);
@@ -2970,7 +2970,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 520:
-#line 1806 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1805 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2979,7 +2979,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 528:
-#line 1822 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1821 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2987,7 +2987,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 529:
-#line 1824 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1823 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
@@ -2997,7 +2997,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 530:
-#line 1830 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1829 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3005,7 +3005,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 531:
-#line 1832 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1831 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
@@ -3015,7 +3015,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 532:
-#line 1841 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1840 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3023,7 +3023,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 533:
-#line 1843 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1842 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr qc = yystack_[0].value.as< ElementPtr > ();
     ctx.stack_.back()->set("dhcp-queue-control", qc);
@@ -3041,7 +3041,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 534:
-#line 1859 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1858 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
@@ -3052,7 +3052,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 535:
-#line 1864 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1863 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3063,7 +3063,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 536:
-#line 1871 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1870 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3073,7 +3073,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 537:
-#line 1875 "dhcp4_parser.yy" // lalr1.cc:907
+#line 1874 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3082,8 +3082,8 @@ namespace isc { namespace dhcp {
 #line 3083 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 559:
-#line 1906 "dhcp4_parser.yy" // lalr1.cc:907
+  case 558:
+#line 1904 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
@@ -3091,16 +3091,16 @@ namespace isc { namespace dhcp {
 #line 3092 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 560:
-#line 1911 "dhcp4_parser.yy" // lalr1.cc:907
+  case 559:
+#line 1909 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 3100 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 561:
-#line 1913 "dhcp4_parser.yy" // lalr1.cc:907
+  case 560:
+#line 1911 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
@@ -3109,16 +3109,16 @@ namespace isc { namespace dhcp {
 #line 3110 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 562:
-#line 1919 "dhcp4_parser.yy" // lalr1.cc:907
+  case 561:
+#line 1917 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 3118 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 563:
-#line 1921 "dhcp4_parser.yy" // lalr1.cc:907
+  case 562:
+#line 1919 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
@@ -3127,8 +3127,8 @@ namespace isc { namespace dhcp {
 #line 3128 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 564:
-#line 1927 "dhcp4_parser.yy" // lalr1.cc:907
+  case 563:
+#line 1925 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
@@ -3136,16 +3136,16 @@ namespace isc { namespace dhcp {
 #line 3137 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 565:
-#line 1932 "dhcp4_parser.yy" // lalr1.cc:907
+  case 564:
+#line 1930 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 3145 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 566:
-#line 1934 "dhcp4_parser.yy" // lalr1.cc:907
+  case 565:
+#line 1932 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
@@ -3154,8 +3154,8 @@ namespace isc { namespace dhcp {
 #line 3155 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 567:
-#line 1940 "dhcp4_parser.yy" // lalr1.cc:907
+  case 566:
+#line 1938 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
@@ -3163,8 +3163,8 @@ namespace isc { namespace dhcp {
 #line 3164 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 568:
-#line 1945 "dhcp4_parser.yy" // lalr1.cc:907
+  case 567:
+#line 1943 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
@@ -3172,16 +3172,16 @@ namespace isc { namespace dhcp {
 #line 3173 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 569:
-#line 1950 "dhcp4_parser.yy" // lalr1.cc:907
+  case 568:
+#line 1948 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
 #line 3181 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 570:
-#line 1952 "dhcp4_parser.yy" // lalr1.cc:907
+  case 569:
+#line 1950 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3189,28 +3189,28 @@ namespace isc { namespace dhcp {
 #line 3190 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 571:
-#line 1958 "dhcp4_parser.yy" // lalr1.cc:907
+  case 570:
+#line 1956 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 3196 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 572:
-#line 1959 "dhcp4_parser.yy" // lalr1.cc:907
+  case 571:
+#line 1957 "dhcp4_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 3202 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 573:
-#line 1962 "dhcp4_parser.yy" // lalr1.cc:907
+  case 572:
+#line 1960 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
 #line 3210 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 574:
-#line 1964 "dhcp4_parser.yy" // lalr1.cc:907
+  case 573:
+#line 1962 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -3219,462 +3219,453 @@ namespace isc { namespace dhcp {
 #line 3220 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 575:
-#line 1970 "dhcp4_parser.yy" // lalr1.cc:907
-    {
-    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("always-include-fqdn", b);
-}
-#line 3229 "dhcp4_parser.cc" // lalr1.cc:907
-    break;
-
-  case 576:
-#line 1975 "dhcp4_parser.yy" // lalr1.cc:907
+  case 574:
+#line 1968 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 3238 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3229 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 577:
-#line 1980 "dhcp4_parser.yy" // lalr1.cc:907
+  case 575:
+#line 1973 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 3247 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3238 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 578:
-#line 1985 "dhcp4_parser.yy" // lalr1.cc:907
+  case 576:
+#line 1978 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3255 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3246 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 579:
-#line 1987 "dhcp4_parser.yy" // lalr1.cc:907
+  case 577:
+#line 1980 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3264 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3255 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 580:
-#line 1993 "dhcp4_parser.yy" // lalr1.cc:907
+  case 578:
+#line 1986 "dhcp4_parser.yy" // lalr1.cc:907
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3272 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3263 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 581:
-#line 1996 "dhcp4_parser.yy" // lalr1.cc:907
+  case 579:
+#line 1989 "dhcp4_parser.yy" // lalr1.cc:907
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3280 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3271 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 582:
-#line 1999 "dhcp4_parser.yy" // lalr1.cc:907
+  case 580:
+#line 1992 "dhcp4_parser.yy" // lalr1.cc:907
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3288 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3279 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 583:
-#line 2002 "dhcp4_parser.yy" // lalr1.cc:907
+  case 581:
+#line 1995 "dhcp4_parser.yy" // lalr1.cc:907
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3296 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3287 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 584:
-#line 2005 "dhcp4_parser.yy" // lalr1.cc:907
+  case 582:
+#line 1998 "dhcp4_parser.yy" // lalr1.cc:907
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3305 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3296 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 585:
-#line 2011 "dhcp4_parser.yy" // lalr1.cc:907
+  case 583:
+#line 2004 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3313 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3304 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 586:
-#line 2013 "dhcp4_parser.yy" // lalr1.cc:907
+  case 584:
+#line 2006 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3323 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3314 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 587:
-#line 2019 "dhcp4_parser.yy" // lalr1.cc:907
+  case 585:
+#line 2012 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3331 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3322 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 588:
-#line 2021 "dhcp4_parser.yy" // lalr1.cc:907
+  case 586:
+#line 2014 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
     ctx.leave();
 }
-#line 3341 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3332 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 589:
-#line 2027 "dhcp4_parser.yy" // lalr1.cc:907
+  case 587:
+#line 2020 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3349 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3340 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 590:
-#line 2029 "dhcp4_parser.yy" // lalr1.cc:907
+  case 588:
+#line 2022 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
     ctx.leave();
 }
-#line 3359 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3350 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 591:
-#line 2038 "dhcp4_parser.yy" // lalr1.cc:907
+  case 589:
+#line 2031 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3367 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3358 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 592:
-#line 2040 "dhcp4_parser.yy" // lalr1.cc:907
+  case 590:
+#line 2033 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3376 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3367 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 593:
-#line 2045 "dhcp4_parser.yy" // lalr1.cc:907
+  case 591:
+#line 2038 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3384 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3375 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 594:
-#line 2047 "dhcp4_parser.yy" // lalr1.cc:907
+  case 592:
+#line 2040 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3393 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3384 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 595:
-#line 2052 "dhcp4_parser.yy" // lalr1.cc:907
+  case 593:
+#line 2045 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3401 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3392 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 596:
-#line 2054 "dhcp4_parser.yy" // lalr1.cc:907
+  case 594:
+#line 2047 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3410 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3401 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 597:
-#line 2059 "dhcp4_parser.yy" // lalr1.cc:907
+  case 595:
+#line 2052 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3420 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3411 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 598:
-#line 2063 "dhcp4_parser.yy" // lalr1.cc:907
+  case 596:
+#line 2056 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
 }
-#line 3428 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3419 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 599:
-#line 2068 "dhcp4_parser.yy" // lalr1.cc:907
+  case 597:
+#line 2061 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-control", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.CONFIG_CONTROL);
 }
-#line 3439 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3430 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 600:
-#line 2073 "dhcp4_parser.yy" // lalr1.cc:907
+  case 598:
+#line 2066 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3449 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3440 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 601:
-#line 2079 "dhcp4_parser.yy" // lalr1.cc:907
+  case 599:
+#line 2072 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3459 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3450 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 602:
-#line 2083 "dhcp4_parser.yy" // lalr1.cc:907
+  case 600:
+#line 2076 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // No config_control params are required
     // parsing completed
 }
-#line 3468 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3459 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 607:
-#line 2098 "dhcp4_parser.yy" // lalr1.cc:907
+  case 605:
+#line 2091 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CONFIG_DATABASE);
 }
-#line 3479 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3470 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 608:
-#line 2103 "dhcp4_parser.yy" // lalr1.cc:907
+  case 606:
+#line 2096 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3488 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3479 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 609:
-#line 2113 "dhcp4_parser.yy" // lalr1.cc:907
+  case 607:
+#line 2106 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Logging", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.LOGGING);
 }
-#line 3499 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3490 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 610:
-#line 2118 "dhcp4_parser.yy" // lalr1.cc:907
+  case 608:
+#line 2111 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3508 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3499 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 611:
-#line 2123 "dhcp4_parser.yy" // lalr1.cc:907
+  case 609:
+#line 2116 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3518 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3509 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 612:
-#line 2127 "dhcp4_parser.yy" // lalr1.cc:907
+  case 610:
+#line 2120 "dhcp4_parser.yy" // lalr1.cc:907
     {
     // parsing completed
 }
-#line 3526 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3517 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 616:
-#line 2143 "dhcp4_parser.yy" // lalr1.cc:907
+  case 614:
+#line 2136 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("loggers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.LOGGERS);
 }
-#line 3537 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3528 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 617:
-#line 2148 "dhcp4_parser.yy" // lalr1.cc:907
+  case 615:
+#line 2141 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3546 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3537 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 620:
-#line 2160 "dhcp4_parser.yy" // lalr1.cc:907
+  case 618:
+#line 2153 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3556 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3547 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 621:
-#line 2164 "dhcp4_parser.yy" // lalr1.cc:907
+  case 619:
+#line 2157 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
 }
-#line 3564 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3555 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 631:
-#line 2181 "dhcp4_parser.yy" // lalr1.cc:907
+  case 629:
+#line 2174 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 3573 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3564 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 632:
-#line 2186 "dhcp4_parser.yy" // lalr1.cc:907
+  case 630:
+#line 2179 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3581 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3572 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 633:
-#line 2188 "dhcp4_parser.yy" // lalr1.cc:907
+  case 631:
+#line 2181 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
     ctx.leave();
 }
-#line 3591 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3582 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 634:
-#line 2194 "dhcp4_parser.yy" // lalr1.cc:907
+  case 632:
+#line 2187 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output_options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OUTPUT_OPTIONS);
 }
-#line 3602 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3593 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 635:
-#line 2199 "dhcp4_parser.yy" // lalr1.cc:907
+  case 633:
+#line 2192 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3611 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3602 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 638:
-#line 2208 "dhcp4_parser.yy" // lalr1.cc:907
+  case 636:
+#line 2201 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3621 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3612 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 639:
-#line 2212 "dhcp4_parser.yy" // lalr1.cc:907
+  case 637:
+#line 2205 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
 }
-#line 3629 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3620 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 646:
-#line 2226 "dhcp4_parser.yy" // lalr1.cc:907
+  case 644:
+#line 2219 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3637 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3628 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 647:
-#line 2228 "dhcp4_parser.yy" // lalr1.cc:907
+  case 645:
+#line 2221 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
     ctx.leave();
 }
-#line 3647 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3638 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 648:
-#line 2234 "dhcp4_parser.yy" // lalr1.cc:907
+  case 646:
+#line 2227 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3656 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3647 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 649:
-#line 2239 "dhcp4_parser.yy" // lalr1.cc:907
+  case 647:
+#line 2232 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 3665 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3656 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
-  case 650:
-#line 2244 "dhcp4_parser.yy" // lalr1.cc:907
+  case 648:
+#line 2237 "dhcp4_parser.yy" // lalr1.cc:907
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 3674 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3665 "dhcp4_parser.cc" // lalr1.cc:907
     break;
 
 
-#line 3678 "dhcp4_parser.cc" // lalr1.cc:907
+#line 3669 "dhcp4_parser.cc" // lalr1.cc:907
             default:
               break;
             }
@@ -3932,118 +3923,118 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp4Parser::yypact_ninf_ = -795;
+  const short Dhcp4Parser::yypact_ninf_ = -808;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp4Parser::yypact_[] =
   {
-     428,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,    38,    24,    42,   106,   143,
-     149,   158,   162,   173,   196,   198,   206,   213,   223,   234,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,    24,  -101,
-      13,    65,    84,   147,   -17,   229,    53,   402,    68,   -56,
-     363,    46,    20,  -795,   190,   245,   247,   255,   266,  -795,
-    -795,  -795,  -795,  -795,   271,  -795,   101,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,   272,   274,   275,
-    -795,  -795,  -795,  -795,  -795,  -795,   283,   287,   297,   304,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,   307,  -795,  -795,  -795,  -795,   108,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,   314,  -795,   109,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-     317,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,   121,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,   122,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,   282,   333,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,   292,  -795,  -795,
-     345,  -795,  -795,  -795,   352,  -795,  -795,   329,   357,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,   360,   361,  -795,  -795,  -795,  -795,   359,   365,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,   123,  -795,  -795,  -795,   371,  -795,  -795,   373,
-    -795,   374,   377,  -795,  -795,   380,   381,   383,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,   140,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,   151,  -795,  -795,  -795,  -795,   163,
-    -795,  -795,  -795,    24,    24,  -795,   228,   394,   396,   397,
-     400,   401,  -795,    13,  -795,    20,   403,   408,   410,   249,
-     250,   253,   419,   422,   423,   424,   426,   429,   265,   276,
-     277,   278,   437,   438,   443,   444,   445,   463,   466,   467,
-     471,   472,   476,   491,   331,   492,   493,   495,    65,  -795,
-     496,   499,   500,   336,    84,  -795,   502,   503,   504,   505,
-     506,   507,   347,   508,   512,   513,   514,   147,  -795,   515,
-     -17,  -795,   517,   518,   519,   520,   523,   524,   526,   527,
-    -795,   229,  -795,   529,   530,   368,   532,   533,   535,   375,
-    -795,   402,   536,   376,   378,  -795,    68,   538,   542,    -3,
-    -795,   379,   545,   546,   384,   550,   389,   390,   554,   555,
-     391,   392,   393,   559,   560,   561,   562,   363,  -795,   563,
-      46,  -795,   565,    20,  -795,  -795,  -795,   566,   564,   567,
-      24,    24,    24,  -795,   180,   569,   570,   571,  -795,  -795,
-    -795,   406,   430,   431,   587,   588,   593,  -795,  -795,  -795,
-    -795,   433,   595,   596,   597,   598,   599,   439,   602,   603,
-     604,   605,   606,  -795,   607,   599,   608,  -795,   611,   195,
-     120,  -795,  -795,   446,   451,   452,   614,   454,   455,  -795,
-     269,   611,   456,   616,  -795,   458,  -795,   611,   459,   460,
-     461,   462,   464,   465,   468,  -795,   469,   470,  -795,   473,
-     474,   475,  -795,  -795,   477,  -795,  -795,  -795,   478,    24,
-    -795,  -795,   479,   480,  -795,   481,  -795,  -795,    36,   509,
-    -795,  -795,  -795,   -55,   482,   483,   484,  -795,   624,  -795,
-     627,  -795,    24,    65,    46,  -795,  -795,  -795,  -795,    20,
-      84,   581,  -795,  -795,  -795,   413,   413,   626,  -795,   630,
-     631,   644,   645,  -795,  -795,  -795,   -10,   646,   647,   648,
-     175,    70,  -795,   363,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,   649,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,   171,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   650,
-     626,  -795,   186,   201,   237,   246,  -795,   252,  -795,  -795,
-    -795,  -795,  -795,  -795,   654,   655,   656,   657,   658,  -795,
-    -795,   659,   660,   661,   662,   663,  -795,   256,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,   259,  -795,   664,   665,
-    -795,  -795,   666,   668,  -795,  -795,   667,   671,  -795,  -795,
-     669,   673,  -795,  -795,   672,   674,  -795,  -795,  -795,  -795,
-    -795,  -795,    58,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-     152,  -795,  -795,   675,   676,  -795,  -795,   677,   679,  -795,
-     680,   681,   682,   683,   684,   685,   286,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   295,
-    -795,  -795,  -795,   296,   525,  -795,   686,   687,  -795,  -795,
-    -795,  -795,   688,  -795,   216,  -795,   689,  -795,  -795,  -795,
-    -795,   690,   581,  -795,   693,   694,   695,   696,   534,   442,
-     537,   511,   539,   698,   699,   540,   541,   543,   544,   547,
-     413,  -795,  -795,   413,  -795,   626,   147,  -795,   630,   402,
-    -795,   631,    68,  -795,   644,   189,  -795,   645,   -10,  -795,
-     268,   646,  -795,   229,  -795,   647,   -56,  -795,   648,   548,
-     551,   552,   553,   556,   557,   175,  -795,   701,   705,    70,
-    -795,  -795,  -795,   706,   710,   -17,  -795,   649,   713,  -795,
-     197,   650,  -795,  -795,   568,  -795,   355,   572,   573,   574,
-    -795,  -795,  -795,  -795,  -795,   575,   576,  -795,  -795,  -795,
-    -795,  -795,  -795,   299,  -795,   309,  -795,   714,  -795,   717,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,   311,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,   722,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,   719,   711,  -795,  -795,  -795,
-    -795,  -795,   720,  -795,   312,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,   577,   578,  -795,  -795,   579,   330,  -795,
-     611,  -795,   725,  -795,  -795,  -795,  -795,  -795,   332,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,   189,
-    -795,   726,   580,  -795,   268,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,   727,   584,   728,   197,  -795,  -795,   582,  -795,
-    -795,   716,  -795,   586,  -795,  -795,   729,  -795,  -795,   226,
-    -795,   -40,   729,  -795,  -795,   731,   733,   742,   340,  -795,
-    -795,  -795,  -795,  -795,  -795,   743,   585,   590,   591,   -40,
-    -795,   589,  -795,  -795,  -795,  -795,  -795
+     453,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,    40,    27,    51,    53,    59,
+      71,    73,    75,    79,    89,   128,   137,   147,   154,   156,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,    27,    47,
+      23,    63,    54,   178,   -24,   186,   158,   245,    36,     5,
+     465,    87,    37,  -808,   224,   233,   249,   236,   258,  -808,
+    -808,  -808,  -808,  -808,   285,  -808,    76,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,   304,   306,   323,
+    -808,  -808,  -808,  -808,  -808,  -808,   324,   335,   336,   345,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,   348,  -808,  -808,  -808,  -808,   119,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,   359,  -808,   134,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+     360,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,   135,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,   145,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,   256,   265,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,   354,  -808,  -808,
+     375,  -808,  -808,  -808,   385,  -808,  -808,   368,   388,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,   389,   392,  -808,  -808,  -808,  -808,   393,   399,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,   148,  -808,  -808,  -808,   400,  -808,  -808,   401,
+    -808,   404,   408,  -808,  -808,   411,   412,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,   161,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,   182,  -808,  -808,  -808,  -808,   215,  -808,  -808,
+    -808,    27,    27,  -808,   253,   417,   418,   420,   421,   422,
+    -808,    23,  -808,    37,   429,   431,   432,   270,   274,   275,
+     440,   441,   442,   443,   444,   446,   286,   287,   288,   289,
+     447,   455,   456,   458,   459,   460,   461,   464,   466,   467,
+     468,   469,   303,   470,   471,   472,    63,  -808,   473,   474,
+     477,   318,    54,  -808,   479,   481,   483,   484,   485,   486,
+     326,   489,   491,   492,   493,   178,  -808,   494,   -24,  -808,
+     495,   496,   497,   499,   500,   501,   502,   503,  -808,   186,
+    -808,   504,   506,   346,   507,   509,   510,   347,  -808,   245,
+     513,   351,   352,  -808,    36,   519,   520,    20,  -808,   357,
+     522,   523,   363,   526,   365,   366,   529,   530,   367,   370,
+     532,   539,   540,   541,   465,  -808,   542,    87,  -808,   543,
+      37,  -808,  -808,  -808,   544,   545,   546,    27,    27,    27,
+    -808,   218,   547,   548,   550,  -808,  -808,  -808,   394,   395,
+     396,   551,   555,   558,  -808,  -808,  -808,  -808,   402,   559,
+     560,   561,   564,   563,   406,   567,   568,   569,   570,   571,
+    -808,   573,   563,   574,  -808,   577,   170,   231,  -808,  -808,
+     433,   434,   435,   591,   436,   454,  -808,   114,   577,   457,
+     590,  -808,   462,  -808,   577,   463,   475,   476,   478,   480,
+     482,   487,  -808,   488,   490,  -808,   498,   505,   508,  -808,
+    -808,   511,  -808,  -808,  -808,   512,    27,  -808,  -808,   514,
+     515,  -808,   516,  -808,  -808,    21,   517,  -808,  -808,    48,
+     518,   521,   524,  -808,   613,  -808,   615,  -808,    27,    63,
+      87,  -808,  -808,  -808,  -808,    37,    54,   527,  -808,  -808,
+    -808,   255,   255,   614,  -808,   616,   617,   618,   619,  -808,
+    -808,  -808,   260,   622,   624,   625,   227,    52,  -808,   465,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,   626,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,   230,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,   627,   614,  -808,   226,   239,
+     240,   257,  -808,   264,  -808,  -808,  -808,  -808,  -808,  -808,
+     572,   631,   632,   633,   634,  -808,  -808,   635,   638,   640,
+     642,   644,  -808,   282,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,   284,  -808,   645,   647,  -808,  -808,   648,   653,
+    -808,  -808,   651,   655,  -808,  -808,   654,   656,  -808,  -808,
+     658,   659,  -808,  -808,  -808,  -808,  -808,  -808,    56,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,   104,  -808,  -808,   660,
+     662,  -808,  -808,   661,   665,  -808,   657,   667,   668,   670,
+     671,   674,   315,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,   317,  -808,  -808,  -808,   321,
+     525,  -808,   663,   679,  -808,  -808,  -808,  -808,   676,  -808,
+     108,  -808,   681,  -808,  -808,  -808,  -808,   684,   527,  -808,
+     687,   688,   689,   690,   531,   528,   533,   534,   535,   691,
+     694,   537,   538,   549,   552,   553,   255,  -808,  -808,   255,
+    -808,   614,   178,  -808,   616,   245,  -808,   617,    36,  -808,
+     618,   403,  -808,   619,   260,  -808,    70,   622,  -808,   186,
+    -808,   624,     5,  -808,   625,   554,   556,   557,   562,   565,
+     566,   227,  -808,   696,   701,    52,  -808,  -808,  -808,   700,
+     682,   -24,  -808,   626,   703,  -808,    81,   627,  -808,  -808,
+     575,  -808,   174,   576,   578,   579,  -808,  -808,  -808,  -808,
+    -808,   580,   582,  -808,  -808,  -808,  -808,  -808,  -808,   338,
+    -808,   339,  -808,   702,  -808,   704,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,   358,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,   705,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,   706,   708,  -808,  -808,  -808,  -808,  -808,   709,  -808,
+     362,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,   583,
+     585,  -808,  -808,   586,   372,  -808,   577,  -808,   712,  -808,
+    -808,  -808,  -808,  -808,   374,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,   403,  -808,   715,   588,  -808,
+      70,  -808,  -808,  -808,  -808,  -808,  -808,  -808,   720,   587,
+     721,    81,  -808,  -808,   589,  -808,  -808,   722,  -808,   592,
+    -808,  -808,   719,  -808,  -808,   171,  -808,   129,   719,  -808,
+    -808,   725,   726,   729,   384,  -808,  -808,  -808,  -808,  -808,
+    -808,   730,   597,   593,   594,   129,  -808,   612,  -808,  -808,
+    -808,  -808,  -808
   };
 
   const unsigned short
@@ -4055,11 +4046,11 @@ namespace isc { namespace dhcp {
        1,    45,    38,    34,    33,    30,    31,    32,    37,     3,
       35,    36,    58,     5,    70,     7,   127,     9,   264,    11,
      419,    13,   444,    15,   344,    17,   352,    19,   389,    21,
-     229,    23,   536,    25,   611,    27,   601,    29,    47,    41,
+     229,    23,   536,    25,   609,    27,   599,    29,    47,    41,
        0,     0,     0,     0,     0,   446,     0,   354,   391,     0,
        0,     0,     0,    49,     0,    48,     0,     0,    42,    68,
-     609,   591,   593,   595,     0,    67,     0,    60,    62,    64,
-      65,    66,    63,   597,   599,   116,   142,     0,     0,     0,
+     607,   589,   591,   593,     0,    67,     0,    60,    62,    64,
+      65,    66,    63,   595,   597,   116,   142,     0,     0,     0,
      465,   467,   469,   140,   149,   151,     0,     0,     0,     0,
      111,   256,   342,   381,   313,   432,   434,   207,   493,   436,
      221,   240,     0,   519,   532,   534,   106,     0,    72,    74,
@@ -4079,124 +4070,124 @@ namespace isc { namespace dhcp {
      358,   370,   359,   360,   361,   377,   362,   363,   364,   365,
      366,   405,     0,     0,   403,   404,   407,   408,     0,   392,
      393,   395,   396,   397,   398,   399,   400,   401,   402,   236,
-     238,   233,     0,   231,   234,   235,     0,   560,   562,     0,
-     565,     0,     0,   569,   573,     0,     0,     0,   578,   585,
-     587,   589,   558,   556,   557,     0,   538,   540,   541,   542,
-     543,   544,   545,   546,   547,   548,   549,   550,   551,   552,
-     553,   554,   555,   616,     0,   613,   615,   607,   606,     0,
-     603,   605,    46,     0,     0,    39,     0,     0,     0,     0,
-       0,     0,    57,     0,    59,     0,     0,     0,     0,     0,
+     238,   233,     0,   231,   234,   235,     0,   559,   561,     0,
+     564,     0,     0,   568,   572,     0,     0,   576,   583,   585,
+     587,   557,   555,   556,     0,   538,   540,   541,   542,   543,
+     544,   545,   546,   547,   548,   549,   550,   551,   552,   553,
+     554,   614,     0,   611,   613,   605,   604,     0,   601,   603,
+      46,     0,     0,    39,     0,     0,     0,     0,     0,     0,
+      57,     0,    59,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    71,     0,     0,
+       0,     0,     0,   128,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   265,     0,     0,   420,
+       0,     0,     0,     0,     0,     0,     0,     0,   445,     0,
+     345,     0,     0,     0,     0,     0,     0,     0,   353,     0,
+       0,     0,     0,   390,     0,     0,     0,     0,   230,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    71,
-       0,     0,     0,     0,     0,   128,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   265,     0,
-       0,   420,     0,     0,     0,     0,     0,     0,     0,     0,
-     445,     0,   345,     0,     0,     0,     0,     0,     0,     0,
-     353,     0,     0,     0,     0,   390,     0,     0,     0,     0,
-     230,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   537,     0,
-       0,   612,     0,     0,   602,    50,    43,     0,     0,     0,
-       0,     0,     0,    61,     0,     0,     0,     0,   113,   114,
-     115,     0,     0,     0,     0,     0,     0,   107,   108,   109,
-     110,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   518,     0,     0,     0,    73,     0,     0,
-       0,   139,   119,     0,     0,     0,     0,     0,     0,   312,
-       0,     0,     0,     0,   267,     0,   422,     0,     0,     0,
-       0,     0,     0,     0,     0,   449,     0,     0,   369,     0,
-       0,     0,   380,   357,     0,   409,   410,   394,     0,     0,
-     232,   559,     0,     0,   564,     0,   567,   568,     0,     0,
-     575,   576,   577,     0,     0,     0,     0,   539,     0,   614,
-       0,   604,     0,     0,     0,   592,   594,   596,   598,     0,
-       0,     0,   466,   468,   470,     0,     0,   153,   112,   258,
-     346,   383,   315,    40,   433,   435,     0,     0,   438,   223,
-       0,     0,   533,     0,    51,   130,   133,   134,   132,   137,
-     138,   136,   295,   297,   299,   413,   293,   301,   308,   309,
-     310,   311,   307,   305,   303,     0,   431,   488,   476,   478,
-     482,   480,   486,   484,   472,   372,   193,   376,   374,   379,
-     406,   237,   239,   561,   563,   566,   571,   572,   570,   574,
-     580,   581,   582,   583,   584,   579,   586,   588,   590,     0,
-     153,    44,     0,     0,     0,     0,   147,     0,   144,   146,
-     179,   185,   187,   189,     0,     0,     0,     0,     0,   201,
-     203,     0,     0,     0,     0,     0,   178,     0,   159,   161,
-     162,   163,   164,   165,   166,   167,   168,   169,   170,   174,
-     175,   176,   171,   177,   172,   173,     0,   157,     0,   154,
-     155,   262,     0,   259,   260,   350,     0,   347,   348,   387,
-       0,   384,   385,   319,     0,   316,   317,   216,   217,   218,
-     219,   220,     0,   209,   211,   212,   213,   214,   215,   497,
-       0,   495,   442,     0,   439,   440,   227,     0,   224,   225,
-       0,     0,     0,     0,     0,     0,     0,   242,   244,   245,
-     246,   247,   248,   249,   528,   530,   527,   525,   526,     0,
-     521,   523,   524,     0,    53,   417,     0,   414,   415,   473,
-     491,   492,     0,   620,     0,   618,     0,    69,   610,   600,
-     117,     0,     0,   143,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   537,     0,     0,   610,     0,
+       0,   600,    50,    43,     0,     0,     0,     0,     0,     0,
+      61,     0,     0,     0,     0,   113,   114,   115,     0,     0,
+       0,     0,     0,     0,   107,   108,   109,   110,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   141,   150,     0,   152,     0,     0,   257,     0,   354,
-     343,     0,   391,   382,     0,     0,   314,     0,     0,   208,
-     499,     0,   494,   446,   437,     0,     0,   222,     0,     0,
-       0,     0,     0,     0,     0,     0,   241,     0,     0,     0,
-     520,   535,    55,     0,    54,     0,   412,     0,     0,   490,
-       0,     0,   617,   608,     0,   145,     0,     0,     0,     0,
-     191,   194,   195,   196,   197,     0,     0,   205,   206,   198,
-     199,   200,   160,     0,   156,     0,   261,     0,   349,     0,
-     386,   341,   338,   326,   327,   329,   330,   323,   324,   325,
-     336,   337,   335,     0,   321,   328,   339,   340,   331,   332,
-     333,   334,   318,   210,   515,     0,   513,   514,   506,   507,
-     511,   512,   508,   509,   510,     0,   500,   501,   503,   504,
-     505,   496,     0,   441,     0,   226,   250,   251,   252,   253,
-     254,   255,   243,     0,     0,   522,    52,     0,     0,   416,
-       0,   634,     0,   632,   630,   624,   628,   629,     0,   622,
-     626,   627,   625,   619,   148,   181,   182,   183,   184,   180,
-     186,   188,   190,   202,   204,   158,   263,   351,   388,     0,
-     320,     0,     0,   498,     0,   443,   228,   529,   531,    56,
-     418,   474,     0,     0,     0,     0,   621,   322,     0,   517,
-     502,     0,   631,     0,   623,   516,     0,   633,   638,     0,
-     636,     0,     0,   635,   646,     0,     0,     0,     0,   640,
-     642,   643,   644,   645,   637,     0,     0,     0,     0,     0,
-     639,     0,   648,   649,   650,   641,   647
+     518,     0,     0,     0,    73,     0,     0,     0,   139,   119,
+       0,     0,     0,     0,     0,     0,   312,     0,     0,     0,
+       0,   267,     0,   422,     0,     0,     0,     0,     0,     0,
+       0,     0,   449,     0,     0,   369,     0,     0,     0,   380,
+     357,     0,   409,   410,   394,     0,     0,   232,   558,     0,
+       0,   563,     0,   566,   567,     0,     0,   574,   575,     0,
+       0,     0,     0,   539,     0,   612,     0,   602,     0,     0,
+       0,   590,   592,   594,   596,     0,     0,     0,   466,   468,
+     470,     0,     0,   153,   112,   258,   346,   383,   315,    40,
+     433,   435,     0,     0,   438,   223,     0,     0,   533,     0,
+      51,   130,   133,   134,   132,   137,   138,   136,   295,   297,
+     299,   413,   293,   301,   308,   309,   310,   311,   307,   305,
+     303,     0,   431,   488,   476,   478,   482,   480,   486,   484,
+     472,   372,   193,   376,   374,   379,   406,   237,   239,   560,
+     562,   565,   570,   571,   569,   573,   578,   579,   580,   581,
+     582,   577,   584,   586,   588,     0,   153,    44,     0,     0,
+       0,     0,   147,     0,   144,   146,   179,   185,   187,   189,
+       0,     0,     0,     0,     0,   201,   203,     0,     0,     0,
+       0,     0,   178,     0,   159,   161,   162,   163,   164,   165,
+     166,   167,   168,   169,   170,   174,   175,   176,   171,   177,
+     172,   173,     0,   157,     0,   154,   155,   262,     0,   259,
+     260,   350,     0,   347,   348,   387,     0,   384,   385,   319,
+       0,   316,   317,   216,   217,   218,   219,   220,     0,   209,
+     211,   212,   213,   214,   215,   497,     0,   495,   442,     0,
+     439,   440,   227,     0,   224,   225,     0,     0,     0,     0,
+       0,     0,     0,   242,   244,   245,   246,   247,   248,   249,
+     528,   530,   527,   525,   526,     0,   521,   523,   524,     0,
+      53,   417,     0,   414,   415,   473,   491,   492,     0,   618,
+       0,   616,     0,    69,   608,   598,   117,     0,     0,   143,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   141,   150,     0,
+     152,     0,     0,   257,     0,   354,   343,     0,   391,   382,
+       0,     0,   314,     0,     0,   208,   499,     0,   494,   446,
+     437,     0,     0,   222,     0,     0,     0,     0,     0,     0,
+       0,     0,   241,     0,     0,     0,   520,   535,    55,     0,
+      54,     0,   412,     0,     0,   490,     0,     0,   615,   606,
+       0,   145,     0,     0,     0,     0,   191,   194,   195,   196,
+     197,     0,     0,   205,   206,   198,   199,   200,   160,     0,
+     156,     0,   261,     0,   349,     0,   386,   341,   338,   326,
+     327,   329,   330,   323,   324,   325,   336,   337,   335,     0,
+     321,   328,   339,   340,   331,   332,   333,   334,   318,   210,
+     515,     0,   513,   514,   506,   507,   511,   512,   508,   509,
+     510,     0,   500,   501,   503,   504,   505,   496,     0,   441,
+       0,   226,   250,   251,   252,   253,   254,   255,   243,     0,
+       0,   522,    52,     0,     0,   416,     0,   632,     0,   630,
+     628,   622,   626,   627,     0,   620,   624,   625,   623,   617,
+     148,   181,   182,   183,   184,   180,   186,   188,   190,   202,
+     204,   158,   263,   351,   388,     0,   320,     0,     0,   498,
+       0,   443,   228,   529,   531,    56,   418,   474,     0,     0,
+       0,     0,   619,   322,     0,   517,   502,     0,   629,     0,
+     621,   516,     0,   631,   636,     0,   634,     0,     0,   633,
+     644,     0,     0,     0,     0,   638,   640,   641,   642,   643,
+     635,     0,     0,     0,     0,     0,   637,     0,   646,   647,
+     648,   639,   645
   };
 
   const short
   Dhcp4Parser::yypgoto_[] =
   {
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,   -44,  -795,  -452,  -795,
-     154,  -795,  -795,  -795,  -795,  -795,  -795,  -510,  -795,  -795,
-    -795,   -70,  -795,  -795,  -795,   370,  -795,  -795,  -795,  -795,
-     110,   362,   -48,   -45,   -43,  -795,  -795,  -795,  -795,   -11,
-       4,  -795,  -795,   174,   382,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,   -41,  -795,  -795,  -795,  -795,  -795,  -795,    93,  -795,
-     -32,  -795,  -590,   -53,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,   -26,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,   -69,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,   -68,  -795,  -795,  -795,   -62,   349,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,   -59,  -795,  -795,  -795,  -795,
-    -795,  -795,  -794,  -795,  -795,  -795,   -29,  -795,  -795,  -795,
-     -22,   399,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -792,  -795,   -24,  -795,    -4,  -795,  -791,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,   -27,  -795,  -795,  -176,   -65,  -795,
-    -795,  -795,  -795,  -795,   -13,  -795,  -795,  -795,     9,  -795,
-     404,  -795,   -66,  -795,  -795,  -795,  -795,  -795,   -60,  -795,
-    -795,  -795,  -795,  -795,   -18,  -795,  -795,  -795,     8,  -795,
-    -795,  -795,    -9,  -795,   405,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,   -21,  -795,  -795,  -795,
-     -16,   432,  -795,  -795,   -58,  -795,   -38,  -795,   -47,  -795,
-    -795,  -795,     3,  -795,  -795,  -795,     7,  -795,   425,    -7,
-    -795,    -6,  -795,     0,  -795,   218,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -790,  -795,  -795,  -795,  -795,  -795,    14,
-    -795,  -795,  -795,  -140,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,    -2,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,   251,   395,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,  -795,
-    -795,  -795,  -795,  -352,   385,  -795,  -795,  -795,  -795,  -795,
-    -795,   279,   398,  -795,  -795,  -795,   -12,  -795,  -795,  -145,
-    -795,  -795,  -795,  -795,  -795,  -795,  -157,  -795,  -795,  -173,
-    -795,  -795,  -795,  -795,  -795
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,   -38,  -808,  -397,  -808,
+     196,  -808,  -808,  -808,  -808,  -808,  -808,  -507,  -808,  -808,
+    -808,   -70,  -808,  -808,  -808,   376,  -808,  -808,  -808,  -808,
+     157,   342,   -48,   -47,   -32,  -808,  -808,  -808,  -808,    -8,
+       4,  -808,  -808,   127,   333,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,   -59,  -808,  -808,  -808,  -808,  -808,  -808,   120,  -808,
+     -79,  -808,  -579,   -28,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,   -49,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,   -45,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,   -50,  -808,  -808,  -808,   -40,   353,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,   -46,  -808,  -808,  -808,  -808,
+    -808,  -808,  -807,  -808,  -808,  -808,   -17,  -808,  -808,  -808,
+     -10,   407,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -796,  -808,   -68,  -808,   -20,  -808,  -794,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,    -5,  -808,  -808,  -170,   -65,  -808,
+    -808,  -808,  -808,  -808,   -11,  -808,  -808,  -808,     7,  -808,
+     409,  -808,   -66,  -808,  -808,  -808,  -808,  -808,   -60,  -808,
+    -808,  -808,  -808,  -808,   -18,  -808,  -808,  -808,     3,  -808,
+    -808,  -808,    10,  -808,   398,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,   -23,  -808,  -808,  -808,
+     -16,   428,  -808,  -808,   -58,  -808,   -30,  -808,   -42,  -808,
+    -808,  -808,     9,  -808,  -808,  -808,    12,  -808,   423,   -12,
+    -808,    -2,  -808,     8,  -808,   222,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -785,  -808,  -808,  -808,  -808,  -808,    17,
+    -808,  -808,  -808,  -141,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,     0,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,   247,   397,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,  -808,
+    -808,  -808,  -340,   387,  -808,  -808,  -808,  -808,  -808,  -808,
+     278,   405,  -808,  -808,  -808,    -7,  -808,  -808,  -142,  -808,
+    -808,  -808,  -808,  -808,  -808,  -156,  -808,  -808,  -172,  -808,
+    -808,  -808,  -808,  -808
   };
 
   const short
@@ -4204,433 +4195,432 @@ namespace isc { namespace dhcp {
   {
       -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
       24,    25,    26,    27,    28,    29,    38,    39,    40,    69,
-     604,    87,    88,    41,    68,    84,    85,   615,   784,   863,
-     864,   348,    43,    70,    96,    97,    98,   357,    45,    71,
-     137,   138,   139,   140,   141,   142,   143,   382,   144,   145,
-     146,   147,   367,   176,   177,    47,    72,   178,   400,   179,
-     401,   618,   180,   402,   621,   181,   148,   375,   149,   368,
-     677,   678,   679,   801,   150,   376,   151,   377,   718,   719,
-     720,   823,   697,   698,   699,   804,   979,   700,   805,   701,
-     806,   702,   807,   703,   704,   434,   705,   706,   707,   708,
-     709,   710,   711,   712,   813,   713,   814,   714,   715,   152,
-     389,   742,   743,   744,   745,   746,   747,   748,   153,   392,
-     757,   758,   759,   846,    61,    79,   302,   303,   304,   447,
-     305,   448,   154,   393,   766,   767,   768,   769,   770,   771,
-     772,   773,   155,   383,   722,   723,   724,   826,    49,    73,
-     201,   202,   203,   410,   204,   406,   205,   407,   206,   408,
-     207,   411,   208,   415,   209,   414,   210,   413,   632,   211,
-     156,   386,   734,   735,   736,   835,   913,   914,   157,   384,
-      55,    76,   726,   727,   728,   829,    57,    77,   267,   268,
-     269,   270,   271,   272,   273,   433,   274,   437,   275,   436,
-     276,   277,   438,   278,   158,   385,   730,   731,   732,   832,
-      59,    78,   288,   289,   290,   291,   292,   442,   293,   294,
-     295,   296,   213,   409,   786,   787,   788,   865,    51,    74,
-     226,   227,   228,   419,   159,   387,   160,   388,   161,   391,
-     753,   754,   755,   843,    53,    75,   243,   244,   245,   162,
-     372,   163,   373,   164,   374,   249,   429,   791,   868,   250,
-     423,   251,   424,   252,   426,   253,   425,   254,   428,   255,
-     427,   256,   422,   220,   416,   792,   165,   390,   750,   751,
-     840,   935,   936,   937,   938,   939,   991,   940,   166,   167,
-     395,   779,   780,   781,   857,   782,   858,   168,   396,   169,
-     397,    63,    80,   325,   326,   327,   328,   452,   329,   453,
-     330,   331,   455,   332,   333,   334,   458,   658,   335,   459,
-     336,   337,   338,   339,   463,   665,   340,   464,   341,   465,
-     342,   466,    99,   359,   100,   360,   101,   361,   170,   365,
-     366,    67,    82,   349,   350,   351,   472,   102,   358,    65,
-      81,   344,   345,   346,   469,   794,   795,   870,   968,   969,
-     970,   971,  1004,   972,  1002,  1019,  1020,  1021,  1028,  1029,
-    1030,  1035,  1031,  1032,  1033
+     600,    87,    88,    41,    68,    84,    85,   611,   780,   859,
+     860,   346,    43,    70,    96,    97,    98,   355,    45,    71,
+     137,   138,   139,   140,   141,   142,   143,   380,   144,   145,
+     146,   147,   365,   176,   177,    47,    72,   178,   398,   179,
+     399,   614,   180,   400,   617,   181,   148,   373,   149,   366,
+     673,   674,   675,   797,   150,   374,   151,   375,   714,   715,
+     716,   819,   693,   694,   695,   800,   975,   696,   801,   697,
+     802,   698,   803,   699,   700,   432,   701,   702,   703,   704,
+     705,   706,   707,   708,   809,   709,   810,   710,   711,   152,
+     387,   738,   739,   740,   741,   742,   743,   744,   153,   390,
+     753,   754,   755,   842,    61,    79,   302,   303,   304,   445,
+     305,   446,   154,   391,   762,   763,   764,   765,   766,   767,
+     768,   769,   155,   381,   718,   719,   720,   822,    49,    73,
+     201,   202,   203,   408,   204,   404,   205,   405,   206,   406,
+     207,   409,   208,   413,   209,   412,   210,   411,   628,   211,
+     156,   384,   730,   731,   732,   831,   909,   910,   157,   382,
+      55,    76,   722,   723,   724,   825,    57,    77,   267,   268,
+     269,   270,   271,   272,   273,   431,   274,   435,   275,   434,
+     276,   277,   436,   278,   158,   383,   726,   727,   728,   828,
+      59,    78,   288,   289,   290,   291,   292,   440,   293,   294,
+     295,   296,   213,   407,   782,   783,   784,   861,    51,    74,
+     226,   227,   228,   417,   159,   385,   160,   386,   161,   389,
+     749,   750,   751,   839,    53,    75,   243,   244,   245,   162,
+     370,   163,   371,   164,   372,   249,   427,   787,   864,   250,
+     421,   251,   422,   252,   424,   253,   423,   254,   426,   255,
+     425,   256,   420,   220,   414,   788,   165,   388,   746,   747,
+     836,   931,   932,   933,   934,   935,   987,   936,   166,   167,
+     393,   775,   776,   777,   853,   778,   854,   168,   394,   169,
+     395,    63,    80,   324,   325,   326,   327,   450,   328,   451,
+     329,   330,   453,   331,   332,   333,   456,   654,   334,   457,
+     335,   336,   337,   460,   661,   338,   461,   339,   462,   340,
+     463,    99,   357,   100,   358,   101,   359,   170,   363,   364,
+      67,    82,   347,   348,   349,   469,   102,   356,    65,    81,
+     342,   343,   344,   466,   790,   791,   866,   964,   965,   966,
+     967,  1000,   968,   998,  1015,  1016,  1017,  1024,  1025,  1026,
+    1031,  1027,  1028,  1029
   };
 
   const unsigned short
   Dhcp4Parser::yytable_[] =
   {
-      95,   136,   175,   195,   222,   239,   716,   265,   284,   301,
-     322,   257,   286,   484,   182,   214,   229,   241,   287,   279,
-     297,   633,   323,    89,    83,   196,   216,   637,   197,    31,
-     198,    32,   347,    33,   183,   215,   230,   242,    30,   280,
-     298,   908,   324,   909,   912,   921,   123,   299,   300,    42,
-     223,   266,   285,   656,   603,   212,   225,   240,   221,   125,
-     126,   838,   199,   603,   839,    86,   217,   218,   246,   247,
-     224,   192,   103,   219,   193,   248,   104,   200,   105,   660,
-     661,   662,   663,   737,   738,   739,   740,   106,   741,   107,
-     108,   109,   110,   111,   112,   113,   114,   115,   171,   172,
-     299,   300,   173,  1024,   363,   174,  1025,  1026,  1027,   364,
-      94,   398,   404,    44,   664,   122,   399,   405,   116,   117,
-     118,   119,   120,   121,   417,   420,   449,   122,   123,   418,
-     421,   450,   259,   281,   260,   261,   282,   283,   124,   619,
-     620,   125,   126,   467,   125,   126,   125,   126,   468,    94,
-      46,   127,   128,    90,   470,   841,    48,   129,   842,   471,
-     125,   126,    91,    92,    93,    50,   473,   130,   657,    52,
-     131,   474,   108,   109,   110,   111,   112,   132,   133,    94,
-      54,   134,   135,   473,   774,   775,    94,   343,   588,   398,
-      34,    35,    36,    37,   797,   908,   352,   909,   912,   921,
-     116,   117,   118,    56,   470,    58,   184,   185,   186,   798,
-     123,   616,   617,    60,   108,   109,   110,   111,   112,   871,
-      62,   187,   872,   125,   126,   188,   189,   190,   191,  1022,
-      64,    94,  1023,   893,    94,   192,    94,   674,   193,   129,
-     473,    66,   116,   117,   118,   799,   194,   121,   353,   404,
-      94,   354,   123,   259,   800,   802,   110,   111,   112,   820,
-     803,   259,   820,   355,   821,   125,   126,   822,   189,   356,
-     191,   238,   789,   125,   126,   362,   369,   192,   370,   371,
-     193,   760,   761,   762,   763,   764,   765,   378,   194,   855,
-     430,   379,   123,    95,   856,   110,   111,   112,   859,   467,
-     432,   380,   820,   860,   861,   125,   126,   985,   381,   475,
-     476,   394,   417,    94,   989,   449,   231,   986,   403,   990,
-     996,   412,   232,   233,   234,   235,   236,   237,   136,   238,
-     122,   123,   259,   420,   175,  1005,   431,   440,  1000,   961,
-    1006,   962,   963,  1039,   125,   126,   182,   195,  1040,   435,
-     222,   628,   629,   630,   631,    94,   439,   924,   925,   214,
-     441,   239,   229,    94,   443,   444,   183,   445,   446,   196,
-     216,   265,   197,   241,   198,   451,   284,   454,   456,   215,
-     286,   457,   230,   279,   460,   461,   287,   462,   297,   975,
-     976,   977,   978,   242,   477,    94,   223,   322,   478,   212,
-     479,   480,   225,   280,   481,   482,   199,   485,   298,   323,
-     217,   218,   486,   240,   487,   266,   224,   219,   488,   489,
-     285,   200,   490,   491,   246,   247,   492,   493,   494,   324,
-     495,   248,   497,   496,    94,   258,   585,   586,   587,   125,
-     126,   501,   502,   498,   499,   500,   680,   503,   504,   505,
-    1001,   681,   682,   683,   684,   685,   686,   687,   688,   689,
-     690,   691,   692,   693,   694,   695,   259,   506,   260,   261,
-     507,   508,   262,   263,   264,   509,   510,   259,   125,   126,
-     511,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   512,   514,   515,   513,   516,
-     518,   320,   321,   519,   520,   521,   523,   524,   525,   526,
-     527,   528,   530,   136,   529,   652,   531,   532,   533,   535,
-     175,   537,   538,   539,   540,   696,   696,   541,   542,    94,
-     543,   544,   182,   546,   547,   548,   549,   550,   671,   551,
-     554,   776,   558,   322,   552,   555,   559,   556,   561,   562,
-     563,   564,   183,   777,   565,   323,   566,   567,   568,   569,
-     570,   571,   572,   573,   574,   575,   576,   578,    94,   580,
-     582,   583,   592,   778,   584,   324,   589,   590,   591,    94,
-       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,    14,   595,   596,   593,   594,   597,   598,
-     599,   600,   601,   602,   676,   605,    32,   606,   607,   608,
-     609,   881,   622,   610,   611,   613,   614,   623,   624,   625,
-     626,   627,   634,   635,   636,   638,   639,   640,   641,   669,
-     642,   643,   670,   717,   644,   645,   646,   721,   725,   647,
-     648,   649,   659,   650,   651,   653,   654,   655,   666,   667,
-     668,   729,   733,   749,   752,   756,   785,   793,   808,   809,
-     810,   811,   812,   815,   816,   817,   818,   819,   825,   612,
-     824,   828,   827,   830,   831,   833,   834,   837,   836,   845,
-     883,   844,   848,   847,   849,   850,   851,   852,   853,   854,
-     867,   862,   866,   672,   874,   873,   869,   876,   877,   878,
-     879,   880,   885,   886,   882,   953,   884,   887,   888,   954,
-     889,   890,   956,   957,   994,   946,   891,   960,   947,   948,
-     949,  1016,   987,   950,   951,   988,   992,   993,   995,  1003,
-    1008,  1011,  1013,   483,   974,  1036,  1018,  1037,   980,   981,
-     982,   983,   984,   997,   998,   999,  1038,  1041,  1015,  1009,
-     696,  1012,  1017,   696,  1042,  1046,   195,  1043,  1044,   265,
-     517,   875,   284,   796,   675,   901,   286,   892,   214,   923,
-     926,   279,   287,   239,   297,   928,   301,   916,   196,   216,
-     945,   197,   930,   198,   944,   241,   522,   902,   215,   776,
-     903,   280,   904,   894,   298,   222,   952,   917,   560,   896,
-     964,   777,   931,   266,   895,   242,   285,   229,   212,   907,
-     922,   910,   966,  1007,   927,   199,   534,   915,   898,   217,
-     218,   778,   929,   899,   905,   240,   219,   230,   918,   919,
-     200,   911,   967,   932,   933,   920,   246,   247,   897,   906,
-     934,   223,   900,   248,   965,   553,   959,   225,   943,   958,
-     942,   557,   536,   790,  1010,   941,   545,   955,   581,   973,
-    1014,   224,   577,   673,   783,  1034,  1045,     0,   579,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      95,   136,   175,   195,   222,   239,   223,   265,   284,   301,
+     321,   257,   286,   712,   182,   214,   229,   241,   287,   279,
+     297,   629,   322,   481,   904,   196,   197,   633,   266,   285,
+      83,   216,    31,    89,    32,   905,    33,   908,   652,   123,
+      30,   198,   183,   215,   230,   242,   917,   280,   298,   345,
+     323,   221,   125,   126,   224,   212,   225,   240,    42,   834,
+      44,   217,   835,   246,   192,   199,    46,   193,   171,   172,
+     103,   218,   173,   247,   104,   174,   105,   200,    48,   361,
+      50,   219,    52,   248,   362,   106,    54,   107,   108,   109,
+     110,   111,   112,   113,   114,   115,    56,   110,   111,   112,
+     259,   281,   260,   261,   282,   283,   599,   837,   299,   300,
+     838,   867,   125,   126,   868,   599,   116,   117,   118,   119,
+     120,   121,   396,   299,   300,   122,   123,   397,   125,   126,
+     125,   126,   122,   123,   259,    58,   124,   402,   415,   125,
+     126,    94,   403,   416,    60,   259,   125,   126,   418,   127,
+     128,   447,   653,   419,    62,   129,   448,   125,   126,   920,
+     921,    64,    90,    66,   464,   130,   770,   771,   131,   465,
+      94,    91,    92,    93,  1018,   132,   133,  1019,   904,   134,
+     135,   656,   657,   658,   659,   467,   612,   613,    94,   905,
+     468,   908,    34,    35,    36,    37,   624,   625,   626,   627,
+     917,    94,    94,   108,   109,   110,   111,   112,   971,   972,
+     973,   974,    86,   110,   111,   112,   660,    94,   470,    94,
+     122,   470,   957,   471,   958,   959,   584,   341,    94,   396,
+     350,   116,   117,   118,   793,    94,   351,   184,   185,   186,
+     889,   123,   467,   470,   353,   670,    94,   794,   795,   123,
+     615,   616,   187,   352,   125,   126,   188,   189,   190,   191,
+     402,   354,   125,   126,   428,   796,   192,   798,   429,   193,
+     129,  1020,   799,   231,  1021,  1022,  1023,   194,   258,   232,
+     233,   234,   235,   236,   237,   816,   238,   816,   676,   360,
+     817,    95,   818,   677,   678,   679,   680,   681,   682,   683,
+     684,   685,   686,   687,   688,   689,   690,   691,   367,   259,
+     368,   260,   261,   472,   473,   262,   263,   264,   851,   259,
+     855,   125,   126,   852,   464,   856,   136,   369,   376,   857,
+     238,   785,   175,   756,   757,   758,   759,   760,   761,   377,
+     378,   816,   415,    94,   182,   195,   981,   982,   222,   379,
+     223,    94,   392,   733,   734,   735,   736,   214,   737,   239,
+     229,   985,   430,   401,   410,   447,   986,   196,   197,   265,
+     992,   241,   183,   216,   284,   418,   438,  1001,   286,   433,
+     996,   279,  1002,   198,   287,   215,   297,  1035,   230,   437,
+     266,   439,  1036,   441,   321,   285,   442,   212,   224,   242,
+     225,   443,   444,   217,   449,   452,   322,   199,   454,   280,
+      94,   240,   455,   218,   298,   458,   459,   246,   474,   200,
+      94,   475,   476,   219,   477,   478,   479,   247,   108,   109,
+     110,   111,   112,   482,   323,   483,   484,   248,   485,   581,
+     582,   583,   486,   487,   488,   489,   490,   491,   492,   997,
+     493,   498,   494,   495,   496,   497,   116,   117,   118,   499,
+     500,   121,   501,   502,   503,   504,   123,   259,   505,   510,
+     506,   507,   508,   509,   511,   512,   513,   515,   516,   125,
+     126,   517,   189,   520,   191,   521,   518,   522,   523,   524,
+     525,   192,   526,   527,   193,   528,   529,   530,   532,   534,
+     535,   536,   194,   537,   538,   539,   540,   541,   543,   136,
+     544,   546,   545,   547,   548,   549,   175,   551,   648,   552,
+     553,   692,   692,   555,   556,   558,   559,   560,   182,   561,
+     562,   563,   564,   565,   566,   567,   569,   772,   568,   321,
+     667,   125,   126,   570,   571,   572,   574,   576,   578,   773,
+     672,   322,   579,   580,   585,   586,   183,   587,   591,   588,
+     589,   590,   592,   593,   595,   596,   597,   594,    94,   598,
+      32,   601,   602,   603,   604,   605,   804,   774,   606,   323,
+     607,   609,   610,   306,   307,   308,   309,   310,   311,   312,
+     313,   314,   315,   316,   317,   318,   621,   631,   618,   619,
+     620,   622,   319,   320,     1,     2,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    14,   665,   623,
+     666,   713,   630,   717,   721,   725,   729,   632,   634,   745,
+      94,   748,   752,   781,   789,   805,   806,   807,   808,   811,
+     635,   636,   812,   637,   813,   638,   814,   639,   815,   655,
+     821,   820,   640,   641,   823,   642,   824,   826,   827,   830,
+     829,   845,   833,   643,   832,   841,   840,   843,   844,   862,
+     644,   846,   847,   645,   848,   849,   646,   647,   850,   649,
+     650,   651,   863,   662,   865,   953,   663,   869,   870,   664,
+     858,   872,   873,   874,   875,   881,   877,   876,   882,   878,
+     949,   880,   879,   883,   884,   950,   952,   956,   608,   988,
+     983,   990,   984,   671,   989,   885,   999,   991,   886,  1004,
+     942,   887,   943,   944,  1007,  1009,  1014,  1012,   945,  1032,
+    1033,   946,   947,  1034,  1037,   519,   668,   480,   514,   871,
+     970,   976,   890,   977,   978,   979,   692,   980,   993,   692,
+     994,   995,   195,  1008,  1011,   265,  1005,  1013,   284,  1039,
+    1040,   897,   286,   906,   214,  1038,   922,   279,   287,   239,
+     297,   924,   301,   912,   196,   197,   266,  1042,   926,   285,
+     216,   241,   903,   898,   899,   772,   792,   923,   888,   919,
+     198,   222,   215,   223,   941,   280,   960,   773,   298,   900,
+     557,   913,   940,   229,   212,   948,   927,   892,   962,   242,
+     217,   907,   891,   911,   199,  1003,   894,   961,   925,   914,
+     218,   240,   531,   901,   928,   774,   200,   246,   918,   915,
+     219,   230,   893,   896,   929,   902,   963,   247,   895,   916,
+     955,   224,   554,   225,   930,   954,   533,   248,   550,  1006,
+     939,   938,   542,   786,   937,   951,   779,   577,   669,  1010,
+     969,   573,  1030,  1041,     0,     0,     0,     0,     0,     0,
+       0,     0,   575,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   901,
-       0,     0,     0,     0,   926,     0,     0,     0,     0,   928,
-       0,   916,     0,     0,     0,   964,   930,     0,     0,     0,
-       0,   902,     0,     0,   903,     0,   904,   966,     0,     0,
-       0,   917,     0,     0,     0,     0,   931,     0,     0,     0,
-       0,     0,     0,   907,     0,   910,     0,   967,   927,     0,
-       0,   915,     0,     0,     0,     0,   929,     0,   905,   965,
-       0,     0,   918,   919,     0,   911,     0,   932,   933,   920,
-       0,     0,     0,   906,   934
+       0,     0,     0,     0,     0,   897,     0,   906,     0,     0,
+     922,     0,     0,     0,     0,   924,     0,   912,     0,     0,
+       0,   960,   926,     0,     0,     0,   903,   898,   899,     0,
+       0,   923,     0,   962,     0,     0,     0,     0,     0,     0,
+       0,     0,   961,   900,     0,   913,     0,     0,     0,     0,
+     927,     0,     0,     0,     0,   907,     0,   911,     0,     0,
+       0,   963,   925,   914,     0,     0,     0,   901,   928,     0,
+       0,     0,     0,   915,     0,     0,     0,     0,   929,   902,
+       0,     0,     0,   916,     0,     0,     0,     0,   930
   };
 
   const short
   Dhcp4Parser::yycheck_[] =
   {
-      70,    71,    72,    73,    74,    75,   596,    77,    78,    79,
-      80,    76,    78,   365,    72,    73,    74,    75,    78,    77,
-      78,   531,    80,    10,    68,    73,    73,   537,    73,     5,
-      73,     7,    12,     9,    72,    73,    74,    75,     0,    77,
-      78,   835,    80,   835,   835,   835,    63,   103,   104,     7,
-      74,    77,    78,    17,   506,    73,    74,    75,    75,    76,
-      77,     3,    73,   515,     6,   166,    73,    73,    75,    75,
-      74,    88,     7,    73,    91,    75,    11,    73,    13,   134,
-     135,   136,   137,    93,    94,    95,    96,    22,    98,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    14,    15,
-     103,   104,    18,   143,     3,    21,   146,   147,   148,     8,
-     166,     3,     3,     7,   169,    62,     8,     8,    53,    54,
-      55,    56,    57,    58,     3,     3,     3,    62,    63,     8,
-       8,     8,    64,    65,    66,    67,    68,    69,    73,    19,
-      20,    76,    77,     3,    76,    77,    76,    77,     8,   166,
-       7,    86,    87,   140,     3,     3,     7,    92,     6,     8,
-      76,    77,   149,   150,   151,     7,     3,   102,   132,     7,
-     105,     8,    25,    26,    27,    28,    29,   112,   113,   166,
-       7,   116,   117,     3,   114,   115,   166,   141,     8,     3,
-     166,   167,   168,   169,     8,   989,     6,   989,   989,   989,
-      53,    54,    55,     7,     3,     7,    59,    60,    61,     8,
-      63,    16,    17,     7,    25,    26,    27,    28,    29,     3,
-       7,    74,     6,    76,    77,    78,    79,    80,    81,     3,
-       7,   166,     6,   823,   166,    88,   166,   589,    91,    92,
-       3,     7,    53,    54,    55,     8,    99,    58,     3,     3,
-     166,     4,    63,    64,     8,     3,    27,    28,    29,     3,
-       8,    64,     3,     8,     8,    76,    77,     8,    79,     3,
-      81,   100,   101,    76,    77,     4,     4,    88,     4,     4,
-      91,   106,   107,   108,   109,   110,   111,     4,    99,     3,
-       8,     4,    63,   363,     8,    27,    28,    29,     3,     3,
-       8,     4,     3,     8,     8,    76,    77,     8,     4,   353,
-     354,     4,     3,   166,     3,     3,    87,     8,     4,     8,
-       8,     4,    93,    94,    95,    96,    97,    98,   398,   100,
-      62,    63,    64,     3,   404,     3,     3,     8,     8,   142,
-       8,   144,   145,     3,    76,    77,   404,   417,     8,     4,
-     420,    82,    83,    84,    85,   166,     4,    89,    90,   417,
-       3,   431,   420,   166,     4,     4,   404,     8,     3,   417,
-     417,   441,   417,   431,   417,     4,   446,     4,     4,   417,
-     446,     4,   420,   441,     4,     4,   446,     4,   446,    34,
-      35,    36,    37,   431,   166,   166,   420,   467,     4,   417,
-       4,     4,   420,   441,     4,     4,   417,     4,   446,   467,
-     417,   417,     4,   431,     4,   441,   420,   417,   169,   169,
-     446,   417,   169,     4,   431,   431,     4,     4,     4,   467,
-       4,   431,   167,     4,   166,    33,   480,   481,   482,    76,
-      77,     4,     4,   167,   167,   167,    33,     4,     4,     4,
-     960,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    64,     4,    66,    67,
-       4,     4,    70,    71,    72,     4,     4,    64,    76,    77,
-       4,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,     4,     4,     4,   167,     4,
-       4,   138,   139,     4,     4,   169,     4,     4,     4,     4,
-       4,     4,     4,   583,   167,   559,     4,     4,     4,     4,
-     590,     4,     4,     4,     4,   595,   596,     4,     4,   166,
-       4,     4,   590,     4,     4,   167,     4,     4,   582,     4,
-       4,   611,     4,   613,   169,   169,     4,   169,   169,     4,
-       4,   167,   590,   611,     4,   613,   167,   167,     4,     4,
-     169,   169,   169,     4,     4,     4,     4,     4,   166,     4,
-       4,     7,   166,   611,     7,   613,     7,     7,     7,   166,
-     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
-     162,   163,   164,   165,     7,     7,   166,   166,     5,   166,
-       5,     5,     5,     5,    23,   166,     7,     5,     5,     5,
-       5,   169,   166,     7,     7,     7,     5,   166,   166,     5,
-     166,   166,   166,     7,   166,   166,   166,   166,   166,     5,
-     166,   166,     5,     7,   166,   166,   166,     7,     7,   166,
-     166,   166,   133,   166,   166,   166,   166,   166,   166,   166,
-     166,     7,     7,     7,     7,     7,     7,     7,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     3,   515,
-       6,     3,     6,     6,     3,     6,     3,     3,     6,     3,
-     169,     6,     3,     6,     4,     4,     4,     4,     4,     4,
-       3,   166,     6,   583,     4,     6,     8,     4,     4,     4,
-       4,   167,     4,     4,   167,     4,   167,   167,   167,     4,
-     167,   167,     6,     3,     3,   167,   169,     4,   167,   167,
-     167,     5,     8,   167,   167,     8,     4,     8,     8,     4,
-       4,     4,     4,   363,   166,     4,     7,     4,   166,   166,
-     166,   166,   166,   166,   166,   166,     4,     4,   166,   169,
-     820,   167,   166,   823,   169,   166,   826,   167,   167,   829,
-     398,   802,   832,   670,   590,   835,   832,   820,   826,   838,
-     840,   829,   832,   843,   832,   840,   846,   835,   826,   826,
-     848,   826,   840,   826,   846,   843,   404,   835,   826,   859,
-     835,   829,   835,   825,   832,   865,   855,   835,   449,   828,
-     870,   859,   840,   829,   826,   843,   832,   865,   826,   835,
-     837,   835,   870,   989,   840,   826,   417,   835,   831,   826,
-     826,   859,   840,   832,   835,   843,   826,   865,   835,   835,
-     826,   835,   870,   840,   840,   835,   843,   843,   829,   835,
-     840,   865,   834,   843,   870,   441,   867,   865,   845,   865,
-     843,   446,   420,   635,   994,   841,   431,   859,   473,   871,
-    1005,   865,   467,   584,   613,  1022,  1039,    -1,   470,    -1,
+      70,    71,    72,    73,    74,    75,    74,    77,    78,    79,
+      80,    76,    78,   592,    72,    73,    74,    75,    78,    77,
+      78,   528,    80,   363,   831,    73,    73,   534,    77,    78,
+      68,    73,     5,    10,     7,   831,     9,   831,    17,    63,
+       0,    73,    72,    73,    74,    75,   831,    77,    78,    12,
+      80,    75,    76,    77,    74,    73,    74,    75,     7,     3,
+       7,    73,     6,    75,    88,    73,     7,    91,    14,    15,
+       7,    73,    18,    75,    11,    21,    13,    73,     7,     3,
+       7,    73,     7,    75,     8,    22,     7,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,     7,    27,    28,    29,
+      64,    65,    66,    67,    68,    69,   503,     3,   103,   104,
+       6,     3,    76,    77,     6,   512,    53,    54,    55,    56,
+      57,    58,     3,   103,   104,    62,    63,     8,    76,    77,
+      76,    77,    62,    63,    64,     7,    73,     3,     3,    76,
+      77,   165,     8,     8,     7,    64,    76,    77,     3,    86,
+      87,     3,   131,     8,     7,    92,     8,    76,    77,    89,
+      90,     7,   139,     7,     3,   102,   114,   115,   105,     8,
+     165,   148,   149,   150,     3,   112,   113,     6,   985,   116,
+     117,   133,   134,   135,   136,     3,    16,    17,   165,   985,
+       8,   985,   165,   166,   167,   168,    82,    83,    84,    85,
+     985,   165,   165,    25,    26,    27,    28,    29,    34,    35,
+      36,    37,   165,    27,    28,    29,   168,   165,     3,   165,
+      62,     3,   141,     8,   143,   144,     8,   140,   165,     3,
+       6,    53,    54,    55,     8,   165,     3,    59,    60,    61,
+     819,    63,     3,     3,     8,   585,   165,     8,     8,    63,
+      19,    20,    74,     4,    76,    77,    78,    79,    80,    81,
+       3,     3,    76,    77,     8,     8,    88,     3,     3,    91,
+      92,   142,     8,    87,   145,   146,   147,    99,    33,    93,
+      94,    95,    96,    97,    98,     3,   100,     3,    33,     4,
+       8,   361,     8,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,     4,    64,
+       4,    66,    67,   351,   352,    70,    71,    72,     3,    64,
+       3,    76,    77,     8,     3,     8,   396,     4,     4,     8,
+     100,   101,   402,   106,   107,   108,   109,   110,   111,     4,
+       4,     3,     3,   165,   402,   415,     8,     8,   418,     4,
+     418,   165,     4,    93,    94,    95,    96,   415,    98,   429,
+     418,     3,     8,     4,     4,     3,     8,   415,   415,   439,
+       8,   429,   402,   415,   444,     3,     8,     3,   444,     4,
+       8,   439,     8,   415,   444,   415,   444,     3,   418,     4,
+     439,     3,     8,     4,   464,   444,     4,   415,   418,   429,
+     418,     8,     3,   415,     4,     4,   464,   415,     4,   439,
+     165,   429,     4,   415,   444,     4,     4,   429,   165,   415,
+     165,     4,     4,   415,     4,     4,     4,   429,    25,    26,
+      27,    28,    29,     4,   464,     4,     4,   429,   168,   477,
+     478,   479,   168,   168,     4,     4,     4,     4,     4,   956,
+       4,     4,   166,   166,   166,   166,    53,    54,    55,     4,
+       4,    58,     4,     4,     4,     4,    63,    64,     4,   166,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,    76,
+      77,     4,    79,     4,    81,     4,   168,     4,     4,     4,
+       4,    88,   166,     4,    91,     4,     4,     4,     4,     4,
+       4,     4,    99,     4,     4,     4,     4,     4,     4,   579,
+       4,     4,   166,     4,     4,   168,   586,     4,   556,   168,
+     168,   591,   592,     4,     4,   168,     4,     4,   586,   166,
+       4,   166,   166,     4,     4,   168,     4,   607,   168,   609,
+     578,    76,    77,     4,     4,     4,     4,     4,     4,   607,
+      23,   609,     7,     7,     7,     7,   586,     7,     7,   165,
+     165,   165,     7,     5,     5,     5,     5,   165,   165,     5,
+       7,   165,     5,     5,     5,     5,     4,   607,     7,   609,
+       7,     7,     5,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,     5,     7,   165,   165,
+     165,   165,   137,   138,   151,   152,   153,   154,   155,   156,
+     157,   158,   159,   160,   161,   162,   163,   164,     5,   165,
+       5,     7,   165,     7,     7,     7,     7,   165,   165,     7,
+     165,     7,     7,     7,     7,     4,     4,     4,     4,     4,
+     165,   165,     4,   165,     4,   165,     4,   165,     4,   132,
+       3,     6,   165,   165,     6,   165,     3,     6,     3,     3,
+       6,     4,     3,   165,     6,     3,     6,     6,     3,     6,
+     165,     4,     4,   165,     4,     4,   165,   165,     4,   165,
+     165,   165,     3,   165,     8,     3,   165,     6,     4,   165,
+     165,     4,     4,     4,     4,     4,   168,   166,     4,   166,
+       4,   166,   168,   166,   166,     4,     6,     4,   512,     4,
+       8,     3,     8,   586,     8,   166,     4,     8,   166,     4,
+     166,   168,   166,   166,     4,     4,     7,     5,   166,     4,
+       4,   166,   166,     4,     4,   402,   579,   361,   396,   798,
+     165,   165,   821,   165,   165,   165,   816,   165,   165,   819,
+     165,   165,   822,   166,   165,   825,   168,   165,   828,   166,
+     166,   831,   828,   831,   822,   168,   836,   825,   828,   839,
+     828,   836,   842,   831,   822,   822,   825,   165,   836,   828,
+     822,   839,   831,   831,   831,   855,   666,   836,   816,   834,
+     822,   861,   822,   861,   844,   825,   866,   855,   828,   831,
+     447,   831,   842,   861,   822,   851,   836,   824,   866,   839,
+     822,   831,   822,   831,   822,   985,   827,   866,   836,   831,
+     822,   839,   415,   831,   836,   855,   822,   839,   833,   831,
+     822,   861,   825,   830,   836,   831,   866,   839,   828,   831,
+     863,   861,   444,   861,   836,   861,   418,   839,   439,   990,
+     841,   839,   429,   631,   837,   855,   609,   470,   580,  1001,
+     867,   464,  1018,  1035,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   989,
-      -1,    -1,    -1,    -1,   994,    -1,    -1,    -1,    -1,   994,
-      -1,   989,    -1,    -1,    -1,  1005,   994,    -1,    -1,    -1,
-      -1,   989,    -1,    -1,   989,    -1,   989,  1005,    -1,    -1,
-      -1,   989,    -1,    -1,    -1,    -1,   994,    -1,    -1,    -1,
-      -1,    -1,    -1,   989,    -1,   989,    -1,  1005,   994,    -1,
-      -1,   989,    -1,    -1,    -1,    -1,   994,    -1,   989,  1005,
-      -1,    -1,   989,   989,    -1,   989,    -1,   994,   994,   989,
-      -1,    -1,    -1,   989,   994
+      -1,    -1,    -1,    -1,    -1,   985,    -1,   985,    -1,    -1,
+     990,    -1,    -1,    -1,    -1,   990,    -1,   985,    -1,    -1,
+      -1,  1001,   990,    -1,    -1,    -1,   985,   985,   985,    -1,
+      -1,   990,    -1,  1001,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  1001,   985,    -1,   985,    -1,    -1,    -1,    -1,
+     990,    -1,    -1,    -1,    -1,   985,    -1,   985,    -1,    -1,
+      -1,  1001,   990,   985,    -1,    -1,    -1,   985,   990,    -1,
+      -1,    -1,    -1,   985,    -1,    -1,    -1,    -1,   990,   985,
+      -1,    -1,    -1,   985,    -1,    -1,    -1,    -1,   990
   };
 
   const unsigned short
   Dhcp4Parser::yystos_[] =
   {
-       0,   152,   153,   154,   155,   156,   157,   158,   159,   160,
-     161,   162,   163,   164,   165,   171,   172,   173,   174,   175,
-     176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
-       0,     5,     7,     9,   166,   167,   168,   169,   186,   187,
-     188,   193,     7,   202,     7,   208,     7,   225,     7,   318,
-       7,   398,     7,   414,     7,   350,     7,   356,     7,   380,
-       7,   294,     7,   471,     7,   519,     7,   511,   194,   189,
-     203,   209,   226,   319,   399,   415,   351,   357,   381,   295,
-     472,   520,   512,   186,   195,   196,   166,   191,   192,    10,
-     140,   149,   150,   151,   166,   201,   204,   205,   206,   502,
-     504,   506,   517,     7,    11,    13,    22,    24,    25,    26,
+       0,   151,   152,   153,   154,   155,   156,   157,   158,   159,
+     160,   161,   162,   163,   164,   170,   171,   172,   173,   174,
+     175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
+       0,     5,     7,     9,   165,   166,   167,   168,   185,   186,
+     187,   192,     7,   201,     7,   207,     7,   224,     7,   317,
+       7,   397,     7,   413,     7,   349,     7,   355,     7,   379,
+       7,   293,     7,   470,     7,   517,     7,   509,   193,   188,
+     202,   208,   225,   318,   398,   414,   350,   356,   380,   294,
+     471,   518,   510,   185,   194,   195,   165,   190,   191,    10,
+     139,   148,   149,   150,   165,   200,   203,   204,   205,   500,
+     502,   504,   515,     7,    11,    13,    22,    24,    25,    26,
       27,    28,    29,    30,    31,    32,    53,    54,    55,    56,
       57,    58,    62,    63,    73,    76,    77,    86,    87,    92,
-     102,   105,   112,   113,   116,   117,   201,   210,   211,   212,
-     213,   214,   215,   216,   218,   219,   220,   221,   236,   238,
-     244,   246,   279,   288,   302,   312,   340,   348,   374,   404,
-     406,   408,   419,   421,   423,   446,   458,   459,   467,   469,
-     508,    14,    15,    18,    21,   201,   223,   224,   227,   229,
-     232,   235,   404,   406,    59,    60,    61,    74,    78,    79,
-      80,    81,    88,    91,    99,   201,   212,   213,   214,   219,
-     220,   320,   321,   322,   324,   326,   328,   330,   332,   334,
-     336,   339,   374,   392,   404,   406,   408,   419,   421,   423,
-     443,    75,   201,   332,   334,   374,   400,   401,   402,   404,
-     406,    87,    93,    94,    95,    96,    97,    98,   100,   201,
-     374,   404,   406,   416,   417,   418,   419,   421,   423,   425,
-     429,   431,   433,   435,   437,   439,   441,   348,    33,    64,
-      66,    67,    70,    71,    72,   201,   264,   358,   359,   360,
-     361,   362,   363,   364,   366,   368,   370,   371,   373,   404,
-     406,    65,    68,    69,   201,   264,   362,   368,   382,   383,
-     384,   385,   386,   388,   389,   390,   391,   404,   406,   103,
-     104,   201,   296,   297,   298,   300,   118,   119,   120,   121,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
-     138,   139,   201,   404,   406,   473,   474,   475,   476,   478,
-     480,   481,   483,   484,   485,   488,   490,   491,   492,   493,
-     496,   498,   500,   141,   521,   522,   523,    12,   201,   513,
-     514,   515,     6,     3,     4,     8,     3,   207,   518,   503,
-     505,   507,     4,     3,     8,   509,   510,   222,   239,     4,
-       4,     4,   420,   422,   424,   237,   245,   247,     4,     4,
-       4,     4,   217,   313,   349,   375,   341,   405,   407,   280,
-     447,   409,   289,   303,     4,   460,   468,   470,     3,     8,
-     228,   230,   233,     4,     3,     8,   325,   327,   329,   393,
-     323,   331,     4,   337,   335,   333,   444,     3,     8,   403,
-       3,     8,   442,   430,   432,   436,   434,   440,   438,   426,
-       8,     3,     8,   365,   265,     4,   369,   367,   372,     4,
-       8,     3,   387,     4,     4,     8,     3,   299,   301,     3,
-       8,     4,   477,   479,     4,   482,     4,     4,   486,   489,
-       4,     4,     4,   494,   497,   499,   501,     3,     8,   524,
-       3,     8,   516,     3,     8,   186,   186,   166,     4,     4,
-       4,     4,     4,   205,   513,     4,     4,     4,   169,   169,
-     169,     4,     4,     4,     4,     4,     4,   167,   167,   167,
-     167,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,   167,     4,     4,     4,   211,     4,     4,
-       4,   169,   224,     4,     4,     4,     4,     4,     4,   167,
-       4,     4,     4,     4,   321,     4,   401,     4,     4,     4,
-       4,     4,     4,     4,     4,   418,     4,     4,   167,     4,
-       4,     4,   169,   360,     4,   169,   169,   384,     4,     4,
-     297,   169,     4,     4,   167,     4,   167,   167,     4,     4,
-     169,   169,   169,     4,     4,     4,     4,   474,     4,   522,
-       4,   514,     4,     7,     7,   186,   186,   186,     8,     7,
-       7,     7,   166,   166,   166,     7,     7,     5,   166,     5,
-       5,     5,     5,   188,   190,   166,     5,     5,     5,     5,
-       7,     7,   190,     7,     5,   197,    16,    17,   231,    19,
-      20,   234,   166,   166,   166,     5,   166,   166,    82,    83,
-      84,    85,   338,   197,   166,     7,   166,   197,   166,   166,
-     166,   166,   166,   166,   166,   166,   166,   166,   166,   166,
-     166,   166,   186,   166,   166,   166,    17,   132,   487,   133,
-     134,   135,   136,   137,   169,   495,   166,   166,   166,     5,
-       5,   186,   210,   521,   513,   223,    23,   240,   241,   242,
-      33,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,   201,   252,   253,   254,
-     257,   259,   261,   263,   264,   266,   267,   268,   269,   270,
-     271,   272,   273,   275,   277,   278,   252,     7,   248,   249,
-     250,     7,   314,   315,   316,     7,   352,   353,   354,     7,
-     376,   377,   378,     7,   342,   343,   344,    93,    94,    95,
-      96,    98,   281,   282,   283,   284,   285,   286,   287,     7,
-     448,   449,     7,   410,   411,   412,     7,   290,   291,   292,
-     106,   107,   108,   109,   110,   111,   304,   305,   306,   307,
-     308,   309,   310,   311,   114,   115,   201,   404,   406,   461,
-     462,   463,   465,   473,   198,     7,   394,   395,   396,   101,
-     425,   427,   445,     7,   525,   526,   248,     8,     8,     8,
-       8,   243,     3,     8,   255,   258,   260,   262,     4,     4,
-       4,     4,     4,   274,   276,     4,     4,     4,     4,     4,
-       3,     8,     8,   251,     6,     3,   317,     6,     3,   355,
-       6,     3,   379,     6,     3,   345,     6,     3,     3,     6,
-     450,     3,     6,   413,     6,     3,   293,     6,     3,     4,
-       4,     4,     4,     4,     4,     3,     8,   464,   466,     3,
-       8,     8,   166,   199,   200,   397,     6,     3,   428,     8,
-     527,     3,     6,     6,     4,   241,     4,     4,     4,     4,
-     167,   169,   167,   169,   167,     4,     4,   167,   167,   167,
-     167,   169,   253,   252,   250,   320,   316,   358,   354,   382,
-     378,   201,   212,   213,   214,   219,   220,   264,   312,   330,
-     332,   334,   336,   346,   347,   374,   404,   406,   419,   421,
-     423,   443,   344,   282,    89,    90,   201,   264,   348,   374,
-     404,   406,   419,   421,   423,   451,   452,   453,   454,   455,
-     457,   449,   416,   412,   296,   292,   167,   167,   167,   167,
-     167,   167,   305,     4,     4,   462,     6,     3,   400,   396,
-       4,   142,   144,   145,   201,   264,   404,   406,   528,   529,
-     530,   531,   533,   526,   166,    34,    35,    36,    37,   256,
-     166,   166,   166,   166,   166,     8,     8,     8,     8,     3,
-       8,   456,     4,     8,     3,     8,     8,   166,   166,   166,
-       8,   197,   534,     4,   532,     3,     8,   347,     4,   169,
-     453,     4,   167,     4,   529,   166,     5,   166,     7,   535,
-     536,   537,     3,     6,   143,   146,   147,   148,   538,   539,
-     540,   542,   543,   544,   536,   541,     4,     4,     4,     3,
-       8,     4,   169,   167,   167,   539,   166
+     102,   105,   112,   113,   116,   117,   200,   209,   210,   211,
+     212,   213,   214,   215,   217,   218,   219,   220,   235,   237,
+     243,   245,   278,   287,   301,   311,   339,   347,   373,   403,
+     405,   407,   418,   420,   422,   445,   457,   458,   466,   468,
+     506,    14,    15,    18,    21,   200,   222,   223,   226,   228,
+     231,   234,   403,   405,    59,    60,    61,    74,    78,    79,
+      80,    81,    88,    91,    99,   200,   211,   212,   213,   218,
+     219,   319,   320,   321,   323,   325,   327,   329,   331,   333,
+     335,   338,   373,   391,   403,   405,   407,   418,   420,   422,
+     442,    75,   200,   331,   333,   373,   399,   400,   401,   403,
+     405,    87,    93,    94,    95,    96,    97,    98,   100,   200,
+     373,   403,   405,   415,   416,   417,   418,   420,   422,   424,
+     428,   430,   432,   434,   436,   438,   440,   347,    33,    64,
+      66,    67,    70,    71,    72,   200,   263,   357,   358,   359,
+     360,   361,   362,   363,   365,   367,   369,   370,   372,   403,
+     405,    65,    68,    69,   200,   263,   361,   367,   381,   382,
+     383,   384,   385,   387,   388,   389,   390,   403,   405,   103,
+     104,   200,   295,   296,   297,   299,   118,   119,   120,   121,
+     122,   123,   124,   125,   126,   127,   128,   129,   130,   137,
+     138,   200,   403,   405,   472,   473,   474,   475,   477,   479,
+     480,   482,   483,   484,   487,   489,   490,   491,   494,   496,
+     498,   140,   519,   520,   521,    12,   200,   511,   512,   513,
+       6,     3,     4,     8,     3,   206,   516,   501,   503,   505,
+       4,     3,     8,   507,   508,   221,   238,     4,     4,     4,
+     419,   421,   423,   236,   244,   246,     4,     4,     4,     4,
+     216,   312,   348,   374,   340,   404,   406,   279,   446,   408,
+     288,   302,     4,   459,   467,   469,     3,     8,   227,   229,
+     232,     4,     3,     8,   324,   326,   328,   392,   322,   330,
+       4,   336,   334,   332,   443,     3,     8,   402,     3,     8,
+     441,   429,   431,   435,   433,   439,   437,   425,     8,     3,
+       8,   364,   264,     4,   368,   366,   371,     4,     8,     3,
+     386,     4,     4,     8,     3,   298,   300,     3,     8,     4,
+     476,   478,     4,   481,     4,     4,   485,   488,     4,     4,
+     492,   495,   497,   499,     3,     8,   522,     3,     8,   514,
+       3,     8,   185,   185,   165,     4,     4,     4,     4,     4,
+     204,   511,     4,     4,     4,   168,   168,   168,     4,     4,
+       4,     4,     4,     4,   166,   166,   166,   166,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+     166,     4,     4,     4,   210,     4,     4,     4,   168,   223,
+       4,     4,     4,     4,     4,     4,   166,     4,     4,     4,
+       4,   320,     4,   400,     4,     4,     4,     4,     4,     4,
+       4,     4,   417,     4,     4,   166,     4,     4,     4,   168,
+     359,     4,   168,   168,   383,     4,     4,   296,   168,     4,
+       4,   166,     4,   166,   166,     4,     4,   168,   168,     4,
+       4,     4,     4,   473,     4,   520,     4,   512,     4,     7,
+       7,   185,   185,   185,     8,     7,     7,     7,   165,   165,
+     165,     7,     7,     5,   165,     5,     5,     5,     5,   187,
+     189,   165,     5,     5,     5,     5,     7,     7,   189,     7,
+       5,   196,    16,    17,   230,    19,    20,   233,   165,   165,
+     165,     5,   165,   165,    82,    83,    84,    85,   337,   196,
+     165,     7,   165,   196,   165,   165,   165,   165,   165,   165,
+     165,   165,   165,   165,   165,   165,   165,   165,   185,   165,
+     165,   165,    17,   131,   486,   132,   133,   134,   135,   136,
+     168,   493,   165,   165,   165,     5,     5,   185,   209,   519,
+     511,   222,    23,   239,   240,   241,    33,    38,    39,    40,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,   200,   251,   252,   253,   256,   258,   260,   262,
+     263,   265,   266,   267,   268,   269,   270,   271,   272,   274,
+     276,   277,   251,     7,   247,   248,   249,     7,   313,   314,
+     315,     7,   351,   352,   353,     7,   375,   376,   377,     7,
+     341,   342,   343,    93,    94,    95,    96,    98,   280,   281,
+     282,   283,   284,   285,   286,     7,   447,   448,     7,   409,
+     410,   411,     7,   289,   290,   291,   106,   107,   108,   109,
+     110,   111,   303,   304,   305,   306,   307,   308,   309,   310,
+     114,   115,   200,   403,   405,   460,   461,   462,   464,   472,
+     197,     7,   393,   394,   395,   101,   424,   426,   444,     7,
+     523,   524,   247,     8,     8,     8,     8,   242,     3,     8,
+     254,   257,   259,   261,     4,     4,     4,     4,     4,   273,
+     275,     4,     4,     4,     4,     4,     3,     8,     8,   250,
+       6,     3,   316,     6,     3,   354,     6,     3,   378,     6,
+       3,   344,     6,     3,     3,     6,   449,     3,     6,   412,
+       6,     3,   292,     6,     3,     4,     4,     4,     4,     4,
+       4,     3,     8,   463,   465,     3,     8,     8,   165,   198,
+     199,   396,     6,     3,   427,     8,   525,     3,     6,     6,
+       4,   240,     4,     4,     4,     4,   166,   168,   166,   168,
+     166,     4,     4,   166,   166,   166,   166,   168,   252,   251,
+     249,   319,   315,   357,   353,   381,   377,   200,   211,   212,
+     213,   218,   219,   263,   311,   329,   331,   333,   335,   345,
+     346,   373,   403,   405,   418,   420,   422,   442,   343,   281,
+      89,    90,   200,   263,   347,   373,   403,   405,   418,   420,
+     422,   450,   451,   452,   453,   454,   456,   448,   415,   411,
+     295,   291,   166,   166,   166,   166,   166,   166,   304,     4,
+       4,   461,     6,     3,   399,   395,     4,   141,   143,   144,
+     200,   263,   403,   405,   526,   527,   528,   529,   531,   524,
+     165,    34,    35,    36,    37,   255,   165,   165,   165,   165,
+     165,     8,     8,     8,     8,     3,     8,   455,     4,     8,
+       3,     8,     8,   165,   165,   165,     8,   196,   532,     4,
+     530,     3,     8,   346,     4,   168,   452,     4,   166,     4,
+     527,   165,     5,   165,     7,   533,   534,   535,     3,     6,
+     142,   145,   146,   147,   536,   537,   538,   540,   541,   542,
+     534,   539,     4,     4,     4,     3,     8,     4,   168,   166,
+     166,   537,   165
   };
 
   const unsigned short
   Dhcp4Parser::yyr1_[] =
   {
-       0,   170,   172,   171,   173,   171,   174,   171,   175,   171,
-     176,   171,   177,   171,   178,   171,   179,   171,   180,   171,
-     181,   171,   182,   171,   183,   171,   184,   171,   185,   171,
-     186,   186,   186,   186,   186,   186,   186,   187,   189,   188,
-     190,   191,   191,   192,   192,   194,   193,   195,   195,   196,
-     196,   198,   197,   199,   199,   200,   200,   201,   203,   202,
-     204,   204,   205,   205,   205,   205,   205,   205,   207,   206,
-     209,   208,   210,   210,   211,   211,   211,   211,   211,   211,
-     211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
-     211,   211,   211,   211,   211,   211,   211,   211,   211,   211,
-     211,   211,   211,   211,   211,   211,   211,   212,   213,   214,
-     215,   217,   216,   218,   219,   220,   222,   221,   223,   223,
-     224,   224,   224,   224,   224,   224,   224,   226,   225,   228,
-     227,   230,   229,   231,   231,   233,   232,   234,   234,   235,
-     237,   236,   239,   238,   240,   240,   241,   243,   242,   245,
-     244,   247,   246,   248,   248,   249,   249,   251,   250,   252,
-     252,   253,   253,   253,   253,   253,   253,   253,   253,   253,
-     253,   253,   253,   253,   253,   253,   253,   253,   253,   255,
-     254,   256,   256,   256,   256,   258,   257,   260,   259,   262,
-     261,   263,   265,   264,   266,   267,   268,   269,   270,   271,
-     272,   274,   273,   276,   275,   277,   278,   280,   279,   281,
-     281,   282,   282,   282,   282,   282,   283,   284,   285,   286,
-     287,   289,   288,   290,   290,   291,   291,   293,   292,   295,
-     294,   296,   296,   296,   297,   297,   299,   298,   301,   300,
-     303,   302,   304,   304,   305,   305,   305,   305,   305,   305,
-     306,   307,   308,   309,   310,   311,   313,   312,   314,   314,
-     315,   315,   317,   316,   319,   318,   320,   320,   321,   321,
-     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
-     321,   321,   321,   321,   321,   321,   321,   321,   321,   321,
-     321,   321,   323,   322,   325,   324,   327,   326,   329,   328,
-     331,   330,   333,   332,   335,   334,   337,   336,   338,   338,
-     338,   338,   339,   341,   340,   342,   342,   343,   343,   345,
-     344,   346,   346,   347,   347,   347,   347,   347,   347,   347,
-     347,   347,   347,   347,   347,   347,   347,   347,   347,   347,
-     347,   347,   349,   348,   351,   350,   352,   352,   353,   353,
-     355,   354,   357,   356,   358,   358,   359,   359,   360,   360,
-     360,   360,   360,   360,   360,   360,   360,   360,   361,   362,
-     363,   365,   364,   367,   366,   369,   368,   370,   372,   371,
-     373,   375,   374,   376,   376,   377,   377,   379,   378,   381,
-     380,   382,   382,   383,   383,   384,   384,   384,   384,   384,
-     384,   384,   384,   384,   385,   387,   386,   388,   389,   390,
-     391,   393,   392,   394,   394,   395,   395,   397,   396,   399,
-     398,   400,   400,   401,   401,   401,   401,   401,   401,   401,
-     403,   402,   405,   404,   407,   406,   409,   408,   410,   410,
-     411,   411,   413,   412,   415,   414,   416,   416,   417,   417,
-     418,   418,   418,   418,   418,   418,   418,   418,   418,   418,
-     418,   418,   418,   418,   418,   420,   419,   422,   421,   424,
-     423,   426,   425,   428,   427,   430,   429,   432,   431,   434,
-     433,   436,   435,   438,   437,   440,   439,   442,   441,   444,
-     443,   445,   445,   447,   446,   448,   448,   450,   449,   451,
-     451,   452,   452,   453,   453,   453,   453,   453,   453,   453,
-     453,   453,   453,   453,   454,   456,   455,   457,   458,   460,
-     459,   461,   461,   462,   462,   462,   462,   462,   464,   463,
-     466,   465,   468,   467,   470,   469,   472,   471,   473,   473,
-     474,   474,   474,   474,   474,   474,   474,   474,   474,   474,
-     474,   474,   474,   474,   474,   474,   474,   474,   474,   475,
-     477,   476,   479,   478,   480,   482,   481,   483,   484,   486,
-     485,   487,   487,   489,   488,   490,   491,   492,   494,   493,
-     495,   495,   495,   495,   495,   497,   496,   499,   498,   501,
-     500,   503,   502,   505,   504,   507,   506,   509,   508,   510,
-     508,   512,   511,   513,   513,   514,   514,   516,   515,   518,
-     517,   520,   519,   521,   521,   522,   524,   523,   525,   525,
-     527,   526,   528,   528,   529,   529,   529,   529,   529,   529,
-     529,   530,   532,   531,   534,   533,   535,   535,   537,   536,
-     538,   538,   539,   539,   539,   539,   541,   540,   542,   543,
-     544
+       0,   169,   171,   170,   172,   170,   173,   170,   174,   170,
+     175,   170,   176,   170,   177,   170,   178,   170,   179,   170,
+     180,   170,   181,   170,   182,   170,   183,   170,   184,   170,
+     185,   185,   185,   185,   185,   185,   185,   186,   188,   187,
+     189,   190,   190,   191,   191,   193,   192,   194,   194,   195,
+     195,   197,   196,   198,   198,   199,   199,   200,   202,   201,
+     203,   203,   204,   204,   204,   204,   204,   204,   206,   205,
+     208,   207,   209,   209,   210,   210,   210,   210,   210,   210,
+     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
+     210,   210,   210,   210,   210,   210,   210,   210,   210,   210,
+     210,   210,   210,   210,   210,   210,   210,   211,   212,   213,
+     214,   216,   215,   217,   218,   219,   221,   220,   222,   222,
+     223,   223,   223,   223,   223,   223,   223,   225,   224,   227,
+     226,   229,   228,   230,   230,   232,   231,   233,   233,   234,
+     236,   235,   238,   237,   239,   239,   240,   242,   241,   244,
+     243,   246,   245,   247,   247,   248,   248,   250,   249,   251,
+     251,   252,   252,   252,   252,   252,   252,   252,   252,   252,
+     252,   252,   252,   252,   252,   252,   252,   252,   252,   254,
+     253,   255,   255,   255,   255,   257,   256,   259,   258,   261,
+     260,   262,   264,   263,   265,   266,   267,   268,   269,   270,
+     271,   273,   272,   275,   274,   276,   277,   279,   278,   280,
+     280,   281,   281,   281,   281,   281,   282,   283,   284,   285,
+     286,   288,   287,   289,   289,   290,   290,   292,   291,   294,
+     293,   295,   295,   295,   296,   296,   298,   297,   300,   299,
+     302,   301,   303,   303,   304,   304,   304,   304,   304,   304,
+     305,   306,   307,   308,   309,   310,   312,   311,   313,   313,
+     314,   314,   316,   315,   318,   317,   319,   319,   320,   320,
+     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
+     320,   320,   320,   320,   320,   320,   320,   320,   320,   320,
+     320,   320,   322,   321,   324,   323,   326,   325,   328,   327,
+     330,   329,   332,   331,   334,   333,   336,   335,   337,   337,
+     337,   337,   338,   340,   339,   341,   341,   342,   342,   344,
+     343,   345,   345,   346,   346,   346,   346,   346,   346,   346,
+     346,   346,   346,   346,   346,   346,   346,   346,   346,   346,
+     346,   346,   348,   347,   350,   349,   351,   351,   352,   352,
+     354,   353,   356,   355,   357,   357,   358,   358,   359,   359,
+     359,   359,   359,   359,   359,   359,   359,   359,   360,   361,
+     362,   364,   363,   366,   365,   368,   367,   369,   371,   370,
+     372,   374,   373,   375,   375,   376,   376,   378,   377,   380,
+     379,   381,   381,   382,   382,   383,   383,   383,   383,   383,
+     383,   383,   383,   383,   384,   386,   385,   387,   388,   389,
+     390,   392,   391,   393,   393,   394,   394,   396,   395,   398,
+     397,   399,   399,   400,   400,   400,   400,   400,   400,   400,
+     402,   401,   404,   403,   406,   405,   408,   407,   409,   409,
+     410,   410,   412,   411,   414,   413,   415,   415,   416,   416,
+     417,   417,   417,   417,   417,   417,   417,   417,   417,   417,
+     417,   417,   417,   417,   417,   419,   418,   421,   420,   423,
+     422,   425,   424,   427,   426,   429,   428,   431,   430,   433,
+     432,   435,   434,   437,   436,   439,   438,   441,   440,   443,
+     442,   444,   444,   446,   445,   447,   447,   449,   448,   450,
+     450,   451,   451,   452,   452,   452,   452,   452,   452,   452,
+     452,   452,   452,   452,   453,   455,   454,   456,   457,   459,
+     458,   460,   460,   461,   461,   461,   461,   461,   463,   462,
+     465,   464,   467,   466,   469,   468,   471,   470,   472,   472,
+     473,   473,   473,   473,   473,   473,   473,   473,   473,   473,
+     473,   473,   473,   473,   473,   473,   473,   473,   474,   476,
+     475,   478,   477,   479,   481,   480,   482,   483,   485,   484,
+     486,   486,   488,   487,   489,   490,   492,   491,   493,   493,
+     493,   493,   493,   495,   494,   497,   496,   499,   498,   501,
+     500,   503,   502,   505,   504,   507,   506,   508,   506,   510,
+     509,   511,   511,   512,   512,   514,   513,   516,   515,   518,
+     517,   519,   519,   520,   522,   521,   523,   523,   525,   524,
+     526,   526,   527,   527,   527,   527,   527,   527,   527,   528,
+     530,   529,   532,   531,   533,   533,   535,   534,   536,   536,
+     537,   537,   537,   537,   539,   538,   540,   541,   542
   };
 
   const unsigned char
@@ -4691,17 +4681,16 @@ namespace isc { namespace dhcp {
        6,     1,     3,     1,     1,     1,     1,     1,     0,     4,
        0,     4,     0,     4,     0,     6,     0,     4,     1,     3,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
-       0,     4,     0,     4,     3,     0,     4,     3,     3,     0,
-       4,     1,     1,     0,     4,     3,     3,     3,     0,     4,
-       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
-       4,     0,     4,     0,     4,     0,     4,     0,     4,     0,
-       6,     0,     4,     1,     3,     1,     1,     0,     6,     0,
-       6,     0,     4,     1,     3,     1,     0,     6,     1,     3,
-       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
-       1,     3,     0,     4,     0,     6,     1,     3,     0,     4,
-       1,     3,     1,     1,     1,     1,     0,     4,     3,     3,
-       3
+       1,     1,     1,     1,     1,     1,     1,     1,     3,     0,
+       4,     0,     4,     3,     0,     4,     3,     3,     0,     4,
+       1,     1,     0,     4,     3,     3,     0,     4,     1,     1,
+       1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
+       4,     0,     4,     0,     4,     0,     4,     0,     6,     0,
+       4,     1,     3,     1,     1,     0,     6,     0,     6,     0,
+       4,     1,     3,     1,     0,     6,     1,     3,     0,     4,
+       1,     3,     1,     1,     1,     1,     1,     1,     1,     3,
+       0,     4,     0,     6,     1,     3,     0,     4,     1,     3,
+       1,     1,     1,     1,     0,     4,     3,     3,     3
   };
 
 
@@ -4748,10 +4737,9 @@ namespace isc { namespace dhcp {
   "\"enable-updates\"", "\"qualifying-suffix\"", "\"server-ip\"",
   "\"server-port\"", "\"sender-ip\"", "\"sender-port\"",
   "\"max-queue-size\"", "\"ncr-protocol\"", "\"ncr-format\"",
-  "\"always-include-fqdn\"", "\"override-no-update\"",
-  "\"override-client-update\"", "\"replace-client-name\"",
-  "\"generated-prefix\"", "\"tcp\"", "\"JSON\"", "\"when-present\"",
-  "\"never\"", "\"always\"", "\"when-not-present\"",
+  "\"override-no-update\"", "\"override-client-update\"",
+  "\"replace-client-name\"", "\"generated-prefix\"", "\"tcp\"", "\"JSON\"",
+  "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"",
   "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"Logging\"",
   "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"",
   "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"Dhcp6\"",
@@ -4835,92 +4823,91 @@ namespace isc { namespace dhcp {
   "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@103",
   "server_ip", "$@104", "server_port", "sender_ip", "$@105", "sender_port",
   "max_queue_size", "ncr_protocol", "$@106", "ncr_protocol_value",
-  "ncr_format", "$@107", "always_include_fqdn", "override_no_update",
-  "override_client_update", "replace_client_name", "$@108",
-  "replace_client_name_value", "generated_prefix", "$@109",
-  "hostname_char_set", "$@110", "hostname_char_replacement", "$@111",
-  "dhcp6_json_object", "$@112", "dhcpddns_json_object", "$@113",
-  "control_agent_json_object", "$@114", "config_control", "$@115", "$@116",
-  "sub_config_control", "$@117", "config_control_params",
-  "config_control_param", "config_databases", "$@118", "logging_object",
-  "$@119", "sub_logging", "$@120", "logging_params", "logging_param",
-  "loggers", "$@121", "loggers_entries", "logger_entry", "$@122",
-  "logger_params", "logger_param", "debuglevel", "severity", "$@123",
-  "output_options_list", "$@124", "output_options_list_content",
-  "output_entry", "$@125", "output_params_list", "output_params", "output",
-  "$@126", "flush", "maxsize", "maxver", YY_NULLPTR
+  "ncr_format", "$@107", "override_no_update", "override_client_update",
+  "replace_client_name", "$@108", "replace_client_name_value",
+  "generated_prefix", "$@109", "hostname_char_set", "$@110",
+  "hostname_char_replacement", "$@111", "dhcp6_json_object", "$@112",
+  "dhcpddns_json_object", "$@113", "control_agent_json_object", "$@114",
+  "config_control", "$@115", "$@116", "sub_config_control", "$@117",
+  "config_control_params", "config_control_param", "config_databases",
+  "$@118", "logging_object", "$@119", "sub_logging", "$@120",
+  "logging_params", "logging_param", "loggers", "$@121", "loggers_entries",
+  "logger_entry", "$@122", "logger_params", "logger_param", "debuglevel",
+  "severity", "$@123", "output_options_list", "$@124",
+  "output_options_list_content", "output_entry", "$@125",
+  "output_params_list", "output_params", "output", "$@126", "flush",
+  "maxsize", "maxver", YY_NULLPTR
   };
 
 #if PARSER4_DEBUG
   const unsigned short
   Dhcp4Parser::yyrline_[] =
   {
-       0,   255,   255,   255,   256,   256,   257,   257,   258,   258,
-     259,   259,   260,   260,   261,   261,   262,   262,   263,   263,
-     264,   264,   265,   265,   266,   266,   267,   267,   268,   268,
-     276,   277,   278,   279,   280,   281,   282,   285,   290,   290,
-     301,   304,   305,   308,   312,   319,   319,   326,   327,   330,
-     334,   341,   341,   348,   349,   352,   356,   367,   377,   377,
-     393,   394,   398,   399,   400,   401,   402,   403,   406,   406,
-     421,   421,   430,   431,   436,   437,   438,   439,   440,   441,
-     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
-     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
-     462,   463,   464,   465,   466,   467,   468,   471,   476,   481,
-     486,   491,   491,   499,   504,   509,   515,   515,   526,   527,
-     530,   531,   532,   533,   534,   535,   536,   539,   539,   548,
-     548,   558,   558,   565,   566,   569,   569,   576,   578,   582,
-     588,   588,   600,   600,   610,   611,   613,   615,   615,   633,
-     633,   645,   645,   655,   656,   659,   660,   663,   663,   673,
-     674,   677,   678,   679,   680,   681,   682,   683,   684,   685,
-     686,   687,   688,   689,   690,   691,   692,   693,   694,   697,
-     697,   704,   705,   706,   707,   710,   710,   718,   718,   726,
-     726,   734,   739,   739,   747,   752,   757,   762,   767,   772,
-     777,   782,   782,   790,   790,   798,   803,   808,   808,   818,
-     819,   822,   823,   824,   825,   826,   829,   834,   839,   844,
-     849,   854,   854,   864,   865,   868,   869,   872,   872,   882,
-     882,   892,   893,   894,   897,   898,   901,   901,   909,   909,
-     917,   917,   928,   929,   932,   933,   934,   935,   936,   937,
-     940,   945,   950,   955,   960,   965,   973,   973,   986,   987,
-     990,   991,   998,   998,  1024,  1024,  1035,  1036,  1040,  1041,
-    1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,  1051,
-    1052,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,  1061,
-    1062,  1063,  1066,  1066,  1074,  1074,  1082,  1082,  1090,  1090,
-    1098,  1098,  1106,  1106,  1114,  1114,  1124,  1124,  1131,  1132,
-    1133,  1134,  1137,  1144,  1144,  1155,  1156,  1160,  1161,  1164,
-    1164,  1172,  1173,  1176,  1177,  1178,  1179,  1180,  1181,  1182,
-    1183,  1184,  1185,  1186,  1187,  1188,  1189,  1190,  1191,  1192,
-    1193,  1194,  1201,  1201,  1214,  1214,  1223,  1224,  1227,  1228,
-    1233,  1233,  1248,  1248,  1262,  1263,  1266,  1267,  1270,  1271,
-    1272,  1273,  1274,  1275,  1276,  1277,  1278,  1279,  1282,  1284,
-    1289,  1291,  1291,  1299,  1299,  1307,  1307,  1315,  1317,  1317,
-    1325,  1334,  1334,  1346,  1347,  1352,  1353,  1358,  1358,  1370,
-    1370,  1382,  1383,  1388,  1389,  1394,  1395,  1396,  1397,  1398,
-    1399,  1400,  1401,  1402,  1405,  1407,  1407,  1415,  1417,  1419,
-    1424,  1432,  1432,  1444,  1445,  1448,  1449,  1452,  1452,  1462,
-    1462,  1472,  1473,  1476,  1477,  1478,  1479,  1480,  1481,  1482,
-    1485,  1485,  1493,  1493,  1518,  1518,  1548,  1548,  1558,  1559,
-    1562,  1563,  1566,  1566,  1575,  1575,  1584,  1585,  1588,  1589,
-    1593,  1594,  1595,  1596,  1597,  1598,  1599,  1600,  1601,  1602,
-    1603,  1604,  1605,  1606,  1607,  1610,  1610,  1618,  1618,  1626,
-    1626,  1634,  1634,  1642,  1642,  1652,  1652,  1660,  1660,  1668,
-    1668,  1676,  1676,  1684,  1684,  1692,  1692,  1700,  1700,  1713,
-    1713,  1723,  1724,  1730,  1730,  1740,  1741,  1744,  1744,  1754,
-    1755,  1758,  1759,  1762,  1763,  1764,  1765,  1766,  1767,  1768,
-    1769,  1770,  1771,  1772,  1775,  1777,  1777,  1785,  1794,  1801,
-    1801,  1811,  1812,  1815,  1816,  1817,  1818,  1819,  1822,  1822,
-    1830,  1830,  1841,  1841,  1859,  1859,  1871,  1871,  1881,  1882,
-    1885,  1886,  1887,  1888,  1889,  1890,  1891,  1892,  1893,  1894,
-    1895,  1896,  1897,  1898,  1899,  1900,  1901,  1902,  1903,  1906,
-    1911,  1911,  1919,  1919,  1927,  1932,  1932,  1940,  1945,  1950,
-    1950,  1958,  1959,  1962,  1962,  1970,  1975,  1980,  1985,  1985,
-    1993,  1996,  1999,  2002,  2005,  2011,  2011,  2019,  2019,  2027,
-    2027,  2038,  2038,  2045,  2045,  2052,  2052,  2059,  2059,  2068,
-    2068,  2079,  2079,  2089,  2090,  2094,  2095,  2098,  2098,  2113,
-    2113,  2123,  2123,  2134,  2135,  2139,  2143,  2143,  2155,  2156,
-    2160,  2160,  2168,  2169,  2172,  2173,  2174,  2175,  2176,  2177,
-    2178,  2181,  2186,  2186,  2194,  2194,  2204,  2205,  2208,  2208,
-    2216,  2217,  2220,  2221,  2222,  2223,  2226,  2226,  2234,  2239,
-    2244
+       0,   254,   254,   254,   255,   255,   256,   256,   257,   257,
+     258,   258,   259,   259,   260,   260,   261,   261,   262,   262,
+     263,   263,   264,   264,   265,   265,   266,   266,   267,   267,
+     275,   276,   277,   278,   279,   280,   281,   284,   289,   289,
+     300,   303,   304,   307,   311,   318,   318,   325,   326,   329,
+     333,   340,   340,   347,   348,   351,   355,   366,   376,   376,
+     392,   393,   397,   398,   399,   400,   401,   402,   405,   405,
+     420,   420,   429,   430,   435,   436,   437,   438,   439,   440,
+     441,   442,   443,   444,   445,   446,   447,   448,   449,   450,
+     451,   452,   453,   454,   455,   456,   457,   458,   459,   460,
+     461,   462,   463,   464,   465,   466,   467,   470,   475,   480,
+     485,   490,   490,   498,   503,   508,   514,   514,   525,   526,
+     529,   530,   531,   532,   533,   534,   535,   538,   538,   547,
+     547,   557,   557,   564,   565,   568,   568,   575,   577,   581,
+     587,   587,   599,   599,   609,   610,   612,   614,   614,   632,
+     632,   644,   644,   654,   655,   658,   659,   662,   662,   672,
+     673,   676,   677,   678,   679,   680,   681,   682,   683,   684,
+     685,   686,   687,   688,   689,   690,   691,   692,   693,   696,
+     696,   703,   704,   705,   706,   709,   709,   717,   717,   725,
+     725,   733,   738,   738,   746,   751,   756,   761,   766,   771,
+     776,   781,   781,   789,   789,   797,   802,   807,   807,   817,
+     818,   821,   822,   823,   824,   825,   828,   833,   838,   843,
+     848,   853,   853,   863,   864,   867,   868,   871,   871,   881,
+     881,   891,   892,   893,   896,   897,   900,   900,   908,   908,
+     916,   916,   927,   928,   931,   932,   933,   934,   935,   936,
+     939,   944,   949,   954,   959,   964,   972,   972,   985,   986,
+     989,   990,   997,   997,  1023,  1023,  1034,  1035,  1039,  1040,
+    1041,  1042,  1043,  1044,  1045,  1046,  1047,  1048,  1049,  1050,
+    1051,  1052,  1053,  1054,  1055,  1056,  1057,  1058,  1059,  1060,
+    1061,  1062,  1065,  1065,  1073,  1073,  1081,  1081,  1089,  1089,
+    1097,  1097,  1105,  1105,  1113,  1113,  1123,  1123,  1130,  1131,
+    1132,  1133,  1136,  1143,  1143,  1154,  1155,  1159,  1160,  1163,
+    1163,  1171,  1172,  1175,  1176,  1177,  1178,  1179,  1180,  1181,
+    1182,  1183,  1184,  1185,  1186,  1187,  1188,  1189,  1190,  1191,
+    1192,  1193,  1200,  1200,  1213,  1213,  1222,  1223,  1226,  1227,
+    1232,  1232,  1247,  1247,  1261,  1262,  1265,  1266,  1269,  1270,
+    1271,  1272,  1273,  1274,  1275,  1276,  1277,  1278,  1281,  1283,
+    1288,  1290,  1290,  1298,  1298,  1306,  1306,  1314,  1316,  1316,
+    1324,  1333,  1333,  1345,  1346,  1351,  1352,  1357,  1357,  1369,
+    1369,  1381,  1382,  1387,  1388,  1393,  1394,  1395,  1396,  1397,
+    1398,  1399,  1400,  1401,  1404,  1406,  1406,  1414,  1416,  1418,
+    1423,  1431,  1431,  1443,  1444,  1447,  1448,  1451,  1451,  1461,
+    1461,  1471,  1472,  1475,  1476,  1477,  1478,  1479,  1480,  1481,
+    1484,  1484,  1492,  1492,  1517,  1517,  1547,  1547,  1557,  1558,
+    1561,  1562,  1565,  1565,  1574,  1574,  1583,  1584,  1587,  1588,
+    1592,  1593,  1594,  1595,  1596,  1597,  1598,  1599,  1600,  1601,
+    1602,  1603,  1604,  1605,  1606,  1609,  1609,  1617,  1617,  1625,
+    1625,  1633,  1633,  1641,  1641,  1651,  1651,  1659,  1659,  1667,
+    1667,  1675,  1675,  1683,  1683,  1691,  1691,  1699,  1699,  1712,
+    1712,  1722,  1723,  1729,  1729,  1739,  1740,  1743,  1743,  1753,
+    1754,  1757,  1758,  1761,  1762,  1763,  1764,  1765,  1766,  1767,
+    1768,  1769,  1770,  1771,  1774,  1776,  1776,  1784,  1793,  1800,
+    1800,  1810,  1811,  1814,  1815,  1816,  1817,  1818,  1821,  1821,
+    1829,  1829,  1840,  1840,  1858,  1858,  1870,  1870,  1880,  1881,
+    1884,  1885,  1886,  1887,  1888,  1889,  1890,  1891,  1892,  1893,
+    1894,  1895,  1896,  1897,  1898,  1899,  1900,  1901,  1904,  1909,
+    1909,  1917,  1917,  1925,  1930,  1930,  1938,  1943,  1948,  1948,
+    1956,  1957,  1960,  1960,  1968,  1973,  1978,  1978,  1986,  1989,
+    1992,  1995,  1998,  2004,  2004,  2012,  2012,  2020,  2020,  2031,
+    2031,  2038,  2038,  2045,  2045,  2052,  2052,  2061,  2061,  2072,
+    2072,  2082,  2083,  2087,  2088,  2091,  2091,  2106,  2106,  2116,
+    2116,  2127,  2128,  2132,  2136,  2136,  2148,  2149,  2153,  2153,
+    2161,  2162,  2165,  2166,  2167,  2168,  2169,  2170,  2171,  2174,
+    2179,  2179,  2187,  2187,  2197,  2198,  2201,  2201,  2209,  2210,
+    2213,  2214,  2215,  2216,  2219,  2219,  2227,  2232,  2237
   };
 
   // Print the state stack on the debug stream.
@@ -4955,8 +4942,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:1218
 } } // isc::dhcp
-#line 4959 "dhcp4_parser.cc" // lalr1.cc:1218
-#line 2249 "dhcp4_parser.yy" // lalr1.cc:1219
+#line 4946 "dhcp4_parser.cc" // lalr1.cc:1218
+#line 2242 "dhcp4_parser.yy" // lalr1.cc:1219
 
 
 void
index 803b806783baf9d7b84dbbac666836f15a537e80..f2673a3f1d8b87c1c8c84e1ced7c87a711576fee 100644 (file)
@@ -661,49 +661,48 @@ namespace isc { namespace dhcp {
         TOKEN_MAX_QUEUE_SIZE = 379,
         TOKEN_NCR_PROTOCOL = 380,
         TOKEN_NCR_FORMAT = 381,
-        TOKEN_ALWAYS_INCLUDE_FQDN = 382,
-        TOKEN_OVERRIDE_NO_UPDATE = 383,
-        TOKEN_OVERRIDE_CLIENT_UPDATE = 384,
-        TOKEN_REPLACE_CLIENT_NAME = 385,
-        TOKEN_GENERATED_PREFIX = 386,
-        TOKEN_TCP = 387,
-        TOKEN_JSON = 388,
-        TOKEN_WHEN_PRESENT = 389,
-        TOKEN_NEVER = 390,
-        TOKEN_ALWAYS = 391,
-        TOKEN_WHEN_NOT_PRESENT = 392,
-        TOKEN_HOSTNAME_CHAR_SET = 393,
-        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 394,
-        TOKEN_LOGGING = 395,
-        TOKEN_LOGGERS = 396,
-        TOKEN_OUTPUT_OPTIONS = 397,
-        TOKEN_OUTPUT = 398,
-        TOKEN_DEBUGLEVEL = 399,
-        TOKEN_SEVERITY = 400,
-        TOKEN_FLUSH = 401,
-        TOKEN_MAXSIZE = 402,
-        TOKEN_MAXVER = 403,
-        TOKEN_DHCP6 = 404,
-        TOKEN_DHCPDDNS = 405,
-        TOKEN_CONTROL_AGENT = 406,
-        TOKEN_TOPLEVEL_JSON = 407,
-        TOKEN_TOPLEVEL_DHCP4 = 408,
-        TOKEN_SUB_DHCP4 = 409,
-        TOKEN_SUB_INTERFACES4 = 410,
-        TOKEN_SUB_SUBNET4 = 411,
-        TOKEN_SUB_POOL4 = 412,
-        TOKEN_SUB_RESERVATION = 413,
-        TOKEN_SUB_OPTION_DEFS = 414,
-        TOKEN_SUB_OPTION_DEF = 415,
-        TOKEN_SUB_OPTION_DATA = 416,
-        TOKEN_SUB_HOOKS_LIBRARY = 417,
-        TOKEN_SUB_DHCP_DDNS = 418,
-        TOKEN_SUB_LOGGING = 419,
-        TOKEN_SUB_CONFIG_CONTROL = 420,
-        TOKEN_STRING = 421,
-        TOKEN_INTEGER = 422,
-        TOKEN_FLOAT = 423,
-        TOKEN_BOOLEAN = 424
+        TOKEN_OVERRIDE_NO_UPDATE = 382,
+        TOKEN_OVERRIDE_CLIENT_UPDATE = 383,
+        TOKEN_REPLACE_CLIENT_NAME = 384,
+        TOKEN_GENERATED_PREFIX = 385,
+        TOKEN_TCP = 386,
+        TOKEN_JSON = 387,
+        TOKEN_WHEN_PRESENT = 388,
+        TOKEN_NEVER = 389,
+        TOKEN_ALWAYS = 390,
+        TOKEN_WHEN_NOT_PRESENT = 391,
+        TOKEN_HOSTNAME_CHAR_SET = 392,
+        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 393,
+        TOKEN_LOGGING = 394,
+        TOKEN_LOGGERS = 395,
+        TOKEN_OUTPUT_OPTIONS = 396,
+        TOKEN_OUTPUT = 397,
+        TOKEN_DEBUGLEVEL = 398,
+        TOKEN_SEVERITY = 399,
+        TOKEN_FLUSH = 400,
+        TOKEN_MAXSIZE = 401,
+        TOKEN_MAXVER = 402,
+        TOKEN_DHCP6 = 403,
+        TOKEN_DHCPDDNS = 404,
+        TOKEN_CONTROL_AGENT = 405,
+        TOKEN_TOPLEVEL_JSON = 406,
+        TOKEN_TOPLEVEL_DHCP4 = 407,
+        TOKEN_SUB_DHCP4 = 408,
+        TOKEN_SUB_INTERFACES4 = 409,
+        TOKEN_SUB_SUBNET4 = 410,
+        TOKEN_SUB_POOL4 = 411,
+        TOKEN_SUB_RESERVATION = 412,
+        TOKEN_SUB_OPTION_DEFS = 413,
+        TOKEN_SUB_OPTION_DEF = 414,
+        TOKEN_SUB_OPTION_DATA = 415,
+        TOKEN_SUB_HOOKS_LIBRARY = 416,
+        TOKEN_SUB_DHCP_DDNS = 417,
+        TOKEN_SUB_LOGGING = 418,
+        TOKEN_SUB_CONFIG_CONTROL = 419,
+        TOKEN_STRING = 420,
+        TOKEN_INTEGER = 421,
+        TOKEN_FLOAT = 422,
+        TOKEN_BOOLEAN = 423
       };
     };
 
@@ -1344,10 +1343,6 @@ namespace isc { namespace dhcp {
     symbol_type
     make_NCR_FORMAT (YY_COPY (location_type) l);
 
-    static
-    symbol_type
-    make_ALWAYS_INCLUDE_FQDN (YY_COPY (location_type) l);
-
     static
     symbol_type
     make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l);
@@ -1698,12 +1693,12 @@ namespace isc { namespace dhcp {
     enum
     {
       yyeof_ = 0,
-      yylast_ = 994,     ///< Last index in yytable_.
-      yynnts_ = 375,  ///< Number of nonterminal symbols.
+      yylast_ = 998,     ///< Last index in yytable_.
+      yynnts_ = 374,  ///< Number of nonterminal symbols.
       yyfinal_ = 30, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 170  ///< Number of tokens.
+      yyntokens_ = 169  ///< Number of tokens.
     };
 
 
@@ -1762,9 +1757,9 @@ namespace isc { namespace dhcp {
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169
+     165,   166,   167,   168
     };
-    const unsigned user_token_number_max_ = 424;
+    const unsigned user_token_number_max_ = 423;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int> (t) <= yyeof_)
@@ -1796,30 +1791,30 @@ namespace isc { namespace dhcp {
   {
     switch (other.type_get ())
     {
-      case 186: // value
-      case 190: // map_value
-      case 231: // socket_type
-      case 234: // outbound_interface_value
-      case 256: // db_type
-      case 338: // hr_mode
-      case 487: // ncr_protocol_value
-      case 495: // replace_client_name_value
+      case 185: // value
+      case 189: // map_value
+      case 230: // socket_type
+      case 233: // outbound_interface_value
+      case 255: // db_type
+      case 337: // hr_mode
+      case 486: // ncr_protocol_value
+      case 493: // replace_client_name_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value));
         break;
 
-      case 169: // "boolean"
+      case 168: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value));
         break;
 
-      case 168: // "floating point"
+      case 167: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value));
         break;
 
-      case 167: // "integer"
+      case 166: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value));
         break;
 
-      case 166: // "constant string"
+      case 165: // "constant string"
         value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value));
         break;
 
@@ -1897,30 +1892,30 @@ namespace isc { namespace dhcp {
     // Type destructor.
   switch (yytype)
     {
-      case 186: // value
-      case 190: // map_value
-      case 231: // socket_type
-      case 234: // outbound_interface_value
-      case 256: // db_type
-      case 338: // hr_mode
-      case 487: // ncr_protocol_value
-      case 495: // replace_client_name_value
+      case 185: // value
+      case 189: // map_value
+      case 230: // socket_type
+      case 233: // outbound_interface_value
+      case 255: // db_type
+      case 337: // hr_mode
+      case 486: // ncr_protocol_value
+      case 493: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 169: // "boolean"
+      case 168: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 168: // "floating point"
+      case 167: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 167: // "integer"
+      case 166: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 166: // "constant string"
+      case 165: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -1945,30 +1940,30 @@ namespace isc { namespace dhcp {
     super_type::move (s);
     switch (this->type_get ())
     {
-      case 186: // value
-      case 190: // map_value
-      case 231: // socket_type
-      case 234: // outbound_interface_value
-      case 256: // db_type
-      case 338: // hr_mode
-      case 487: // ncr_protocol_value
-      case 495: // replace_client_name_value
+      case 185: // value
+      case 189: // map_value
+      case 230: // socket_type
+      case 233: // outbound_interface_value
+      case 255: // db_type
+      case 337: // hr_mode
+      case 486: // ncr_protocol_value
+      case 493: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (s.value));
         break;
 
-      case 169: // "boolean"
+      case 168: // "boolean"
         value.move< bool > (YY_MOVE (s.value));
         break;
 
-      case 168: // "floating point"
+      case 167: // "floating point"
         value.move< double > (YY_MOVE (s.value));
         break;
 
-      case 167: // "integer"
+      case 166: // "integer"
         value.move< int64_t > (YY_MOVE (s.value));
         break;
 
-      case 166: // "constant string"
+      case 165: // "constant string"
         value.move< std::string > (YY_MOVE (s.value));
         break;
 
@@ -2043,7 +2038,7 @@ namespace isc { namespace dhcp {
      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
-     415,   416,   417,   418,   419,   420,   421,   422,   423,   424
+     415,   416,   417,   418,   419,   420,   421,   422,   423
     };
     return static_cast<token_type> (yytoken_number_[type]);
   }
@@ -2924,13 +2919,6 @@ namespace isc { namespace dhcp {
     return symbol_type (token::TOKEN_NCR_FORMAT, YY_MOVE (l));
   }
 
-  inline
-  Dhcp4Parser::symbol_type
-  Dhcp4Parser::make_ALWAYS_INCLUDE_FQDN (YY_COPY (location_type) l)
-  {
-    return symbol_type (token::TOKEN_ALWAYS_INCLUDE_FQDN, YY_MOVE (l));
-  }
-
   inline
   Dhcp4Parser::symbol_type
   Dhcp4Parser::make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l)
@@ -3228,7 +3216,7 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:404
 } } // isc::dhcp
-#line 3232 "dhcp4_parser.h" // lalr1.cc:404
+#line 3220 "dhcp4_parser.h" // lalr1.cc:404
 
 
 
index da37e7869fb061ecc201f1c2f02408a61e38e542..a764734d3f47baca0ab7f8074a08e79a4cf0d140 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201811172153
+// Generated 201811201350
 // A Bison parser, made by GNU Bison 3.2.1.
 
 // Locations for Bison parsers in C++
index 9f3dfeedf81eaab671d6638b030054a547bc9e87..3d9dbf9cdefbdb9a4d5974acbb8daad2256fcfca 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201811172153
+// Generated 201811201350
 // A Bison parser, made by GNU Bison 3.2.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index c0ca3f35b568ae1e99046a83e638ef7edbb3ca22..0575d1aa947776ac2d8c58611d3700007d24db9f 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201811172153
+// Generated 201811201350
 // A Bison parser, made by GNU Bison 3.2.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index 984836a3acee667d08e773f432af4d680b125889..0512817df840bd73f9a000fb8508e841416dc2ba 100644 (file)
@@ -245,29 +245,29 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 192: // value
-      case 196: // map_value
-      case 248: // db_type
-      case 337: // hr_mode
-      case 473: // duid_type
-      case 508: // ncr_protocol_value
-      case 516: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 247: // db_type
+      case 336: // hr_mode
+      case 472: // duid_type
+      case 507: // ncr_protocol_value
+      case 514: // replace_client_name_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 174: // "boolean"
+      case 173: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value));
         break;
 
-      case 173: // "floating point"
+      case 172: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value));
         break;
 
-      case 172: // "integer"
+      case 171: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 171: // "constant string"
+      case 170: // "constant string"
         value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value));
         break;
 
@@ -286,29 +286,29 @@ namespace isc { namespace dhcp {
   {
     switch (that.type_get ())
     {
-      case 192: // value
-      case 196: // map_value
-      case 248: // db_type
-      case 337: // hr_mode
-      case 473: // duid_type
-      case 508: // ncr_protocol_value
-      case 516: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 247: // db_type
+      case 336: // hr_mode
+      case 472: // duid_type
+      case 507: // ncr_protocol_value
+      case 514: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (that.value));
         break;
 
-      case 174: // "boolean"
+      case 173: // "boolean"
         value.move< bool > (YY_MOVE (that.value));
         break;
 
-      case 173: // "floating point"
+      case 172: // "floating point"
         value.move< double > (YY_MOVE (that.value));
         break;
 
-      case 172: // "integer"
+      case 171: // "integer"
         value.move< int64_t > (YY_MOVE (that.value));
         break;
 
-      case 171: // "constant string"
+      case 170: // "constant string"
         value.move< std::string > (YY_MOVE (that.value));
         break;
 
@@ -327,29 +327,29 @@ namespace isc { namespace dhcp {
     state = that.state;
     switch (that.type_get ())
     {
-      case 192: // value
-      case 196: // map_value
-      case 248: // db_type
-      case 337: // hr_mode
-      case 473: // duid_type
-      case 508: // ncr_protocol_value
-      case 516: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 247: // db_type
+      case 336: // hr_mode
+      case 472: // duid_type
+      case 507: // ncr_protocol_value
+      case 514: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 174: // "boolean"
+      case 173: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 173: // "floating point"
+      case 172: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 172: // "integer"
+      case 171: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 171: // "constant string"
+      case 170: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -390,79 +390,79 @@ namespace isc { namespace dhcp {
         << yysym.location << ": ";
     switch (yytype)
     {
-            case 171: // "constant string"
+            case 170: // "constant string"
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< std::string > (); }
 #line 398 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 172: // "integer"
+      case 171: // "integer"
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< int64_t > (); }
 #line 405 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 173: // "floating point"
+      case 172: // "floating point"
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< double > (); }
 #line 412 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 174: // "boolean"
+      case 173: // "boolean"
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< bool > (); }
 #line 419 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 192: // value
+      case 191: // value
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 426 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 196: // map_value
+      case 195: // map_value
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 433 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 248: // db_type
+      case 247: // db_type
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 440 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 337: // hr_mode
+      case 336: // hr_mode
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 447 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 473: // duid_type
+      case 472: // duid_type
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 454 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 508: // ncr_protocol_value
+      case 507: // ncr_protocol_value
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 461 "dhcp6_parser.cc" // lalr1.cc:672
         break;
 
-      case 516: // replace_client_name_value
+      case 514: // replace_client_name_value
 
-#line 249 "dhcp6_parser.yy" // lalr1.cc:672
+#line 248 "dhcp6_parser.yy" // lalr1.cc:672
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 468 "dhcp6_parser.cc" // lalr1.cc:672
         break;
@@ -674,29 +674,29 @@ namespace isc { namespace dhcp {
          when using variants.  */
       switch (yyr1_[yyn])
     {
-      case 192: // value
-      case 196: // map_value
-      case 248: // db_type
-      case 337: // hr_mode
-      case 473: // duid_type
-      case 508: // ncr_protocol_value
-      case 516: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 247: // db_type
+      case 336: // hr_mode
+      case 472: // duid_type
+      case 507: // ncr_protocol_value
+      case 514: // replace_client_name_value
         yylhs.value.emplace< ElementPtr > ();
         break;
 
-      case 174: // "boolean"
+      case 173: // "boolean"
         yylhs.value.emplace< bool > ();
         break;
 
-      case 173: // "floating point"
+      case 172: // "floating point"
         yylhs.value.emplace< double > ();
         break;
 
-      case 172: // "integer"
+      case 171: // "integer"
         yylhs.value.emplace< int64_t > ();
         break;
 
-      case 171: // "constant string"
+      case 170: // "constant string"
         yylhs.value.emplace< std::string > ();
         break;
 
@@ -721,139 +721,139 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 258 "dhcp6_parser.yy" // lalr1.cc:907
+#line 257 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 727 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 4:
-#line 259 "dhcp6_parser.yy" // lalr1.cc:907
+#line 258 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.CONFIG; }
 #line 733 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 6:
-#line 260 "dhcp6_parser.yy" // lalr1.cc:907
+#line 259 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.DHCP6; }
 #line 739 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 8:
-#line 261 "dhcp6_parser.yy" // lalr1.cc:907
+#line 260 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 745 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 10:
-#line 262 "dhcp6_parser.yy" // lalr1.cc:907
+#line 261 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.SUBNET6; }
 #line 751 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 12:
-#line 263 "dhcp6_parser.yy" // lalr1.cc:907
+#line 262 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.POOLS; }
 #line 757 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 14:
-#line 264 "dhcp6_parser.yy" // lalr1.cc:907
+#line 263 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.PD_POOLS; }
 #line 763 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 16:
-#line 265 "dhcp6_parser.yy" // lalr1.cc:907
+#line 264 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 769 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 18:
-#line 266 "dhcp6_parser.yy" // lalr1.cc:907
+#line 265 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.DHCP6; }
 #line 775 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 20:
-#line 267 "dhcp6_parser.yy" // lalr1.cc:907
+#line 266 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 781 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 22:
-#line 268 "dhcp6_parser.yy" // lalr1.cc:907
+#line 267 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 787 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 24:
-#line 269 "dhcp6_parser.yy" // lalr1.cc:907
+#line 268 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 793 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 26:
-#line 270 "dhcp6_parser.yy" // lalr1.cc:907
+#line 269 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 799 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 28:
-#line 271 "dhcp6_parser.yy" // lalr1.cc:907
+#line 270 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.LOGGING; }
 #line 805 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 30:
-#line 272 "dhcp6_parser.yy" // lalr1.cc:907
+#line 271 "dhcp6_parser.yy" // lalr1.cc:907
     { ctx.ctx_ = ctx.CONFIG_CONTROL; }
 #line 811 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 32:
-#line 280 "dhcp6_parser.yy" // lalr1.cc:907
+#line 279 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
 #line 817 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 33:
-#line 281 "dhcp6_parser.yy" // lalr1.cc:907
+#line 280 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
 #line 823 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 34:
-#line 282 "dhcp6_parser.yy" // lalr1.cc:907
+#line 281 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
 #line 829 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 35:
-#line 283 "dhcp6_parser.yy" // lalr1.cc:907
+#line 282 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
 #line 835 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 36:
-#line 284 "dhcp6_parser.yy" // lalr1.cc:907
+#line 283 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
 #line 841 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 37:
-#line 285 "dhcp6_parser.yy" // lalr1.cc:907
+#line 284 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 847 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 38:
-#line 286 "dhcp6_parser.yy" // lalr1.cc:907
+#line 285 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 853 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 39:
-#line 289 "dhcp6_parser.yy" // lalr1.cc:907
+#line 288 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
@@ -862,7 +862,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 40:
-#line 294 "dhcp6_parser.yy" // lalr1.cc:907
+#line 293 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -873,7 +873,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 41:
-#line 299 "dhcp6_parser.yy" // lalr1.cc:907
+#line 298 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -883,13 +883,13 @@ namespace isc { namespace dhcp {
     break;
 
   case 42:
-#line 305 "dhcp6_parser.yy" // lalr1.cc:907
+#line 304 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 889 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 45:
-#line 312 "dhcp6_parser.yy" // lalr1.cc:907
+#line 311 "dhcp6_parser.yy" // lalr1.cc:907
     {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
@@ -898,7 +898,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 46:
-#line 316 "dhcp6_parser.yy" // lalr1.cc:907
+#line 315 "dhcp6_parser.yy" // lalr1.cc:907
     {
                   // map consisting of a shorter map followed by
                   // comma and string:value
@@ -908,7 +908,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 47:
-#line 323 "dhcp6_parser.yy" // lalr1.cc:907
+#line 322 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
@@ -917,7 +917,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 48:
-#line 326 "dhcp6_parser.yy" // lalr1.cc:907
+#line 325 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // list parsing complete. Put any sanity checking here
 }
@@ -925,7 +925,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 51:
-#line 334 "dhcp6_parser.yy" // lalr1.cc:907
+#line 333 "dhcp6_parser.yy" // lalr1.cc:907
     {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
@@ -934,7 +934,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 52:
-#line 338 "dhcp6_parser.yy" // lalr1.cc:907
+#line 337 "dhcp6_parser.yy" // lalr1.cc:907
     {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
@@ -943,7 +943,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 53:
-#line 345 "dhcp6_parser.yy" // lalr1.cc:907
+#line 344 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // List parsing about to start
 }
@@ -951,7 +951,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 54:
-#line 347 "dhcp6_parser.yy" // lalr1.cc:907
+#line 346 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
@@ -960,7 +960,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 57:
-#line 356 "dhcp6_parser.yy" // lalr1.cc:907
+#line 355 "dhcp6_parser.yy" // lalr1.cc:907
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -969,7 +969,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 58:
-#line 360 "dhcp6_parser.yy" // lalr1.cc:907
+#line 359 "dhcp6_parser.yy" // lalr1.cc:907
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
@@ -978,7 +978,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 59:
-#line 371 "dhcp6_parser.yy" // lalr1.cc:907
+#line 370 "dhcp6_parser.yy" // lalr1.cc:907
     {
     const std::string& where = ctx.contextName();
     const std::string& keyword = yystack_[1].value.as< std::string > ();
@@ -989,7 +989,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 60:
-#line 381 "dhcp6_parser.yy" // lalr1.cc:907
+#line 380 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1000,7 +1000,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 61:
-#line 386 "dhcp6_parser.yy" // lalr1.cc:907
+#line 385 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -1013,7 +1013,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 70:
-#line 409 "dhcp6_parser.yy" // lalr1.cc:907
+#line 408 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1026,7 +1026,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 71:
-#line 416 "dhcp6_parser.yy" // lalr1.cc:907
+#line 415 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // No global parameter is required
     ctx.stack_.pop_back();
@@ -1036,7 +1036,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 72:
-#line 424 "dhcp6_parser.yy" // lalr1.cc:907
+#line 423 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the Dhcp6 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1046,7 +1046,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 73:
-#line 428 "dhcp6_parser.yy" // lalr1.cc:907
+#line 427 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // No global parameter is required
     // parsing completed
@@ -1055,7 +1055,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 107:
-#line 472 "dhcp6_parser.yy" // lalr1.cc:907
+#line 471 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("preferred-lifetime", prf);
@@ -1064,7 +1064,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 108:
-#line 477 "dhcp6_parser.yy" // lalr1.cc:907
+#line 476 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("valid-lifetime", prf);
@@ -1073,7 +1073,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 109:
-#line 482 "dhcp6_parser.yy" // lalr1.cc:907
+#line 481 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("renew-timer", prf);
@@ -1082,7 +1082,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 110:
-#line 487 "dhcp6_parser.yy" // lalr1.cc:907
+#line 486 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rebind-timer", prf);
@@ -1091,7 +1091,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 111:
-#line 492 "dhcp6_parser.yy" // lalr1.cc:907
+#line 491 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("decline-probation-period", dpp);
@@ -1100,7 +1100,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 112:
-#line 497 "dhcp6_parser.yy" // lalr1.cc:907
+#line 496 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1108,7 +1108,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 113:
-#line 499 "dhcp6_parser.yy" // lalr1.cc:907
+#line 498 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr stag(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-tag", stag);
@@ -1118,7 +1118,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 114:
-#line 505 "dhcp6_parser.yy" // lalr1.cc:907
+#line 504 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces-config", i);
@@ -1129,7 +1129,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 115:
-#line 510 "dhcp6_parser.yy" // lalr1.cc:907
+#line 509 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
@@ -1139,7 +1139,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 116:
-#line 516 "dhcp6_parser.yy" // lalr1.cc:907
+#line 515 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1149,7 +1149,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 117:
-#line 520 "dhcp6_parser.yy" // lalr1.cc:907
+#line 519 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // No interfaces config param is required
     // parsing completed
@@ -1158,7 +1158,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 125:
-#line 536 "dhcp6_parser.yy" // lalr1.cc:907
+#line 535 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces", l);
@@ -1169,7 +1169,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 126:
-#line 541 "dhcp6_parser.yy" // lalr1.cc:907
+#line 540 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1178,7 +1178,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 127:
-#line 546 "dhcp6_parser.yy" // lalr1.cc:907
+#line 545 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
@@ -1187,7 +1187,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 128:
-#line 552 "dhcp6_parser.yy" // lalr1.cc:907
+#line 551 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lease-database", i);
@@ -1198,7 +1198,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 129:
-#line 557 "dhcp6_parser.yy" // lalr1.cc:907
+#line 556 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1209,7 +1209,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 130:
-#line 564 "dhcp6_parser.yy" // lalr1.cc:907
+#line 563 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-database", i);
@@ -1220,7 +1220,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 131:
-#line 569 "dhcp6_parser.yy" // lalr1.cc:907
+#line 568 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -1231,7 +1231,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 132:
-#line 576 "dhcp6_parser.yy" // lalr1.cc:907
+#line 575 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-databases", l);
@@ -1242,7 +1242,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 133:
-#line 581 "dhcp6_parser.yy" // lalr1.cc:907
+#line 580 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1251,7 +1251,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 138:
-#line 594 "dhcp6_parser.yy" // lalr1.cc:907
+#line 593 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1261,7 +1261,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 139:
-#line 598 "dhcp6_parser.yy" // lalr1.cc:907
+#line 597 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1271,7 +1271,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 160:
-#line 628 "dhcp6_parser.yy" // lalr1.cc:907
+#line 627 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
@@ -1279,7 +1279,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 161:
-#line 630 "dhcp6_parser.yy" // lalr1.cc:907
+#line 629 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -1288,31 +1288,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 162:
-#line 635 "dhcp6_parser.yy" // lalr1.cc:907
+#line 634 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
 #line 1294 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 163:
-#line 636 "dhcp6_parser.yy" // lalr1.cc:907
+#line 635 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
 #line 1300 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 164:
-#line 637 "dhcp6_parser.yy" // lalr1.cc:907
+#line 636 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
 #line 1306 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 165:
-#line 638 "dhcp6_parser.yy" // lalr1.cc:907
+#line 637 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
 #line 1312 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 166:
-#line 641 "dhcp6_parser.yy" // lalr1.cc:907
+#line 640 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1320,7 +1320,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 167:
-#line 643 "dhcp6_parser.yy" // lalr1.cc:907
+#line 642 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("user", user);
@@ -1330,7 +1330,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 168:
-#line 649 "dhcp6_parser.yy" // lalr1.cc:907
+#line 648 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1338,7 +1338,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 169:
-#line 651 "dhcp6_parser.yy" // lalr1.cc:907
+#line 650 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("password", pwd);
@@ -1348,7 +1348,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 170:
-#line 657 "dhcp6_parser.yy" // lalr1.cc:907
+#line 656 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1356,7 +1356,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 171:
-#line 659 "dhcp6_parser.yy" // lalr1.cc:907
+#line 658 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host", h);
@@ -1366,7 +1366,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 172:
-#line 665 "dhcp6_parser.yy" // lalr1.cc:907
+#line 664 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
@@ -1375,7 +1375,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 173:
-#line 670 "dhcp6_parser.yy" // lalr1.cc:907
+#line 669 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1383,7 +1383,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 174:
-#line 672 "dhcp6_parser.yy" // lalr1.cc:907
+#line 671 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("name", name);
@@ -1393,7 +1393,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 175:
-#line 678 "dhcp6_parser.yy" // lalr1.cc:907
+#line 677 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
@@ -1402,7 +1402,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 176:
-#line 683 "dhcp6_parser.yy" // lalr1.cc:907
+#line 682 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
@@ -1411,7 +1411,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 177:
-#line 688 "dhcp6_parser.yy" // lalr1.cc:907
+#line 687 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
@@ -1420,7 +1420,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 178:
-#line 693 "dhcp6_parser.yy" // lalr1.cc:907
+#line 692 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
@@ -1429,7 +1429,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 179:
-#line 698 "dhcp6_parser.yy" // lalr1.cc:907
+#line 697 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reconnect-wait-time", n);
@@ -1438,7 +1438,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 180:
-#line 703 "dhcp6_parser.yy" // lalr1.cc:907
+#line 702 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("request-timeout", n);
@@ -1447,7 +1447,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 181:
-#line 708 "dhcp6_parser.yy" // lalr1.cc:907
+#line 707 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-keepalive", n);
@@ -1456,7 +1456,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 182:
-#line 713 "dhcp6_parser.yy" // lalr1.cc:907
+#line 712 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-nodelay", n);
@@ -1465,7 +1465,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 183:
-#line 718 "dhcp6_parser.yy" // lalr1.cc:907
+#line 717 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1473,7 +1473,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 184:
-#line 720 "dhcp6_parser.yy" // lalr1.cc:907
+#line 719 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("contact-points", cp);
@@ -1483,7 +1483,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 185:
-#line 726 "dhcp6_parser.yy" // lalr1.cc:907
+#line 725 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reconnect-tries", n);
@@ -1492,7 +1492,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 186:
-#line 731 "dhcp6_parser.yy" // lalr1.cc:907
+#line 730 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1500,7 +1500,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 187:
-#line 733 "dhcp6_parser.yy" // lalr1.cc:907
+#line 732 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("keyspace", ks);
@@ -1510,7 +1510,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 188:
-#line 739 "dhcp6_parser.yy" // lalr1.cc:907
+#line 738 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sanity-checks", m);
@@ -1521,7 +1521,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 189:
-#line 744 "dhcp6_parser.yy" // lalr1.cc:907
+#line 743 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1530,7 +1530,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 193:
-#line 754 "dhcp6_parser.yy" // lalr1.cc:907
+#line 753 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1538,7 +1538,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 194:
-#line 756 "dhcp6_parser.yy" // lalr1.cc:907
+#line 755 "dhcp6_parser.yy" // lalr1.cc:907
     {
 
     if ( (string(yystack_[0].value.as< std::string > ()) == "none") ||
@@ -1558,7 +1558,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 195:
-#line 772 "dhcp6_parser.yy" // lalr1.cc:907
+#line 771 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("mac-sources", l);
@@ -1569,7 +1569,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 196:
-#line 777 "dhcp6_parser.yy" // lalr1.cc:907
+#line 776 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1578,7 +1578,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 201:
-#line 790 "dhcp6_parser.yy" // lalr1.cc:907
+#line 789 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -1587,7 +1587,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 202:
-#line 795 "dhcp6_parser.yy" // lalr1.cc:907
+#line 794 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
@@ -1596,7 +1596,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 203:
-#line 800 "dhcp6_parser.yy" // lalr1.cc:907
+#line 799 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host-reservation-identifiers", l);
@@ -1607,7 +1607,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 204:
-#line 805 "dhcp6_parser.yy" // lalr1.cc:907
+#line 804 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1616,7 +1616,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 210:
-#line 819 "dhcp6_parser.yy" // lalr1.cc:907
+#line 818 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
@@ -1625,7 +1625,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 211:
-#line 824 "dhcp6_parser.yy" // lalr1.cc:907
+#line 823 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
@@ -1634,7 +1634,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 212:
-#line 831 "dhcp6_parser.yy" // lalr1.cc:907
+#line 830 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay-supplied-options", l);
@@ -1645,7 +1645,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 213:
-#line 836 "dhcp6_parser.yy" // lalr1.cc:907
+#line 835 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1654,7 +1654,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 214:
-#line 841 "dhcp6_parser.yy" // lalr1.cc:907
+#line 840 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hooks-libraries", l);
@@ -1665,7 +1665,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 215:
-#line 846 "dhcp6_parser.yy" // lalr1.cc:907
+#line 845 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1674,7 +1674,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 220:
-#line 859 "dhcp6_parser.yy" // lalr1.cc:907
+#line 858 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1684,7 +1684,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 221:
-#line 863 "dhcp6_parser.yy" // lalr1.cc:907
+#line 862 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1694,7 +1694,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 222:
-#line 869 "dhcp6_parser.yy" // lalr1.cc:907
+#line 868 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the hooks-libraries list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1704,7 +1704,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 223:
-#line 873 "dhcp6_parser.yy" // lalr1.cc:907
+#line 872 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1714,7 +1714,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 229:
-#line 888 "dhcp6_parser.yy" // lalr1.cc:907
+#line 887 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1722,7 +1722,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 230:
-#line 890 "dhcp6_parser.yy" // lalr1.cc:907
+#line 889 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("library", lib);
@@ -1732,7 +1732,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 231:
-#line 896 "dhcp6_parser.yy" // lalr1.cc:907
+#line 895 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1740,7 +1740,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 232:
-#line 898 "dhcp6_parser.yy" // lalr1.cc:907
+#line 897 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -1749,7 +1749,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 233:
-#line 904 "dhcp6_parser.yy" // lalr1.cc:907
+#line 903 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("expired-leases-processing", m);
@@ -1760,7 +1760,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 234:
-#line 909 "dhcp6_parser.yy" // lalr1.cc:907
+#line 908 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
@@ -1770,7 +1770,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 243:
-#line 927 "dhcp6_parser.yy" // lalr1.cc:907
+#line 926 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reclaim-timer-wait-time", value);
@@ -1779,7 +1779,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 244:
-#line 932 "dhcp6_parser.yy" // lalr1.cc:907
+#line 931 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value);
@@ -1788,7 +1788,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 245:
-#line 937 "dhcp6_parser.yy" // lalr1.cc:907
+#line 936 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
@@ -1797,7 +1797,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 246:
-#line 942 "dhcp6_parser.yy" // lalr1.cc:907
+#line 941 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
@@ -1806,7 +1806,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 247:
-#line 947 "dhcp6_parser.yy" // lalr1.cc:907
+#line 946 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
@@ -1815,7 +1815,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 248:
-#line 952 "dhcp6_parser.yy" // lalr1.cc:907
+#line 951 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
@@ -1824,7 +1824,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 249:
-#line 960 "dhcp6_parser.yy" // lalr1.cc:907
+#line 959 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet6", l);
@@ -1835,7 +1835,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 250:
-#line 965 "dhcp6_parser.yy" // lalr1.cc:907
+#line 964 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1844,7 +1844,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 255:
-#line 985 "dhcp6_parser.yy" // lalr1.cc:907
+#line 984 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -1854,7 +1854,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 256:
-#line 989 "dhcp6_parser.yy" // lalr1.cc:907
+#line 988 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -1880,7 +1880,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 257:
-#line 1011 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1010 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the subnet6 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -1890,7 +1890,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 258:
-#line 1015 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1014 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The subnet subnet6 parameter is required
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -1900,7 +1900,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 281:
-#line 1049 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1048 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1908,7 +1908,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 282:
-#line 1051 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1050 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
@@ -1918,7 +1918,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 283:
-#line 1057 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1056 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1926,7 +1926,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 284:
-#line 1059 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1058 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
@@ -1936,7 +1936,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 285:
-#line 1065 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1064 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1944,7 +1944,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 286:
-#line 1067 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1066 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface-id", iface);
@@ -1954,7 +1954,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 287:
-#line 1073 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1072 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -1962,7 +1962,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 288:
-#line 1075 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1074 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-class", cls);
@@ -1972,7 +1972,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 289:
-#line 1081 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1080 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("require-client-classes", c);
@@ -1983,7 +1983,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 290:
-#line 1086 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1085 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -1992,7 +1992,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 291:
-#line 1091 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1090 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
@@ -2000,7 +2000,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 292:
-#line 1093 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1092 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -2009,31 +2009,31 @@ namespace isc { namespace dhcp {
     break;
 
   case 293:
-#line 1098 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1097 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
 #line 2015 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 294:
-#line 1099 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1098 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
 #line 2021 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 295:
-#line 1100 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1099 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
 #line 2027 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 296:
-#line 1101 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1100 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
 #line 2033 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 297:
-#line 1104 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1103 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
@@ -2042,7 +2042,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 298:
-#line 1109 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1108 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rapid-commit", rc);
@@ -2051,7 +2051,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 299:
-#line 1117 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1116 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("shared-networks", l);
@@ -2062,7 +2062,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 300:
-#line 1122 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1121 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2071,7 +2071,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 305:
-#line 1137 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1136 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2081,7 +2081,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 306:
-#line 1141 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1140 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
 }
@@ -2089,7 +2089,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 326:
-#line 1172 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1171 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-def", l);
@@ -2100,7 +2100,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 327:
-#line 1177 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1176 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2109,7 +2109,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 328:
-#line 1185 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1184 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
@@ -2118,7 +2118,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 329:
-#line 1188 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1187 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // parsing completed
 }
@@ -2126,7 +2126,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 334:
-#line 1204 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1203 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2136,7 +2136,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 335:
-#line 1208 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1207 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2148,7 +2148,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 336:
-#line 1219 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1218 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2158,7 +2158,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 337:
-#line 1223 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1222 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2170,7 +2170,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 353:
-#line 1255 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1254 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
@@ -2179,7 +2179,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 355:
-#line 1262 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1261 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2187,7 +2187,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 356:
-#line 1264 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1263 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
@@ -2197,7 +2197,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 357:
-#line 1270 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1269 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2205,7 +2205,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 358:
-#line 1272 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1271 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr rtypes(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("record-types", rtypes);
@@ -2215,7 +2215,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 359:
-#line 1278 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1277 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2223,7 +2223,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 360:
-#line 1280 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1279 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
@@ -2233,7 +2233,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 362:
-#line 1288 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1287 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2241,7 +2241,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 363:
-#line 1290 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1289 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
@@ -2251,7 +2251,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 364:
-#line 1296 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1295 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
@@ -2260,7 +2260,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 365:
-#line 1305 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1304 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-data", l);
@@ -2271,7 +2271,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 366:
-#line 1310 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1309 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2280,7 +2280,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 371:
-#line 1329 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1328 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2290,7 +2290,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 372:
-#line 1333 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1332 "dhcp6_parser.yy" // lalr1.cc:907
     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
@@ -2299,7 +2299,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 373:
-#line 1341 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1340 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2309,7 +2309,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 374:
-#line 1345 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1344 "dhcp6_parser.yy" // lalr1.cc:907
     {
     /// @todo: the code or name parameters are required.
     // parsing completed
@@ -2318,7 +2318,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 389:
-#line 1378 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1377 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2326,7 +2326,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 390:
-#line 1380 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1379 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
@@ -2336,7 +2336,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 393:
-#line 1390 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1389 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
@@ -2345,7 +2345,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 394:
-#line 1395 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1394 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
@@ -2354,7 +2354,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 395:
-#line 1403 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1402 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pools", l);
@@ -2365,7 +2365,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 396:
-#line 1408 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1407 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2374,7 +2374,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 401:
-#line 1423 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1422 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2384,7 +2384,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 402:
-#line 1427 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1426 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2394,7 +2394,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 403:
-#line 1433 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1432 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2404,7 +2404,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 404:
-#line 1437 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1436 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2413,7 +2413,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 414:
-#line 1455 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1454 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2421,7 +2421,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 415:
-#line 1457 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1456 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
@@ -2431,7 +2431,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 416:
-#line 1463 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1462 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2439,7 +2439,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 417:
-#line 1465 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1464 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as< ElementPtr > ();
@@ -2466,7 +2466,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 418:
-#line 1488 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1487 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2474,7 +2474,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 419:
-#line 1490 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1489 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2503,7 +2503,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 420:
-#line 1518 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1517 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pd-pools", l);
@@ -2514,7 +2514,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 421:
-#line 1523 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1522 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2523,7 +2523,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 426:
-#line 1538 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1537 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2533,7 +2533,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 427:
-#line 1542 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1541 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The prefix, prefix len and delegated len parameters are required.
     ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2545,7 +2545,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 428:
-#line 1550 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1549 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the pd-pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2555,7 +2555,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 429:
-#line 1554 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1553 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The prefix, prefix len and delegated len parameters are required.
     ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2567,7 +2567,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 443:
-#line 1579 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1578 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2575,7 +2575,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 444:
-#line 1581 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1580 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix", prf);
@@ -2585,7 +2585,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 445:
-#line 1587 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1586 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix-len", prf);
@@ -2594,7 +2594,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 446:
-#line 1592 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1591 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2602,7 +2602,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 447:
-#line 1594 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1593 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix", prf);
@@ -2612,7 +2612,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 448:
-#line 1600 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1599 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix-len", prf);
@@ -2621,7 +2621,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 449:
-#line 1605 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1604 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("delegated-len", deleg);
@@ -2630,7 +2630,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 450:
-#line 1613 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1612 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reservations", l);
@@ -2641,7 +2641,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 451:
-#line 1618 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1617 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2650,7 +2650,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 456:
-#line 1631 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1630 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2660,7 +2660,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 457:
-#line 1635 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1634 "dhcp6_parser.yy" // lalr1.cc:907
     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
@@ -2669,7 +2669,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 458:
-#line 1640 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1639 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -2679,7 +2679,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 459:
-#line 1644 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1643 "dhcp6_parser.yy" // lalr1.cc:907
     {
     /// @todo: an identifier parameter is required.
     // parsing completed
@@ -2688,7 +2688,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 475:
-#line 1671 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1670 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-addresses", l);
@@ -2699,7 +2699,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 476:
-#line 1676 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1675 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2708,7 +2708,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 477:
-#line 1681 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1680 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefixes", l);
@@ -2719,7 +2719,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 478:
-#line 1686 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1685 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2728,7 +2728,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 479:
-#line 1691 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1690 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2736,7 +2736,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 480:
-#line 1693 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1692 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
@@ -2746,7 +2746,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 481:
-#line 1699 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1698 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2754,7 +2754,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 482:
-#line 1701 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1700 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hw-address", hw);
@@ -2764,7 +2764,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 483:
-#line 1707 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1706 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2772,7 +2772,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 484:
-#line 1709 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1708 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
@@ -2782,7 +2782,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 485:
-#line 1715 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1714 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2790,7 +2790,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 486:
-#line 1717 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1716 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flex-id", hw);
@@ -2800,7 +2800,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 487:
-#line 1723 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1722 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", c);
@@ -2811,7 +2811,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 488:
-#line 1728 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1727 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2820,7 +2820,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 489:
-#line 1736 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1735 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay", m);
@@ -2831,7 +2831,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 490:
-#line 1741 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1740 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2840,7 +2840,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 493:
-#line 1750 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1749 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2848,7 +2848,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 494:
-#line 1752 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1751 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr addr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-address", addr);
@@ -2858,7 +2858,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 495:
-#line 1761 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1760 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", l);
@@ -2869,7 +2869,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 496:
-#line 1766 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1765 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -2878,7 +2878,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 499:
-#line 1775 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1774 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
@@ -2888,7 +2888,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 500:
-#line 1779 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1778 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2898,7 +2898,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 513:
-#line 1804 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1803 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2906,7 +2906,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 514:
-#line 1806 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1805 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
@@ -2916,7 +2916,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 515:
-#line 1812 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1811 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
@@ -2925,7 +2925,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 516:
-#line 1820 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1819 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-id", m);
@@ -2936,7 +2936,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 517:
-#line 1825 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1824 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The type parameter is required.
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -2947,7 +2947,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 529:
-#line 1847 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1846 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.DUID_TYPE);
 }
@@ -2955,7 +2955,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 530:
-#line 1849 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1848 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -2964,25 +2964,25 @@ namespace isc { namespace dhcp {
     break;
 
   case 531:
-#line 1854 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1853 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
 #line 2970 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 532:
-#line 1855 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1854 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
 #line 2976 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 533:
-#line 1856 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1855 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
 #line 2982 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
   case 534:
-#line 1859 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1858 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("htype", htype);
@@ -2991,7 +2991,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 535:
-#line 1864 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1863 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -2999,7 +2999,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 536:
-#line 1866 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1865 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("identifier", id);
@@ -3009,7 +3009,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 537:
-#line 1872 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1871 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("time", time);
@@ -3018,7 +3018,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 538:
-#line 1877 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1876 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enterprise-id", time);
@@ -3027,7 +3027,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 539:
-#line 1884 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1883 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
@@ -3036,7 +3036,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 540:
-#line 1891 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1890 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("control-socket", m);
@@ -3047,7 +3047,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 541:
-#line 1896 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1895 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
@@ -3056,7 +3056,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 549:
-#line 1912 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1911 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3064,7 +3064,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 550:
-#line 1914 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1913 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
@@ -3074,7 +3074,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 551:
-#line 1920 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1919 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3082,7 +3082,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 552:
-#line 1922 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1921 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
@@ -3092,7 +3092,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 553:
-#line 1930 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1929 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
@@ -3100,7 +3100,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 554:
-#line 1932 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1931 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr qc = yystack_[0].value.as< ElementPtr > ();
     ctx.stack_.back()->set("dhcp-queue-control", qc);
@@ -3118,7 +3118,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 555:
-#line 1948 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1947 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
@@ -3129,7 +3129,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 556:
-#line 1953 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1952 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
@@ -3140,7 +3140,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 557:
-#line 1960 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1959 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3150,7 +3150,7 @@ namespace isc { namespace dhcp {
     break;
 
   case 558:
-#line 1964 "dhcp6_parser.yy" // lalr1.cc:907
+#line 1963 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3159,8 +3159,8 @@ namespace isc { namespace dhcp {
 #line 3160 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 580:
-#line 1995 "dhcp6_parser.yy" // lalr1.cc:907
+  case 579:
+#line 1993 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
@@ -3168,16 +3168,16 @@ namespace isc { namespace dhcp {
 #line 3169 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 581:
-#line 2000 "dhcp6_parser.yy" // lalr1.cc:907
+  case 580:
+#line 1998 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 3177 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 582:
-#line 2002 "dhcp6_parser.yy" // lalr1.cc:907
+  case 581:
+#line 2000 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
@@ -3186,16 +3186,16 @@ namespace isc { namespace dhcp {
 #line 3187 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 583:
-#line 2008 "dhcp6_parser.yy" // lalr1.cc:907
+  case 582:
+#line 2006 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 3195 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 584:
-#line 2010 "dhcp6_parser.yy" // lalr1.cc:907
+  case 583:
+#line 2008 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
@@ -3204,8 +3204,8 @@ namespace isc { namespace dhcp {
 #line 3205 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 585:
-#line 2016 "dhcp6_parser.yy" // lalr1.cc:907
+  case 584:
+#line 2014 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
@@ -3213,16 +3213,16 @@ namespace isc { namespace dhcp {
 #line 3214 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 586:
-#line 2021 "dhcp6_parser.yy" // lalr1.cc:907
+  case 585:
+#line 2019 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 3222 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 587:
-#line 2023 "dhcp6_parser.yy" // lalr1.cc:907
+  case 586:
+#line 2021 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
@@ -3231,8 +3231,8 @@ namespace isc { namespace dhcp {
 #line 3232 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 588:
-#line 2029 "dhcp6_parser.yy" // lalr1.cc:907
+  case 587:
+#line 2027 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
@@ -3240,8 +3240,8 @@ namespace isc { namespace dhcp {
 #line 3241 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 589:
-#line 2034 "dhcp6_parser.yy" // lalr1.cc:907
+  case 588:
+#line 2032 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
@@ -3249,16 +3249,16 @@ namespace isc { namespace dhcp {
 #line 3250 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 590:
-#line 2039 "dhcp6_parser.yy" // lalr1.cc:907
+  case 589:
+#line 2037 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
 #line 3258 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 591:
-#line 2041 "dhcp6_parser.yy" // lalr1.cc:907
+  case 590:
+#line 2039 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
@@ -3266,28 +3266,28 @@ namespace isc { namespace dhcp {
 #line 3267 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 592:
-#line 2047 "dhcp6_parser.yy" // lalr1.cc:907
+  case 591:
+#line 2045 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
 #line 3273 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 593:
-#line 2048 "dhcp6_parser.yy" // lalr1.cc:907
+  case 592:
+#line 2046 "dhcp6_parser.yy" // lalr1.cc:907
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
 #line 3279 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 594:
-#line 2051 "dhcp6_parser.yy" // lalr1.cc:907
+  case 593:
+#line 2049 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
 #line 3287 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 595:
-#line 2053 "dhcp6_parser.yy" // lalr1.cc:907
+  case 594:
+#line 2051 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
@@ -3296,462 +3296,453 @@ namespace isc { namespace dhcp {
 #line 3297 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 596:
-#line 2059 "dhcp6_parser.yy" // lalr1.cc:907
-    {
-    ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
-    ctx.stack_.back()->set("always-include-fqdn", b);
-}
-#line 3306 "dhcp6_parser.cc" // lalr1.cc:907
-    break;
-
-  case 597:
-#line 2064 "dhcp6_parser.yy" // lalr1.cc:907
+  case 595:
+#line 2057 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 3315 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3306 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 598:
-#line 2069 "dhcp6_parser.yy" // lalr1.cc:907
+  case 596:
+#line 2062 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 3324 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3315 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 599:
-#line 2074 "dhcp6_parser.yy" // lalr1.cc:907
+  case 597:
+#line 2067 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3332 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3323 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 600:
-#line 2076 "dhcp6_parser.yy" // lalr1.cc:907
+  case 598:
+#line 2069 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3341 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3332 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 601:
-#line 2082 "dhcp6_parser.yy" // lalr1.cc:907
+  case 599:
+#line 2075 "dhcp6_parser.yy" // lalr1.cc:907
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3349 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3340 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 602:
-#line 2085 "dhcp6_parser.yy" // lalr1.cc:907
+  case 600:
+#line 2078 "dhcp6_parser.yy" // lalr1.cc:907
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3357 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3348 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 603:
-#line 2088 "dhcp6_parser.yy" // lalr1.cc:907
+  case 601:
+#line 2081 "dhcp6_parser.yy" // lalr1.cc:907
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3365 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3356 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 604:
-#line 2091 "dhcp6_parser.yy" // lalr1.cc:907
+  case 602:
+#line 2084 "dhcp6_parser.yy" // lalr1.cc:907
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3373 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3364 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 605:
-#line 2094 "dhcp6_parser.yy" // lalr1.cc:907
+  case 603:
+#line 2087 "dhcp6_parser.yy" // lalr1.cc:907
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3382 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3373 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 606:
-#line 2100 "dhcp6_parser.yy" // lalr1.cc:907
+  case 604:
+#line 2093 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3390 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3381 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 607:
-#line 2102 "dhcp6_parser.yy" // lalr1.cc:907
+  case 605:
+#line 2095 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3400 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3391 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 608:
-#line 2108 "dhcp6_parser.yy" // lalr1.cc:907
+  case 606:
+#line 2101 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3408 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3399 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 609:
-#line 2110 "dhcp6_parser.yy" // lalr1.cc:907
+  case 607:
+#line 2103 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-set", s);
     ctx.leave();
 }
-#line 3418 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3409 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 610:
-#line 2116 "dhcp6_parser.yy" // lalr1.cc:907
+  case 608:
+#line 2109 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3426 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3417 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 611:
-#line 2118 "dhcp6_parser.yy" // lalr1.cc:907
+  case 609:
+#line 2111 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname-char-replacement", s);
     ctx.leave();
 }
-#line 3436 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3427 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 612:
-#line 2126 "dhcp6_parser.yy" // lalr1.cc:907
+  case 610:
+#line 2119 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3444 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3435 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 613:
-#line 2128 "dhcp6_parser.yy" // lalr1.cc:907
+  case 611:
+#line 2121 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3453 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3444 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 614:
-#line 2133 "dhcp6_parser.yy" // lalr1.cc:907
+  case 612:
+#line 2126 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3461 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3452 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 615:
-#line 2135 "dhcp6_parser.yy" // lalr1.cc:907
+  case 613:
+#line 2128 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3470 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3461 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 616:
-#line 2140 "dhcp6_parser.yy" // lalr1.cc:907
+  case 614:
+#line 2133 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3478 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3469 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 617:
-#line 2142 "dhcp6_parser.yy" // lalr1.cc:907
+  case 615:
+#line 2135 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3487 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3478 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 618:
-#line 2149 "dhcp6_parser.yy" // lalr1.cc:907
+  case 616:
+#line 2142 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3497 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3488 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 619:
-#line 2153 "dhcp6_parser.yy" // lalr1.cc:907
+  case 617:
+#line 2146 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
 }
-#line 3505 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3496 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 620:
-#line 2158 "dhcp6_parser.yy" // lalr1.cc:907
+  case 618:
+#line 2151 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-control", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.CONFIG_CONTROL);
 }
-#line 3516 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3507 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 621:
-#line 2163 "dhcp6_parser.yy" // lalr1.cc:907
+  case 619:
+#line 2156 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3526 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3517 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 622:
-#line 2169 "dhcp6_parser.yy" // lalr1.cc:907
+  case 620:
+#line 2162 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3536 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3527 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 623:
-#line 2173 "dhcp6_parser.yy" // lalr1.cc:907
+  case 621:
+#line 2166 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // No config_control params are required
     // parsing completed
 }
-#line 3545 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3536 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 628:
-#line 2188 "dhcp6_parser.yy" // lalr1.cc:907
+  case 626:
+#line 2181 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CONFIG_DATABASE);
 }
-#line 3556 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3547 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 629:
-#line 2193 "dhcp6_parser.yy" // lalr1.cc:907
+  case 627:
+#line 2186 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3565 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3556 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 630:
-#line 2203 "dhcp6_parser.yy" // lalr1.cc:907
+  case 628:
+#line 2196 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Logging", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.LOGGING);
 }
-#line 3576 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3567 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 631:
-#line 2208 "dhcp6_parser.yy" // lalr1.cc:907
+  case 629:
+#line 2201 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3585 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3576 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 632:
-#line 2213 "dhcp6_parser.yy" // lalr1.cc:907
+  case 630:
+#line 2206 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3595 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3586 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 633:
-#line 2217 "dhcp6_parser.yy" // lalr1.cc:907
+  case 631:
+#line 2210 "dhcp6_parser.yy" // lalr1.cc:907
     {
     // parsing completed
 }
-#line 3603 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3594 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 637:
-#line 2233 "dhcp6_parser.yy" // lalr1.cc:907
+  case 635:
+#line 2226 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("loggers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.LOGGERS);
 }
-#line 3614 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3605 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 638:
-#line 2238 "dhcp6_parser.yy" // lalr1.cc:907
+  case 636:
+#line 2231 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3623 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3614 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 641:
-#line 2250 "dhcp6_parser.yy" // lalr1.cc:907
+  case 639:
+#line 2243 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3633 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3624 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 642:
-#line 2254 "dhcp6_parser.yy" // lalr1.cc:907
+  case 640:
+#line 2247 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
 }
-#line 3641 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3632 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 652:
-#line 2271 "dhcp6_parser.yy" // lalr1.cc:907
+  case 650:
+#line 2264 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 3650 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3641 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 653:
-#line 2276 "dhcp6_parser.yy" // lalr1.cc:907
+  case 651:
+#line 2269 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3658 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3649 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 654:
-#line 2278 "dhcp6_parser.yy" // lalr1.cc:907
+  case 652:
+#line 2271 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
     ctx.leave();
 }
-#line 3668 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3659 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 655:
-#line 2284 "dhcp6_parser.yy" // lalr1.cc:907
+  case 653:
+#line 2277 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output_options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OUTPUT_OPTIONS);
 }
-#line 3679 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3670 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 656:
-#line 2289 "dhcp6_parser.yy" // lalr1.cc:907
+  case 654:
+#line 2282 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3688 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3679 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 659:
-#line 2298 "dhcp6_parser.yy" // lalr1.cc:907
+  case 657:
+#line 2291 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3698 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3689 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 660:
-#line 2302 "dhcp6_parser.yy" // lalr1.cc:907
+  case 658:
+#line 2295 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.stack_.pop_back();
 }
-#line 3706 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3697 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 667:
-#line 2316 "dhcp6_parser.yy" // lalr1.cc:907
+  case 665:
+#line 2309 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3714 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3705 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 668:
-#line 2318 "dhcp6_parser.yy" // lalr1.cc:907
+  case 666:
+#line 2311 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
     ctx.leave();
 }
-#line 3724 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3715 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 669:
-#line 2324 "dhcp6_parser.yy" // lalr1.cc:907
+  case 667:
+#line 2317 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3733 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3724 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 670:
-#line 2329 "dhcp6_parser.yy" // lalr1.cc:907
+  case 668:
+#line 2322 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 3742 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3733 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
-  case 671:
-#line 2334 "dhcp6_parser.yy" // lalr1.cc:907
+  case 669:
+#line 2327 "dhcp6_parser.yy" // lalr1.cc:907
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 3751 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3742 "dhcp6_parser.cc" // lalr1.cc:907
     break;
 
 
-#line 3755 "dhcp6_parser.cc" // lalr1.cc:907
+#line 3746 "dhcp6_parser.cc" // lalr1.cc:907
             default:
               break;
             }
@@ -4009,123 +4000,122 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp6Parser::yypact_ninf_ = -824;
+  const short Dhcp6Parser::yypact_ninf_ = -820;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp6Parser::yypact_[] =
   {
-     321,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,    51,    52,    47,    53,
-      70,    80,    84,    91,   104,   108,   122,   124,   128,   141,
-     172,   180,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,    52,  -107,    42,    62,    48,   231,    89,   371,
-      27,   148,    34,   151,   -27,   464,    64,    43,  -824,   205,
-     228,   281,   300,   311,  -824,  -824,  -824,  -824,  -824,   319,
-    -824,    78,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,   320,   323,   335,   336,   339,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,   346,  -824,  -824,  -824,  -824,
-     129,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,   347,  -824,   157,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,   358,   362,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,   160,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,   177,
-    -824,  -824,  -824,  -824,  -824,   366,  -824,   367,   372,  -824,
-    -824,  -824,  -824,  -824,  -824,   224,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,   309,   375,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,   377,  -824,  -824,   379,  -824,  -824,  -824,
-     382,  -824,  -824,   383,   390,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,   392,   394,
-    -824,  -824,  -824,  -824,   386,   397,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,   226,  -824,
-    -824,  -824,   401,  -824,  -824,   402,  -824,   405,   407,  -824,
-    -824,   411,   412,   415,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,   266,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-     272,  -824,  -824,  -824,  -824,   273,  -824,  -824,  -824,    52,
-      52,  -824,   253,   426,   444,   447,   450,   452,  -824,    42,
-    -824,    43,   453,   457,   459,   460,   462,   295,   322,   324,
-     325,   329,   468,   469,   470,   471,   488,   489,   491,   494,
-     495,   496,   501,   502,   503,   504,   505,   506,   340,   507,
-     509,   510,    62,  -824,   511,   342,    48,  -824,   513,   515,
-     516,   517,   518,   352,   349,   524,   527,   528,   529,   231,
-    -824,   530,    89,  -824,   531,   364,   534,   369,   378,   371,
-    -824,   535,   536,   539,   540,   543,   547,   549,  -824,    27,
-    -824,   550,   551,   384,   555,   557,   558,   389,  -824,    34,
-     560,   391,   393,  -824,   151,   562,   564,   152,  -824,   399,
-     567,   570,   403,   572,   406,   408,   573,   575,   409,   410,
-     425,   577,   596,   597,   598,   464,  -824,   599,    64,  -824,
-     600,    43,  -824,  -824,  -824,   604,   602,   603,    52,    52,
-      52,  -824,   274,   605,   606,   607,   608,   611,  -824,  -824,
-    -824,  -824,  -824,   440,   612,   613,   614,   615,   449,   616,
-     618,   619,   620,   621,   622,   624,   625,   626,   627,  -824,
-     629,   615,   630,  -824,   633,  -824,  -824,   634,   635,   455,
-     461,   472,  -824,  -824,   365,   633,   473,   638,  -824,   475,
-    -824,   476,  -824,   477,  -824,  -824,  -824,   633,   633,   633,
-     478,   479,   480,   481,  -824,   482,   483,  -824,   484,   485,
-     486,  -824,  -824,   487,  -824,  -824,  -824,   490,    52,  -824,
-    -824,   492,   493,  -824,   497,  -824,  -824,   158,   522,  -824,
-    -824,  -824,   -44,   498,   499,   500,  -824,   636,  -824,   637,
-    -824,    52,    62,    64,  -824,  -824,  -824,  -824,    43,    48,
-     211,   211,   653,  -824,   655,   658,   659,  -824,  -824,  -824,
-     660,   -33,    52,   368,   590,   666,   667,   668,    87,   142,
-      57,  -824,   464,  -824,  -824,   669,   670,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,   -13,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,   671,   653,  -824,   276,   283,   284,   301,  -824,
-    -824,  -824,  -824,   675,   676,   677,   678,   679,  -824,   680,
-     681,  -824,   682,   683,   684,  -824,   302,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,   303,  -824,   685,   628,  -824,
-    -824,   686,   687,  -824,  -824,   688,   690,  -824,  -824,   689,
-     693,  -824,  -824,   691,   695,  -824,  -824,  -824,   143,  -824,
-    -824,  -824,   694,  -824,  -824,  -824,   161,  -824,  -824,  -824,
-    -824,   304,  -824,  -824,  -824,   212,  -824,  -824,   696,   698,
-    -824,  -824,   697,   701,  -824,   702,   703,   704,   705,   706,
-     707,   313,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,   708,   709,   710,  -824,  -824,  -824,  -824,   317,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-     326,  -824,  -824,  -824,   327,   544,  -824,   699,   713,  -824,
-    -824,   711,   715,  -824,  -824,  -824,   712,  -824,  -824,   255,
-    -824,   716,  -824,  -824,  -824,  -824,   717,   719,   720,   721,
-     554,   525,   556,   545,   559,   723,   561,   563,   725,   565,
-     566,   568,   211,  -824,  -824,   211,  -824,   653,   231,  -824,
-     655,    34,  -824,   658,   151,  -824,   659,   381,  -824,   660,
-     -33,  -824,  -824,   368,  -824,   726,   590,  -824,    86,   666,
-    -824,    27,  -824,   667,   -27,  -824,   668,   569,   571,   574,
-     576,   578,   579,    87,  -824,   728,   730,   580,   581,   582,
-     142,  -824,   732,   735,    57,  -824,  -824,  -824,   734,   741,
-      89,  -824,   669,   371,  -824,   670,   743,  -824,   118,   671,
-    -824,  -824,   422,   584,   585,   586,  -824,  -824,  -824,  -824,
-    -824,   587,  -824,  -824,   588,  -824,  -824,  -824,  -824,   328,
-    -824,   330,  -824,   737,  -824,   752,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-     334,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,   591,
-    -824,  -824,   745,  -824,  -824,  -824,  -824,  -824,   753,   760,
-    -824,  -824,  -824,  -824,  -824,   756,  -824,   338,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,   361,   594,  -824,  -824,
-    -824,  -824,   595,   601,  -824,  -824,   610,   344,  -824,   350,
-    -824,   617,  -824,   763,  -824,  -824,  -824,  -824,  -824,   351,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,   381,
-    -824,  -824,   765,   641,  -824,    86,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,   766,
-     631,   769,   118,  -824,  -824,   646,  -824,  -824,   770,  -824,
-     656,  -824,  -824,   772,  -824,  -824,   259,  -824,     6,   772,
-    -824,  -824,   778,   780,   781,   360,  -824,  -824,  -824,  -824,
-    -824,  -824,   787,   650,   661,   663,     6,  -824,   672,  -824,
-    -824,  -824,  -824,  -824
+     425,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,   102,    46,    99,   114,
+     125,   133,   144,   148,   179,   204,   206,   217,   219,   242,
+     251,   257,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,    46,    22,    44,    45,    64,   230,    69,    33,
+     244,   205,    53,   194,   -23,   364,    81,    57,  -820,   268,
+     262,   280,   278,   287,  -820,  -820,  -820,  -820,  -820,   288,
+    -820,    56,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,   290,   301,   311,   312,   328,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,   344,  -820,  -820,  -820,  -820,
+      97,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,   345,  -820,   128,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,   346,   372,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,   135,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   182,
+    -820,  -820,  -820,  -820,  -820,   378,  -820,   399,   403,  -820,
+    -820,  -820,  -820,  -820,  -820,   185,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,   333,   365,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,   384,  -820,  -820,   413,  -820,  -820,  -820,
+     427,  -820,  -820,   433,   439,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   442,   445,
+    -820,  -820,  -820,  -820,   444,   450,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   186,  -820,
+    -820,  -820,   451,  -820,  -820,   452,  -820,   453,   454,  -820,
+    -820,   455,   456,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+     225,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   232,  -820,
+    -820,  -820,  -820,   233,  -820,  -820,  -820,    46,    46,  -820,
+     284,   457,   458,   460,   461,   463,  -820,    44,  -820,    57,
+     464,   465,   466,   467,   468,   302,   305,   306,   307,   308,
+     471,   476,   477,   478,   479,   480,   494,   498,   499,   500,
+     503,   504,   505,   506,   507,   508,   342,   511,   512,   513,
+      45,  -820,   514,   347,    64,  -820,   515,   520,   521,   522,
+     523,   357,   356,   526,   527,   528,   531,   230,  -820,   532,
+      69,  -820,   533,   367,   535,   369,   375,    33,  -820,   539,
+     543,   544,   546,   547,   548,   551,  -820,   244,  -820,   553,
+     554,   389,   555,   557,   558,   390,  -820,    53,   560,   394,
+     396,  -820,   194,   566,   567,   106,  -820,   400,   568,   570,
+     404,   572,   406,   407,   591,   592,   424,   426,   594,   596,
+     598,   599,   364,  -820,   600,    81,  -820,   601,    57,  -820,
+    -820,  -820,   602,   603,   604,    46,    46,    46,  -820,   245,
+     605,   606,   607,   608,   611,  -820,  -820,  -820,  -820,  -820,
+     438,   612,   613,   614,   615,   459,   616,   618,   619,   620,
+     621,   622,   625,   626,   627,   628,  -820,   629,   615,   630,
+    -820,   633,  -820,  -820,   634,   635,   462,   472,   473,  -820,
+    -820,   359,   633,   474,   638,  -820,   481,  -820,   482,  -820,
+     483,  -820,  -820,  -820,   633,   633,   633,   484,   485,   486,
+     487,  -820,   488,   489,  -820,   490,   491,   492,  -820,  -820,
+     493,  -820,  -820,  -820,   495,    46,  -820,  -820,   496,   497,
+    -820,   501,  -820,  -820,   -61,   510,  -820,  -820,   -25,   502,
+     509,   516,  -820,   636,  -820,   642,  -820,    46,    45,    81,
+    -820,  -820,  -820,  -820,    57,    64,   143,   143,   641,  -820,
+     643,   657,   661,  -820,  -820,  -820,   662,   -31,    46,   237,
+     525,   663,   666,   667,   218,   118,    84,  -820,   364,  -820,
+    -820,   668,   669,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,   -19,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   670,   641,
+    -820,   249,   258,   259,   270,  -820,  -820,  -820,  -820,   645,
+     674,   676,   677,   678,  -820,   679,   680,  -820,   681,   683,
+     684,  -820,   277,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,   300,  -820,   685,   617,  -820,  -820,   686,   623,  -820,
+    -820,   687,   691,  -820,  -820,   689,   693,  -820,  -820,   692,
+     694,  -820,  -820,  -820,   138,  -820,  -820,  -820,   695,  -820,
+    -820,  -820,   160,  -820,  -820,  -820,  -820,   303,  -820,  -820,
+    -820,   377,  -820,  -820,   696,   697,  -820,  -820,   698,   700,
+    -820,   701,   702,   703,   704,   705,   706,   304,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,   707,   708,   709,
+    -820,  -820,  -820,  -820,   336,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,   337,  -820,  -820,  -820,
+     348,   519,  -820,   710,   711,  -820,  -820,   712,   714,  -820,
+    -820,  -820,   682,  -820,  -820,   410,  -820,   713,  -820,  -820,
+    -820,  -820,   716,   717,   718,   719,   556,   436,   559,   542,
+     561,   720,   562,   563,   721,   564,   565,   569,   143,  -820,
+    -820,   143,  -820,   641,   230,  -820,   643,    53,  -820,   657,
+     194,  -820,   661,   379,  -820,   662,   -31,  -820,  -820,   237,
+    -820,   722,   525,  -820,   190,   663,  -820,   244,  -820,   666,
+     -23,  -820,   667,   573,   574,   575,   576,   577,   578,   218,
+    -820,   724,   725,   579,   580,   581,   118,  -820,   727,   733,
+      84,  -820,  -820,  -820,   732,   736,    69,  -820,   668,    33,
+    -820,   669,   737,  -820,   134,   670,  -820,  -820,   416,   529,
+     583,   584,  -820,  -820,  -820,  -820,  -820,   585,  -820,  -820,
+     586,  -820,  -820,  -820,  -820,   349,  -820,   358,  -820,   735,
+    -820,   749,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,   366,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,   588,  -820,  -820,   755,  -820,
+    -820,  -820,  -820,  -820,   752,   758,  -820,  -820,  -820,  -820,
+    -820,   754,  -820,   381,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,   -27,   593,  -820,  -820,  -820,  -820,   595,   610,
+    -820,  -820,   650,   388,  -820,   391,  -820,   653,  -820,   762,
+    -820,  -820,  -820,  -820,  -820,   401,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,   379,  -820,  -820,   764,   640,
+    -820,   190,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,   765,   655,   767,   134,  -820,
+    -820,   659,  -820,  -820,   770,  -820,   665,  -820,  -820,   771,
+    -820,  -820,   437,  -820,     8,   771,  -820,  -820,   768,   773,
+     777,   420,  -820,  -820,  -820,  -820,  -820,  -820,   780,   654,
+     660,   672,     8,  -820,   675,  -820,  -820,  -820,  -820,  -820
   };
 
   const unsigned short
@@ -4137,11 +4127,11 @@ namespace isc { namespace dhcp {
        0,     0,     1,    47,    40,    36,    35,    32,    33,    34,
       39,     3,    37,    38,    60,     5,    72,     7,   116,     9,
      257,    11,   403,    13,   428,    15,   458,    17,   328,    19,
-     336,    21,   373,    23,   222,    25,   557,    27,   632,    29,
-     622,    31,    49,    43,     0,     0,     0,     0,     0,     0,
+     336,    21,   373,    23,   222,    25,   557,    27,   630,    29,
+     620,    31,    49,    43,     0,     0,     0,     0,     0,     0,
      460,     0,   338,   375,     0,     0,     0,     0,    51,     0,
-      50,     0,     0,    44,    70,   630,   612,   614,   616,     0,
-      69,     0,    62,    64,    66,    67,    68,    65,   618,   620,
+      50,     0,     0,    44,    70,   628,   610,   612,   614,     0,
+      69,     0,    62,    64,    66,    67,    68,    65,   616,   618,
      114,   128,   130,   132,     0,     0,     0,     0,     0,   112,
      249,   326,   365,   416,   418,   299,   195,   212,   203,   188,
      495,   450,   214,   233,   516,     0,   540,   553,   555,   106,
@@ -4162,130 +4152,128 @@ namespace isc { namespace dhcp {
      345,   361,   346,   347,   348,   349,   350,   389,     0,     0,
      387,   388,   391,   392,     0,   376,   377,   379,   380,   381,
      382,   383,   384,   385,   386,   229,   231,   226,     0,   224,
-     227,   228,     0,   581,   583,     0,   586,     0,     0,   590,
-     594,     0,     0,     0,   599,   606,   608,   610,   579,   577,
-     578,     0,   559,   561,   562,   563,   564,   565,   566,   567,
-     568,   569,   570,   571,   572,   573,   574,   575,   576,   637,
-       0,   634,   636,   628,   627,     0,   624,   626,    48,     0,
-       0,    41,     0,     0,     0,     0,     0,     0,    59,     0,
-      61,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     227,   228,     0,   580,   582,     0,   585,     0,     0,   589,
+     593,     0,     0,   597,   604,   606,   608,   578,   576,   577,
+       0,   559,   561,   562,   563,   564,   565,   566,   567,   568,
+     569,   570,   571,   572,   573,   574,   575,   635,     0,   632,
+     634,   626,   625,     0,   622,   624,    48,     0,     0,    41,
+       0,     0,     0,     0,     0,     0,    59,     0,    61,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    73,     0,     0,     0,   117,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     258,     0,     0,   404,     0,     0,     0,     0,     0,     0,
-     429,     0,     0,     0,     0,     0,     0,     0,   459,     0,
-     329,     0,     0,     0,     0,     0,     0,     0,   337,     0,
-       0,     0,     0,   374,     0,     0,     0,     0,   223,     0,
+       0,    73,     0,     0,     0,   117,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   258,     0,
+       0,   404,     0,     0,     0,     0,     0,     0,   429,     0,
+       0,     0,     0,     0,     0,     0,   459,     0,   329,     0,
+       0,     0,     0,     0,     0,     0,   337,     0,     0,     0,
+       0,   374,     0,     0,     0,     0,   223,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   558,     0,     0,   633,
-       0,     0,   623,    52,    45,     0,     0,     0,     0,     0,
-       0,    63,     0,     0,     0,     0,     0,     0,   107,   108,
-     109,   110,   111,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   539,
-       0,     0,     0,    75,     0,   127,   119,     0,     0,     0,
-       0,     0,   297,   298,     0,     0,     0,     0,   260,     0,
-     406,     0,   445,     0,   448,   449,   431,     0,     0,     0,
-       0,     0,     0,     0,   463,     0,     0,   353,     0,     0,
-       0,   364,   341,     0,   393,   394,   378,     0,     0,   225,
-     580,     0,     0,   585,     0,   588,   589,     0,     0,   596,
-     597,   598,     0,     0,     0,     0,   560,     0,   635,     0,
-     625,     0,     0,     0,   613,   615,   617,   619,     0,     0,
-       0,     0,   134,   113,   251,   330,   367,    42,   417,   419,
-     301,     0,    49,     0,     0,     0,   452,   216,     0,     0,
-       0,   554,     0,    53,   126,   397,   422,   282,   284,   286,
-     293,   294,   295,   296,   292,   290,   288,     0,   415,   444,
-     447,   488,   476,   478,   480,   482,   484,   486,   356,   174,
-     360,   358,   363,   390,   230,   232,   582,   584,   587,   592,
-     593,   591,   595,   601,   602,   603,   604,   605,   600,   607,
-     609,   611,     0,   134,    46,     0,     0,     0,     0,   160,
-     166,   168,   170,     0,     0,     0,     0,     0,   183,     0,
-       0,   186,     0,     0,     0,   159,     0,   140,   142,   143,
-     144,   145,   146,   147,   148,   149,   150,   151,   154,   155,
-     156,   157,   152,   153,   158,     0,   138,     0,   135,   136,
-     255,     0,   252,   253,   334,     0,   331,   332,   371,     0,
-     368,   369,   305,     0,   302,   303,   201,   202,     0,   197,
-     199,   200,     0,   210,   211,   207,     0,   205,   208,   209,
-     193,     0,   190,   192,   499,     0,   497,   456,     0,   453,
-     454,   220,     0,   217,   218,     0,     0,     0,     0,     0,
-       0,     0,   235,   237,   238,   239,   240,   241,   242,   529,
-     535,     0,     0,     0,   528,   525,   526,   527,     0,   518,
-     520,   523,   521,   522,   524,   549,   551,   548,   546,   547,
-       0,   542,   544,   545,     0,    55,   401,     0,   398,   399,
-     426,     0,   423,   424,   493,   492,     0,   491,   641,     0,
-     639,     0,    71,   631,   621,   115,     0,     0,     0,     0,
+       0,     0,     0,   558,     0,     0,   631,     0,     0,   621,
+      52,    45,     0,     0,     0,     0,     0,     0,    63,     0,
+       0,     0,     0,     0,     0,   107,   108,   109,   110,   111,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   129,   131,     0,   133,     0,     0,   250,
-       0,   338,   327,     0,   375,   366,     0,     0,   300,     0,
-       0,   196,   213,     0,   204,     0,     0,   189,   501,     0,
-     496,   460,   451,     0,     0,   215,     0,     0,     0,     0,
-       0,     0,     0,     0,   234,     0,     0,     0,     0,     0,
-       0,   517,     0,     0,     0,   541,   556,    57,     0,    56,
-       0,   396,     0,     0,   421,     0,     0,   490,     0,     0,
-     638,   629,     0,     0,     0,     0,   172,   175,   176,   177,
-     178,     0,   185,   179,     0,   180,   181,   182,   141,     0,
-     137,     0,   254,     0,   333,     0,   370,   325,   320,   322,
-     313,   314,   309,   310,   311,   312,   318,   319,   317,   321,
-       0,   307,   315,   323,   324,   316,   304,   198,   206,     0,
-     191,   513,     0,   511,   512,   508,   509,   510,     0,   502,
-     503,   505,   506,   507,   498,     0,   455,     0,   219,   243,
-     244,   245,   246,   247,   248,   236,     0,     0,   534,   537,
-     538,   519,     0,     0,   543,    54,     0,     0,   400,     0,
-     425,     0,   655,     0,   653,   651,   645,   649,   650,     0,
-     643,   647,   648,   646,   640,   162,   163,   164,   165,   161,
-     167,   169,   171,   184,   187,   139,   256,   335,   372,     0,
-     306,   194,     0,     0,   500,     0,   457,   221,   531,   532,
-     533,   530,   536,   550,   552,    58,   402,   427,   494,     0,
-       0,     0,     0,   642,   308,     0,   515,   504,     0,   652,
-       0,   644,   514,     0,   654,   659,     0,   657,     0,     0,
-     656,   667,     0,     0,     0,     0,   661,   663,   664,   665,
-     666,   658,     0,     0,     0,     0,     0,   660,     0,   669,
-     670,   671,   662,   668
+       0,     0,     0,     0,     0,     0,   539,     0,     0,     0,
+      75,     0,   127,   119,     0,     0,     0,     0,     0,   297,
+     298,     0,     0,     0,     0,   260,     0,   406,     0,   445,
+       0,   448,   449,   431,     0,     0,     0,     0,     0,     0,
+       0,   463,     0,     0,   353,     0,     0,     0,   364,   341,
+       0,   393,   394,   378,     0,     0,   225,   579,     0,     0,
+     584,     0,   587,   588,     0,     0,   595,   596,     0,     0,
+       0,     0,   560,     0,   633,     0,   623,     0,     0,     0,
+     611,   613,   615,   617,     0,     0,     0,     0,   134,   113,
+     251,   330,   367,    42,   417,   419,   301,     0,    49,     0,
+       0,     0,   452,   216,     0,     0,     0,   554,     0,    53,
+     126,   397,   422,   282,   284,   286,   293,   294,   295,   296,
+     292,   290,   288,     0,   415,   444,   447,   488,   476,   478,
+     480,   482,   484,   486,   356,   174,   360,   358,   363,   390,
+     230,   232,   581,   583,   586,   591,   592,   590,   594,   599,
+     600,   601,   602,   603,   598,   605,   607,   609,     0,   134,
+      46,     0,     0,     0,     0,   160,   166,   168,   170,     0,
+       0,     0,     0,     0,   183,     0,     0,   186,     0,     0,
+       0,   159,     0,   140,   142,   143,   144,   145,   146,   147,
+     148,   149,   150,   151,   154,   155,   156,   157,   152,   153,
+     158,     0,   138,     0,   135,   136,   255,     0,   252,   253,
+     334,     0,   331,   332,   371,     0,   368,   369,   305,     0,
+     302,   303,   201,   202,     0,   197,   199,   200,     0,   210,
+     211,   207,     0,   205,   208,   209,   193,     0,   190,   192,
+     499,     0,   497,   456,     0,   453,   454,   220,     0,   217,
+     218,     0,     0,     0,     0,     0,     0,     0,   235,   237,
+     238,   239,   240,   241,   242,   529,   535,     0,     0,     0,
+     528,   525,   526,   527,     0,   518,   520,   523,   521,   522,
+     524,   549,   551,   548,   546,   547,     0,   542,   544,   545,
+       0,    55,   401,     0,   398,   399,   426,     0,   423,   424,
+     493,   492,     0,   491,   639,     0,   637,     0,    71,   629,
+     619,   115,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   129,
+     131,     0,   133,     0,     0,   250,     0,   338,   327,     0,
+     375,   366,     0,     0,   300,     0,     0,   196,   213,     0,
+     204,     0,     0,   189,   501,     0,   496,   460,   451,     0,
+       0,   215,     0,     0,     0,     0,     0,     0,     0,     0,
+     234,     0,     0,     0,     0,     0,     0,   517,     0,     0,
+       0,   541,   556,    57,     0,    56,     0,   396,     0,     0,
+     421,     0,     0,   490,     0,     0,   636,   627,     0,     0,
+       0,     0,   172,   175,   176,   177,   178,     0,   185,   179,
+       0,   180,   181,   182,   141,     0,   137,     0,   254,     0,
+     333,     0,   370,   325,   320,   322,   313,   314,   309,   310,
+     311,   312,   318,   319,   317,   321,     0,   307,   315,   323,
+     324,   316,   304,   198,   206,     0,   191,   513,     0,   511,
+     512,   508,   509,   510,     0,   502,   503,   505,   506,   507,
+     498,     0,   455,     0,   219,   243,   244,   245,   246,   247,
+     248,   236,     0,     0,   534,   537,   538,   519,     0,     0,
+     543,    54,     0,     0,   400,     0,   425,     0,   653,     0,
+     651,   649,   643,   647,   648,     0,   641,   645,   646,   644,
+     638,   162,   163,   164,   165,   161,   167,   169,   171,   184,
+     187,   139,   256,   335,   372,     0,   306,   194,     0,     0,
+     500,     0,   457,   221,   531,   532,   533,   530,   536,   550,
+     552,    58,   402,   427,   494,     0,     0,     0,     0,   640,
+     308,     0,   515,   504,     0,   650,     0,   642,   514,     0,
+     652,   657,     0,   655,     0,     0,   654,   665,     0,     0,
+       0,     0,   659,   661,   662,   663,   664,   656,     0,     0,
+       0,     0,     0,   658,     0,   667,   668,   669,   660,   666
   };
 
   const short
   Dhcp6Parser::yypgoto_[] =
   {
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,    14,  -824,  -451,
-    -824,   168,  -824,  -824,  -824,  -824,   164,  -824,  -423,  -824,
-    -824,  -824,   -74,  -824,  -824,  -824,   427,  -824,  -824,  -824,
-    -824,   238,   429,   -70,   -58,   -55,   -38,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,   240,   431,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,   169,  -824,     0,  -824,  -577,
-       7,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,   -46,  -824,  -607,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,   -18,
-    -824,  -824,  -824,  -824,  -824,    -9,  -600,  -824,  -824,  -824,
-    -824,   -11,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-     -22,  -824,  -824,  -824,   -19,   400,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,   -23,  -824,  -824,  -824,  -824,  -824,  -824,
-    -823,  -824,  -824,  -824,    11,  -824,  -824,  -824,    15,   445,
-    -824,  -824,  -819,  -824,  -817,  -824,   -34,  -824,   -32,  -824,
-    -809,  -824,  -824,  -824,  -808,  -824,  -824,  -824,  -824,     8,
-    -824,  -824,  -164,   789,  -824,  -824,  -824,  -824,  -824,    19,
-    -824,  -824,  -824,    22,  -824,   428,  -824,   -42,  -824,  -824,
-    -824,  -824,  -824,   -40,  -824,  -824,  -824,  -824,  -824,   -12,
-    -824,  -824,  -824,    18,  -824,  -824,  -824,    21,  -824,   424,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,   -26,  -824,  -824,  -824,   -21,   458,  -824,  -824,   -62,
-    -824,   -50,  -824,  -824,  -824,  -824,  -824,   -24,  -824,  -824,
-    -824,   -20,   456,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-     -35,  -824,  -824,  -824,     9,  -824,  -824,  -824,    13,  -824,
-     448,   249,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -807,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,    20,  -824,  -824,  -824,  -145,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,     2,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,    -1,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,   275,
-     419,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,
-    -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -824,  -346,
-     414,  -824,  -824,  -824,  -824,  -824,  -824,   305,   418,  -824,
-    -824,  -824,   -10,  -824,  -824,  -152,  -824,  -824,  -824,  -824,
-    -824,  -824,  -168,  -824,  -824,  -184,  -824,  -824,  -824,  -824,
-    -824
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,    14,  -820,  -447,
+    -820,   115,  -820,  -820,  -820,  -820,   132,  -820,  -337,  -820,
+    -820,  -820,   -74,  -820,  -820,  -820,   432,  -820,  -820,  -820,
+    -820,   199,   392,   -70,   -58,   -55,   -38,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,   216,   429,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,   169,  -820,    -4,  -820,  -573,
+       6,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,   -46,  -820,  -603,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   -15,
+    -820,  -820,  -820,  -820,  -820,    -8,  -596,  -820,  -820,  -820,
+    -820,    -9,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+     -21,  -820,  -820,  -820,   -17,   402,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,   -20,  -820,  -820,  -820,  -820,  -820,  -820,
+    -819,  -820,  -820,  -820,    10,  -820,  -820,  -820,    16,   446,
+    -820,  -820,  -815,  -820,  -813,  -820,   -34,  -820,   -32,  -820,
+    -805,  -820,  -820,  -820,  -804,  -820,  -820,  -820,  -820,    11,
+    -820,  -820,  -164,   787,  -820,  -820,  -820,  -820,  -820,    20,
+    -820,  -820,  -820,    23,  -820,   428,  -820,   -41,  -820,  -820,
+    -820,  -820,  -820,   -40,  -820,  -820,  -820,  -820,  -820,   -12,
+    -820,  -820,  -820,    19,  -820,  -820,  -820,    24,  -820,   421,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,   -26,  -820,  -820,  -820,   -18,   469,  -820,  -820,   -62,
+    -820,   -50,  -820,  -820,  -820,  -820,  -820,   -24,  -820,  -820,
+    -820,   -16,   449,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+     -36,  -820,  -820,  -820,    12,  -820,  -820,  -820,    13,  -820,
+     448,   246,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -803,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,    17,  -820,  -820,  -820,  -145,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,     2,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,     0,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,   273,
+     422,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,
+    -820,  -820,  -820,  -820,  -820,  -820,  -820,  -820,  -344,   414,
+    -820,  -820,  -820,  -820,  -820,  -820,   309,   418,  -820,  -820,
+    -820,   -10,  -820,  -820,  -152,  -820,  -820,  -820,  -820,  -820,
+    -820,  -168,  -820,  -820,  -183,  -820,  -820,  -820,  -820,  -820
   };
 
   const short
@@ -4293,448 +4281,443 @@ namespace isc { namespace dhcp {
   {
       -1,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    88,    41,    42,
-      73,   608,    92,    93,    43,    72,    89,    90,   624,   805,
-     898,   899,   354,    45,    74,   101,   102,   103,   363,    47,
-      75,   140,   141,   142,   143,   144,   145,   146,   147,   382,
-     148,   373,    49,    76,   175,   176,   177,   404,   178,   149,
-     374,   150,   375,   151,   376,   717,   718,   719,   845,   696,
-     697,   698,   826,  1019,   699,   827,   700,   828,   701,   829,
-     702,   703,   442,   704,   705,   706,   707,   708,   709,   710,
-     711,   712,   835,   713,   714,   838,   152,   392,   751,   752,
-     753,   865,   153,   389,   738,   739,   740,   741,   154,   391,
-     746,   747,   748,   749,   155,   390,   156,   395,   762,   763,
-     764,   874,    65,    84,   308,   309,   310,   455,   311,   456,
-     157,   396,   771,   772,   773,   774,   775,   776,   777,   778,
-     158,   383,   721,   722,   723,   848,    51,    77,   197,   198,
-     199,   410,   200,   411,   201,   412,   202,   417,   203,   416,
-     204,   415,   634,   205,   206,   159,   388,   733,   734,   735,
-     857,   950,   951,   160,   384,    59,    81,   725,   726,   727,
-     851,    61,    82,   273,   274,   275,   276,   277,   278,   279,
-     441,   280,   445,   281,   444,   282,   283,   446,   284,   161,
-     385,   729,   730,   731,   854,    63,    83,   294,   295,   296,
-     297,   298,   450,   299,   300,   301,   302,   208,   408,   807,
-     808,   809,   900,    53,    78,   219,   220,   221,   421,   162,
-     386,   163,   387,   211,   409,   811,   812,   813,   903,    55,
-      79,   235,   236,   237,   424,   238,   239,   426,   240,   241,
-     164,   394,   758,   759,   760,   871,    57,    80,   253,   254,
-     255,   256,   432,   257,   433,   258,   434,   259,   435,   260,
-     436,   261,   437,   262,   431,   213,   418,   816,   817,   906,
-     165,   393,   755,   756,   868,   968,   969,   970,   971,   972,
-    1032,   973,   166,   397,   788,   789,   790,   885,  1041,   791,
-     792,   886,   793,   794,   167,   168,   399,   800,   801,   802,
-     892,   803,   893,   169,   400,   170,   401,    67,    85,   331,
-     332,   333,   334,   460,   335,   461,   336,   337,   463,   338,
-     339,   340,   466,   661,   341,   467,   342,   343,   344,   345,
-     471,   668,   346,   472,   347,   473,   348,   474,   104,   365,
-     105,   366,   106,   367,   171,   371,   372,    71,    87,   355,
-     356,   357,   480,   107,   364,    69,    86,   350,   351,   352,
-     477,   819,   820,   908,  1009,  1010,  1011,  1012,  1051,  1013,
-    1049,  1066,  1067,  1068,  1075,  1076,  1077,  1082,  1078,  1079,
-    1080
+      73,   604,    92,    93,    43,    72,    89,    90,   620,   801,
+     894,   895,   352,    45,    74,   101,   102,   103,   361,    47,
+      75,   140,   141,   142,   143,   144,   145,   146,   147,   380,
+     148,   371,    49,    76,   175,   176,   177,   402,   178,   149,
+     372,   150,   373,   151,   374,   713,   714,   715,   841,   692,
+     693,   694,   822,  1015,   695,   823,   696,   824,   697,   825,
+     698,   699,   440,   700,   701,   702,   703,   704,   705,   706,
+     707,   708,   831,   709,   710,   834,   152,   390,   747,   748,
+     749,   861,   153,   387,   734,   735,   736,   737,   154,   389,
+     742,   743,   744,   745,   155,   388,   156,   393,   758,   759,
+     760,   870,    65,    84,   308,   309,   310,   453,   311,   454,
+     157,   394,   767,   768,   769,   770,   771,   772,   773,   774,
+     158,   381,   717,   718,   719,   844,    51,    77,   197,   198,
+     199,   408,   200,   409,   201,   410,   202,   415,   203,   414,
+     204,   413,   630,   205,   206,   159,   386,   729,   730,   731,
+     853,   946,   947,   160,   382,    59,    81,   721,   722,   723,
+     847,    61,    82,   273,   274,   275,   276,   277,   278,   279,
+     439,   280,   443,   281,   442,   282,   283,   444,   284,   161,
+     383,   725,   726,   727,   850,    63,    83,   294,   295,   296,
+     297,   298,   448,   299,   300,   301,   302,   208,   406,   803,
+     804,   805,   896,    53,    78,   219,   220,   221,   419,   162,
+     384,   163,   385,   211,   407,   807,   808,   809,   899,    55,
+      79,   235,   236,   237,   422,   238,   239,   424,   240,   241,
+     164,   392,   754,   755,   756,   867,    57,    80,   253,   254,
+     255,   256,   430,   257,   431,   258,   432,   259,   433,   260,
+     434,   261,   435,   262,   429,   213,   416,   812,   813,   902,
+     165,   391,   751,   752,   864,   964,   965,   966,   967,   968,
+    1028,   969,   166,   395,   784,   785,   786,   881,  1037,   787,
+     788,   882,   789,   790,   167,   168,   397,   796,   797,   798,
+     888,   799,   889,   169,   398,   170,   399,    67,    85,   330,
+     331,   332,   333,   458,   334,   459,   335,   336,   461,   337,
+     338,   339,   464,   657,   340,   465,   341,   342,   343,   468,
+     664,   344,   469,   345,   470,   346,   471,   104,   363,   105,
+     364,   106,   365,   171,   369,   370,    71,    87,   353,   354,
+     355,   477,   107,   362,    69,    86,   348,   349,   350,   474,
+     815,   816,   904,  1005,  1006,  1007,  1008,  1047,  1009,  1045,
+    1062,  1063,  1064,  1071,  1072,  1073,  1078,  1074,  1075,  1076
   };
 
   const unsigned short
   Dhcp6Parser::yytable_[] =
   {
      100,   139,   174,   192,   215,   229,   249,   193,   271,   290,
-     307,   328,   785,   745,   179,   209,   222,   233,   251,   194,
-     285,   303,   195,   329,   715,   492,   180,   210,   223,   234,
-     252,    40,   286,   304,   943,   330,   272,   291,   944,   196,
-     945,   292,   212,   293,   216,   230,   217,   231,   948,   949,
-     955,    32,    94,   264,    44,   353,   607,    33,   736,    34,
-      46,    35,   172,   173,    91,   207,   218,   232,   250,   108,
-     607,   305,   306,   109,   122,   110,   243,    48,   111,   112,
-     113,   369,   265,   814,   266,   267,   370,    50,   268,   269,
-     270,    52,   123,   124,   663,   664,   665,   666,    54,   123,
-     124,   114,   115,   116,   117,   118,   119,   120,   121,   122,
-     242,    56,   635,   123,   124,    58,   243,   244,   245,   246,
-     247,   248,   123,   124,   641,   642,   643,   123,   124,    60,
-     667,    62,   402,   122,   265,    64,   122,   403,   737,   125,
-     126,   127,   128,   129,    99,   130,   860,   214,    66,   861,
-     131,   123,   124,  1071,   123,   124,  1072,  1073,  1074,   132,
-     406,   779,   133,   419,   863,   407,   265,   864,   420,   134,
-     684,   961,   962,   189,   795,   796,   190,   135,   136,    68,
-     422,   137,   138,   123,   124,   423,    95,    70,   765,   766,
-     767,   768,   769,   770,   121,    96,    97,    98,    99,   265,
-     287,   266,   267,   288,   289,    99,   943,   123,   124,   349,
-     944,   358,   945,    99,    99,   869,   123,   124,   870,    99,
-     948,   949,   955,    36,    37,    38,    39,   429,    99,   457,
-     679,   359,   430,    99,   458,   680,   681,   682,   683,   684,
-     685,   686,   687,   688,   689,   690,   691,   692,   693,   694,
-     305,   306,   677,   780,   781,   782,   783,    99,   909,   265,
-      99,   910,  1069,   745,  1002,  1070,  1003,  1004,   929,   475,
-     114,   115,   116,   117,   476,   478,   481,   481,   122,   402,
-     479,   482,   597,   785,   822,   360,   478,   481,   181,    99,
-     182,   823,   824,   659,   660,   100,   123,   124,   183,   184,
-     185,   186,   187,   188,   406,   842,   842,   866,   361,   825,
-     843,   844,   867,    99,   362,   189,   883,   438,   190,   131,
-     890,   884,    99,   368,   377,   891,   191,   378,   139,   894,
-     475,   842,   174,   419,   895,   896,  1025,  1029,  1026,   379,
-     380,   457,  1030,   381,   179,   192,  1037,   422,   215,   193,
-     398,   405,  1046,   429,  1052,   229,   180,   209,  1047,  1053,
-     222,   194,   413,  1086,   195,   249,   414,   233,  1087,   210,
-     425,   427,   223,   483,   484,   271,   428,   251,   439,   234,
-     290,   196,    99,   443,   212,   440,   447,   285,   216,   252,
-     217,   448,   303,   449,   453,   230,   451,   231,   452,   286,
-     454,   328,    99,   272,   304,   459,   462,   207,   291,   464,
-     218,   465,   292,   329,   293,   468,   469,   232,   122,   470,
-     114,   115,   116,   117,   485,   330,   120,   250,   122,   265,
-     486,   224,   225,   226,   227,   228,   123,   124,   630,   631,
-     632,   633,  1015,  1016,  1017,  1018,   123,   124,   487,   184,
-     185,   488,   187,   188,   489,   189,   490,   493,   190,   736,
-     743,   494,   744,   495,   496,   189,   497,   498,   190,  1038,
-    1039,  1040,   503,   504,   505,   506,   191,     1,     2,     3,
-       4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
-      14,    15,   507,   508,   499,   509,   500,   501,   510,   511,
-     512,   502,   594,   595,   596,   513,   514,   515,   516,   517,
-     518,   520,   519,   521,   522,   524,   525,   527,   139,   528,
-     529,   530,   531,   533,   532,   174,   695,   695,   534,   123,
-     124,   535,   536,   537,   539,   541,   542,   179,   543,   547,
-     548,   544,    99,   549,   550,   784,   797,   551,   328,   180,
-     545,   552,    99,   553,   555,   556,   557,   786,   798,   558,
-     329,   559,   560,   561,   563,   564,   567,   565,   568,   787,
-     799,   571,   330,   570,   572,   573,   574,   577,   575,   578,
-     576,   582,   655,   579,   580,   312,   313,   314,   315,   316,
-     317,   318,   319,   320,   321,   322,   323,   324,   325,   581,
-     583,   584,   585,   587,   589,   674,   326,   327,   591,   592,
-     593,   603,   598,   599,   600,   601,   602,   604,   605,   606,
-     609,   610,    34,   611,   612,   613,   627,   615,   614,   616,
-     617,   847,   628,   618,   619,    99,   620,   622,   623,   625,
-     626,   672,   673,   629,   636,   637,   638,   639,   640,   644,
-     645,   646,   647,   648,   649,   650,   651,   652,   653,   662,
-     716,   654,   720,   656,   657,   724,   728,   732,   658,   669,
-     670,   671,   750,   754,   757,   761,   806,   810,   818,   830,
-     831,   832,   833,   834,   836,   837,   839,   840,   841,   621,
-     850,   846,   849,   853,   852,   855,   856,   858,   859,   917,
-     862,   873,   872,   875,   876,   901,   877,   878,   879,   880,
-     881,   882,   887,   888,   889,   897,   902,   904,   905,   919,
-     907,   912,   911,   913,   914,   915,   916,   921,   918,   924,
-     959,   920,   986,   922,   987,   923,   992,   925,   926,   993,
-     995,   979,   927,   980,   996,  1027,   981,  1001,   982,  1033,
-     983,   984,   988,   989,   990,  1020,  1021,  1022,  1023,  1024,
-    1028,  1034,  1031,  1035,  1036,  1042,  1043,  1050,   695,  1055,
-    1058,   695,  1044,  1060,   192,  1063,   742,   271,   193,  1065,
-     290,  1045,  1083,   937,  1084,  1085,   209,   938,  1048,   285,
-     194,  1088,   303,   195,   963,   953,   491,   249,   210,   939,
-     307,   286,   940,  1059,   304,   272,   966,   954,   291,   251,
-     196,   942,   292,   212,   293,  1056,   784,  1062,   967,   941,
-     797,   252,   964,   946,  1089,   947,   215,  1064,   786,   229,
-     675,   523,   798,  1090,  1005,  1091,   207,   526,   222,   678,
-     787,   233,   821,  1093,   799,   952,  1007,   930,   960,   928,
-     223,   957,   958,   234,   978,   977,   965,   569,  1008,   250,
-     985,   932,  1006,   931,   538,  1054,   216,   956,   217,   230,
-     263,   231,   934,   933,   936,   935,   998,   562,   566,   997,
-     540,  1000,   976,   999,   975,   546,   815,   554,   218,   974,
-    1057,   232,   991,   994,   586,   590,   588,   804,   676,  1014,
-    1061,  1081,  1092,     0,     0,     0,     0,     0,     0,     0,
+     307,   327,   781,   741,   179,   209,   222,   233,   251,   194,
+     285,   303,   195,   328,   711,   489,   180,   210,   223,   234,
+     252,    40,   286,   304,   939,   329,   272,   291,   940,   196,
+     941,   212,   292,   293,   216,   230,   217,   231,   944,   945,
+     951,    33,   108,    34,    94,    35,   109,   603,   110,   367,
+     732,   111,   112,   113,   368,   207,   218,   232,   250,   351,
+     243,   603,   264,   655,   656,   305,   306,   810,   172,   173,
+     122,  1034,  1035,  1036,   114,   115,   116,   117,   118,   119,
+     120,   121,   122,   224,   225,   226,   227,   228,   123,   124,
+     400,   265,    32,   266,   267,   401,    44,   268,   269,   270,
+     123,   124,   659,   660,   661,   662,   122,   189,   123,   124,
+     190,    46,   125,   126,   127,   128,   129,   214,   130,   123,
+     124,   404,    48,   131,   123,   124,   405,   775,   417,   733,
+      50,   856,   132,   418,   857,   133,   680,    99,   663,   123,
+     124,    52,   134,   189,  1067,    54,   190,  1068,  1069,  1070,
+     135,   136,   675,   859,   137,   138,   860,   676,   677,   678,
+     679,   680,   681,   682,   683,   684,   685,   686,   687,   688,
+     689,   690,   265,   123,   124,   420,    56,    95,   427,   455,
+     421,   265,    91,   428,   456,   631,    96,    97,    98,   123,
+     124,   791,   792,    99,   305,   306,   939,   637,   638,   639,
+     940,    58,   941,    60,    99,    99,    36,    37,    38,    39,
+     944,   945,   951,    99,    62,   347,    64,    99,   472,   776,
+     777,   778,   779,   473,    99,   475,   478,   122,   265,    99,
+     476,   479,   265,   287,   266,   267,   288,   289,   478,    66,
+     673,   121,   400,   593,    99,   123,   124,   818,    68,   123,
+     124,   475,   478,   741,    70,   357,   819,   820,   925,   114,
+     115,   116,   117,   404,   356,   957,   958,   122,   821,   998,
+     838,   999,  1000,   781,   358,   839,   359,   181,    99,   182,
+     360,   122,   366,   100,   375,   123,   124,   183,   184,   185,
+     186,   187,   188,   838,    99,   376,   862,   879,   840,   123,
+     124,   863,   880,    99,   189,   377,   378,   190,   131,   761,
+     762,   763,   764,   765,   766,   191,   139,   242,   732,   739,
+     174,   740,   379,   243,   244,   245,   246,   247,   248,   886,
+     890,   436,   179,   192,   887,   891,   215,   193,   396,   403,
+     411,   472,   838,   229,   180,   209,   892,  1021,   222,   194,
+      99,   417,   195,   249,    99,   233,  1022,   210,   437,  1025,
+     223,   480,   481,   271,  1026,   251,   412,   234,   290,   196,
+     865,   212,   423,   866,   455,   285,   216,   252,   217,  1033,
+     303,   420,   438,   230,   427,   231,  1042,   286,   327,  1043,
+      99,   272,   304,   425,  1048,   207,   291,   426,   218,  1049,
+     328,   292,   293,   905,    99,   232,   906,   441,   114,   115,
+     116,   117,   329,  1082,   120,   250,   122,   265,  1083,   123,
+     124,   445,   626,   627,   628,   629,  1011,  1012,  1013,  1014,
+    1065,   446,   447,  1066,   123,   124,   449,   184,   185,   450,
+     187,   188,   451,   452,   482,   457,   460,   462,   463,   466,
+     467,   483,   484,   189,   485,   486,   190,   487,   490,   491,
+     492,   493,   494,   495,   191,   500,   496,   497,   498,   499,
+     501,   502,   503,   504,   505,   312,   313,   314,   315,   316,
+     317,   318,   319,   320,   321,   322,   323,   324,   506,   590,
+     591,   592,   507,   508,   509,   325,   326,   510,   511,   512,
+     513,   514,   515,   516,   139,   517,   518,   519,   521,   524,
+     522,   174,   691,   691,   525,   526,   527,   528,   529,   530,
+     531,   532,   533,   179,    99,   534,   536,   538,   539,   540,
+     541,   780,   793,   544,   327,   180,   542,   545,   546,    99,
+     547,   548,   549,   782,   794,   550,   328,   552,   553,   555,
+     554,   556,   557,   558,   560,   783,   795,   561,   329,   562,
+     564,   565,   568,   567,   569,   570,   571,   572,   573,   651,
+       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
+      11,    12,    13,    14,    15,   574,   575,   576,   578,   577,
+     579,   670,   580,   581,   583,   585,   587,   746,   599,   913,
+     588,   589,   594,   595,   596,   597,   598,   600,   601,   602,
+     843,   606,    34,   607,   608,   609,   846,   611,   610,   605,
+     612,   613,   623,   617,   614,   615,   616,   618,   619,   621,
+     622,   668,   624,   625,   632,   633,   658,   669,   712,   826,
+     716,   634,   635,   636,   640,   641,   642,   643,   644,   645,
+     646,   647,   648,   649,   720,   650,   652,   653,   724,   728,
+     750,   654,   665,   753,   757,   802,   806,   814,   827,   666,
+     828,   829,   830,   832,   833,   835,   667,   836,   837,   893,
+     903,   842,   845,   848,   849,   851,   852,   855,   854,  1016,
+     869,   858,   868,   872,   871,   873,   874,   875,   876,   877,
+     878,   883,   884,   885,   898,   915,   897,   901,   900,   907,
+     908,   909,   910,   911,   917,   920,   955,   912,   982,   983,
+     914,   988,   916,   918,   919,   921,   922,   989,   991,   992,
+     738,   997,   923,  1023,   975,   976,   977,   978,   979,   980,
+     984,   985,   986,  1017,  1018,  1019,  1020,  1024,  1027,  1029,
+    1030,  1031,  1032,  1038,   691,  1039,  1046,   691,  1051,  1054,
+     192,  1056,  1079,   271,   193,  1059,   290,  1080,  1061,   933,
+    1040,  1081,   209,   934,  1084,   285,   194,   671,   303,   195,
+     959,   949,   520,   249,   210,   935,   307,   286,   936,   488,
+     304,   272,   962,   950,   291,   251,   196,   938,   212,   292,
+     293,   674,   780,  1052,   963,   937,   793,   252,   960,   942,
+    1041,   943,   215,  1044,   782,   229,  1055,  1085,   794,  1058,
+    1001,  1086,   207,   523,   222,  1060,   783,   233,   817,   926,
+     795,   948,  1003,  1087,   924,  1089,   223,   956,   953,   234,
+     954,   974,   961,   973,  1004,   250,   928,   566,  1002,   981,
+     927,  1050,   216,   535,   217,   230,   952,   231,   263,   930,
+     929,   932,   994,   563,   931,   559,   543,   996,   993,   811,
+     971,   972,   970,   995,   218,   551,  1053,   232,   987,   537,
+     990,   800,   586,   584,   582,  1010,  1057,  1077,   672,  1088,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   937,     0,     0,     0,   938,
-       0,   963,     0,     0,     0,     0,     0,   953,     0,     0,
-       0,   939,     0,   966,   940,     0,     0,     0,  1005,   954,
-       0,     0,     0,   942,     0,   967,     0,     0,     0,   964,
-    1007,   941,     0,     0,     0,   946,     0,   947,     0,     0,
-       0,     0,  1008,     0,     0,     0,  1006,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   952,     0,     0,
-       0,     0,     0,   965
+       0,   933,     0,     0,     0,   934,     0,   959,     0,     0,
+       0,     0,     0,   949,     0,     0,     0,   935,     0,   962,
+     936,     0,     0,     0,  1001,   950,     0,     0,     0,   938,
+       0,   963,     0,     0,     0,   960,  1003,   937,     0,     0,
+       0,   942,     0,   943,     0,     0,     0,     0,  1004,     0,
+       0,     0,  1002,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   948,     0,     0,     0,     0,     0,   961
   };
 
   const short
   Dhcp6Parser::yycheck_[] =
   {
       74,    75,    76,    77,    78,    79,    80,    77,    82,    83,
-      84,    85,   619,   613,    76,    77,    78,    79,    80,    77,
-      82,    83,    77,    85,   601,   371,    76,    77,    78,    79,
-      80,    17,    82,    83,   857,    85,    82,    83,   857,    77,
-     857,    83,    77,    83,    78,    79,    78,    79,   857,   857,
-     857,     0,    10,    19,     7,    12,   507,     5,    91,     7,
-       7,     9,    14,    15,   171,    77,    78,    79,    80,     7,
-     521,    98,    99,    11,    47,    13,    89,     7,    16,    17,
-      18,     3,    48,    96,    50,    51,     8,     7,    54,    55,
-      56,     7,    65,    66,   138,   139,   140,   141,     7,    65,
-      66,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      83,     7,   535,    65,    66,     7,    89,    90,    91,    92,
-      93,    94,    65,    66,   547,   548,   549,    65,    66,     7,
-     174,     7,     3,    47,    48,     7,    47,     8,   171,    77,
-      78,    79,    80,    81,   171,    83,     3,    58,     7,     6,
-      88,    65,    66,   147,    65,    66,   150,   151,   152,    97,
-       3,    19,   100,     3,     3,     8,    48,     6,     8,   107,
-      28,    85,    86,    84,   117,   118,    87,   115,   116,     7,
-       3,   119,   120,    65,    66,     8,   144,     7,   101,   102,
-     103,   104,   105,   106,    46,   153,   154,   155,   171,    48,
-      49,    50,    51,    52,    53,   171,  1029,    65,    66,   145,
-    1029,     6,  1029,   171,   171,     3,    65,    66,     6,   171,
-    1029,  1029,  1029,   171,   172,   173,   174,     3,   171,     3,
-      19,     3,     8,   171,     8,    24,    25,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      98,    99,   598,   111,   112,   113,   114,   171,     3,    48,
-     171,     6,     3,   863,   146,     6,   148,   149,   845,     3,
-      39,    40,    41,    42,     8,     3,     3,     3,    47,     3,
-       8,     8,     8,   890,     8,     4,     3,     3,    57,   171,
-      59,     8,     8,   135,   136,   369,    65,    66,    67,    68,
-      69,    70,    71,    72,     3,     3,     3,     3,     8,     8,
-       8,     8,     8,   171,     3,    84,     3,     8,    87,    88,
-       3,     8,   171,     4,     4,     8,    95,     4,   402,     3,
-       3,     3,   406,     3,     8,     8,     8,     3,     8,     4,
-       4,     3,     8,     4,   406,   419,     8,     3,   422,   419,
-       4,     4,     8,     3,     3,   429,   406,   419,     8,     8,
-     422,   419,     4,     3,   419,   439,     4,   429,     8,   419,
-       4,     4,   422,   359,   360,   449,     4,   439,     3,   429,
-     454,   419,   171,     4,   419,     8,     4,   449,   422,   439,
-     422,     8,   454,     3,     8,   429,     4,   429,     4,   449,
-       3,   475,   171,   449,   454,     4,     4,   419,   454,     4,
-     422,     4,   454,   475,   454,     4,     4,   429,    47,     4,
-      39,    40,    41,    42,   171,   475,    45,   439,    47,    48,
-       4,    60,    61,    62,    63,    64,    65,    66,    73,    74,
-      75,    76,    20,    21,    22,    23,    65,    66,     4,    68,
-      69,     4,    71,    72,     4,    84,     4,     4,    87,    91,
-      92,     4,    94,     4,     4,    84,     4,   172,    87,   108,
-     109,   110,     4,     4,     4,     4,    95,   156,   157,   158,
-     159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
-     169,   170,     4,     4,   172,     4,   172,   172,     4,     4,
-       4,   172,   488,   489,   490,     4,     4,     4,     4,     4,
-       4,     4,   172,     4,     4,     4,   174,     4,   592,     4,
-       4,     4,     4,   174,   172,   599,   600,   601,     4,    65,
-      66,     4,     4,     4,     4,     4,   172,   599,     4,     4,
-       4,   172,   171,     4,     4,   619,   620,     4,   622,   599,
-     172,     4,   171,     4,     4,     4,   172,   619,   620,     4,
-     622,     4,     4,   174,     4,   174,     4,   174,     4,   619,
-     620,     4,   622,   174,     4,   172,     4,     4,   172,     4,
-     172,     4,   568,   174,   174,   121,   122,   123,   124,   125,
-     126,   127,   128,   129,   130,   131,   132,   133,   134,   174,
-       4,     4,     4,     4,     4,   591,   142,   143,     4,     7,
-       7,   171,     7,     7,     7,     7,     5,     5,     5,     5,
-     171,     5,     7,     5,     5,     5,   171,     5,     7,     5,
-       5,     3,   171,     7,     7,   171,     7,     7,     5,     5,
-       5,     5,     5,   171,   171,     7,   171,   171,   171,   171,
-     171,   171,   171,   171,   171,   171,   171,   171,   171,   137,
-       7,   171,     7,   171,   171,     7,     7,     7,   171,   171,
-     171,   171,    82,     7,     7,     7,     7,     7,     7,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,   521,
-       3,     6,     6,     3,     6,     6,     3,     6,     3,   174,
-       6,     3,     6,     6,     3,     6,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,   171,     3,     6,     3,   174,
-       8,     4,     6,     4,     4,     4,   172,     4,   172,     4,
-       4,   172,     4,   172,     4,   172,     4,   172,   172,     4,
-       6,   172,   174,   172,     3,     8,   172,     4,   172,     4,
-     172,   172,   172,   172,   172,   171,   171,   171,   171,   171,
-       8,     8,   171,     3,     8,   171,   171,     4,   842,     4,
-       4,   845,   171,     4,   848,     5,   612,   851,   848,     7,
-     854,   171,     4,   857,     4,     4,   848,   857,   171,   851,
-     848,     4,   854,   848,   868,   857,   369,   871,   848,   857,
-     874,   851,   857,   172,   854,   851,   868,   857,   854,   871,
-     848,   857,   854,   848,   854,   174,   890,   171,   868,   857,
-     894,   871,   868,   857,   174,   857,   900,   171,   890,   903,
-     592,   402,   894,   172,   908,   172,   848,   406,   900,   599,
-     890,   903,   673,   171,   894,   857,   908,   847,   866,   842,
-     900,   860,   863,   903,   876,   874,   868,   457,   908,   871,
-     883,   850,   908,   848,   419,  1029,   900,   859,   900,   903,
-      81,   903,   853,   851,   856,   854,   902,   449,   454,   900,
-     422,   905,   873,   903,   871,   429,   637,   439,   900,   869,
-    1035,   903,   890,   894,   475,   481,   478,   622,   593,   909,
-    1052,  1069,  1086,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      84,    85,   615,   609,    76,    77,    78,    79,    80,    77,
+      82,    83,    77,    85,   597,   369,    76,    77,    78,    79,
+      80,    17,    82,    83,   853,    85,    82,    83,   853,    77,
+     853,    77,    83,    83,    78,    79,    78,    79,   853,   853,
+     853,     5,     7,     7,    10,     9,    11,   504,    13,     3,
+      91,    16,    17,    18,     8,    77,    78,    79,    80,    12,
+      89,   518,    19,   134,   135,    98,    99,    96,    14,    15,
+      47,   108,   109,   110,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    60,    61,    62,    63,    64,    65,    66,
+       3,    48,     0,    50,    51,     8,     7,    54,    55,    56,
+      65,    66,   137,   138,   139,   140,    47,    84,    65,    66,
+      87,     7,    77,    78,    79,    80,    81,    58,    83,    65,
+      66,     3,     7,    88,    65,    66,     8,    19,     3,   170,
+       7,     3,    97,     8,     6,   100,    28,   170,   173,    65,
+      66,     7,   107,    84,   146,     7,    87,   149,   150,   151,
+     115,   116,    19,     3,   119,   120,     6,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    48,    65,    66,     3,     7,   143,     3,     3,
+       8,    48,   170,     8,     8,   532,   152,   153,   154,    65,
+      66,   117,   118,   170,    98,    99,  1025,   544,   545,   546,
+    1025,     7,  1025,     7,   170,   170,   170,   171,   172,   173,
+    1025,  1025,  1025,   170,     7,   144,     7,   170,     3,   111,
+     112,   113,   114,     8,   170,     3,     3,    47,    48,   170,
+       8,     8,    48,    49,    50,    51,    52,    53,     3,     7,
+     594,    46,     3,     8,   170,    65,    66,     8,     7,    65,
+      66,     3,     3,   859,     7,     3,     8,     8,   841,    39,
+      40,    41,    42,     3,     6,    85,    86,    47,     8,   145,
+       3,   147,   148,   886,     4,     8,     8,    57,   170,    59,
+       3,    47,     4,   367,     4,    65,    66,    67,    68,    69,
+      70,    71,    72,     3,   170,     4,     3,     3,     8,    65,
+      66,     8,     8,   170,    84,     4,     4,    87,    88,   101,
+     102,   103,   104,   105,   106,    95,   400,    83,    91,    92,
+     404,    94,     4,    89,    90,    91,    92,    93,    94,     3,
+       3,     8,   404,   417,     8,     8,   420,   417,     4,     4,
+       4,     3,     3,   427,   404,   417,     8,     8,   420,   417,
+     170,     3,   417,   437,   170,   427,     8,   417,     3,     3,
+     420,   357,   358,   447,     8,   437,     4,   427,   452,   417,
+       3,   417,     4,     6,     3,   447,   420,   437,   420,     8,
+     452,     3,     8,   427,     3,   427,     8,   447,   472,     8,
+     170,   447,   452,     4,     3,   417,   452,     4,   420,     8,
+     472,   452,   452,     3,   170,   427,     6,     4,    39,    40,
+      41,    42,   472,     3,    45,   437,    47,    48,     8,    65,
+      66,     4,    73,    74,    75,    76,    20,    21,    22,    23,
+       3,     8,     3,     6,    65,    66,     4,    68,    69,     4,
+      71,    72,     8,     3,   170,     4,     4,     4,     4,     4,
+       4,     4,     4,    84,     4,     4,    87,     4,     4,     4,
+       4,     4,     4,   171,    95,     4,   171,   171,   171,   171,
+       4,     4,     4,     4,     4,   121,   122,   123,   124,   125,
+     126,   127,   128,   129,   130,   131,   132,   133,     4,   485,
+     486,   487,     4,     4,     4,   141,   142,     4,     4,     4,
+       4,     4,     4,   171,   588,     4,     4,     4,     4,     4,
+     173,   595,   596,   597,     4,     4,     4,     4,   171,   173,
+       4,     4,     4,   595,   170,     4,     4,     4,   171,     4,
+     171,   615,   616,     4,   618,   595,   171,     4,     4,   170,
+       4,     4,     4,   615,   616,     4,   618,     4,     4,     4,
+     171,     4,     4,   173,     4,   615,   616,   173,   618,   173,
+       4,     4,     4,   173,     4,   171,     4,   171,   171,   565,
+     155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
+     165,   166,   167,   168,   169,     4,     4,   173,     4,   173,
+       4,   587,     4,     4,     4,     4,     4,    82,   170,   173,
+       7,     7,     7,     7,     7,     7,     5,     5,     5,     5,
+       3,     5,     7,     5,     5,     5,     3,     5,     7,   170,
+       5,     5,   170,   518,     7,     7,     7,     7,     5,     5,
+       5,     5,   170,   170,   170,     7,   136,     5,     7,     4,
+       7,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   170,   170,   170,     7,   170,   170,   170,     7,     7,
+       7,   170,   170,     7,     7,     7,     7,     7,     4,   170,
+       4,     4,     4,     4,     4,     4,   170,     4,     4,   170,
+       8,     6,     6,     6,     3,     6,     3,     3,     6,   170,
+       3,     6,     6,     3,     6,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     3,   173,     6,     3,     6,     6,
+       4,     4,     4,     4,     4,     4,     4,   171,     4,     4,
+     171,     4,   171,   171,   171,   171,   171,     4,     6,     3,
+     608,     4,   173,     8,   171,   171,   171,   171,   171,   171,
+     171,   171,   171,   170,   170,   170,   170,     8,   170,     4,
+       8,     3,     8,   170,   838,   170,     4,   841,     4,     4,
+     844,     4,     4,   847,   844,     5,   850,     4,     7,   853,
+     170,     4,   844,   853,     4,   847,   844,   588,   850,   844,
+     864,   853,   400,   867,   844,   853,   870,   847,   853,   367,
+     850,   847,   864,   853,   850,   867,   844,   853,   844,   850,
+     850,   595,   886,   173,   864,   853,   890,   867,   864,   853,
+     170,   853,   896,   170,   886,   899,   171,   173,   890,   170,
+     904,   171,   844,   404,   896,   170,   886,   899,   669,   843,
+     890,   853,   904,   171,   838,   170,   896,   862,   856,   899,
+     859,   872,   864,   870,   904,   867,   846,   455,   904,   879,
+     844,  1025,   896,   417,   896,   899,   855,   899,    81,   849,
+     847,   852,   898,   452,   850,   447,   427,   901,   896,   633,
+     867,   869,   865,   899,   896,   437,  1031,   899,   886,   420,
+     890,   618,   478,   475,   472,   905,  1048,  1065,   589,  1082,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  1029,    -1,    -1,    -1,  1029,
-      -1,  1035,    -1,    -1,    -1,    -1,    -1,  1029,    -1,    -1,
-      -1,  1029,    -1,  1035,  1029,    -1,    -1,    -1,  1052,  1029,
-      -1,    -1,    -1,  1029,    -1,  1035,    -1,    -1,    -1,  1035,
-    1052,  1029,    -1,    -1,    -1,  1029,    -1,  1029,    -1,    -1,
-      -1,    -1,  1052,    -1,    -1,    -1,  1052,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1029,    -1,    -1,
-      -1,    -1,    -1,  1035
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,  1025,    -1,    -1,    -1,  1025,    -1,  1031,    -1,    -1,
+      -1,    -1,    -1,  1025,    -1,    -1,    -1,  1025,    -1,  1031,
+    1025,    -1,    -1,    -1,  1048,  1025,    -1,    -1,    -1,  1025,
+      -1,  1031,    -1,    -1,    -1,  1031,  1048,  1025,    -1,    -1,
+      -1,  1025,    -1,  1025,    -1,    -1,    -1,    -1,  1048,    -1,
+      -1,    -1,  1048,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  1025,    -1,    -1,    -1,    -1,    -1,  1031
   };
 
   const unsigned short
   Dhcp6Parser::yystos_[] =
   {
-       0,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   176,   177,   178,   179,
-     180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
-     190,   191,     0,     5,     7,     9,   171,   172,   173,   174,
-     192,   193,   194,   199,     7,   208,     7,   214,     7,   227,
-       7,   321,     7,   398,     7,   414,     7,   431,     7,   350,
-       7,   356,     7,   380,     7,   297,     7,   492,     7,   540,
-       7,   532,   200,   195,   209,   215,   228,   322,   399,   415,
-     432,   351,   357,   381,   298,   493,   541,   533,   192,   201,
-     202,   171,   197,   198,    10,   144,   153,   154,   155,   171,
-     207,   210,   211,   212,   523,   525,   527,   538,     7,    11,
+       0,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+     164,   165,   166,   167,   168,   169,   175,   176,   177,   178,
+     179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
+     189,   190,     0,     5,     7,     9,   170,   171,   172,   173,
+     191,   192,   193,   198,     7,   207,     7,   213,     7,   226,
+       7,   320,     7,   397,     7,   413,     7,   430,     7,   349,
+       7,   355,     7,   379,     7,   296,     7,   491,     7,   538,
+       7,   530,   199,   194,   208,   214,   227,   321,   398,   414,
+     431,   350,   356,   380,   297,   492,   539,   531,   191,   200,
+     201,   170,   196,   197,    10,   143,   152,   153,   154,   170,
+     206,   209,   210,   211,   521,   523,   525,   536,     7,    11,
       13,    16,    17,    18,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    65,    66,    77,    78,    79,    80,    81,
-      83,    88,    97,   100,   107,   115,   116,   119,   120,   207,
-     216,   217,   218,   219,   220,   221,   222,   223,   225,   234,
-     236,   238,   271,   277,   283,   289,   291,   305,   315,   340,
-     348,   374,   404,   406,   425,   455,   467,   479,   480,   488,
-     490,   529,    14,    15,   207,   229,   230,   231,   233,   404,
-     406,    57,    59,    67,    68,    69,    70,    71,    72,    84,
-      87,    95,   207,   218,   219,   220,   221,   323,   324,   325,
-     327,   329,   331,   333,   335,   338,   339,   374,   392,   404,
-     406,   408,   425,   450,    58,   207,   331,   333,   374,   400,
-     401,   402,   404,   406,    60,    61,    62,    63,    64,   207,
-     331,   333,   374,   404,   406,   416,   417,   418,   420,   421,
-     423,   424,    83,    89,    90,    91,    92,    93,    94,   207,
-     374,   404,   406,   433,   434,   435,   436,   438,   440,   442,
-     444,   446,   448,   348,    19,    48,    50,    51,    54,    55,
-      56,   207,   256,   358,   359,   360,   361,   362,   363,   364,
-     366,   368,   370,   371,   373,   404,   406,    49,    52,    53,
-     207,   256,   362,   368,   382,   383,   384,   385,   386,   388,
-     389,   390,   391,   404,   406,    98,    99,   207,   299,   300,
-     301,   303,   121,   122,   123,   124,   125,   126,   127,   128,
-     129,   130,   131,   132,   133,   134,   142,   143,   207,   404,
-     406,   494,   495,   496,   497,   499,   501,   502,   504,   505,
-     506,   509,   511,   512,   513,   514,   517,   519,   521,   145,
-     542,   543,   544,    12,   207,   534,   535,   536,     6,     3,
-       4,     8,     3,   213,   539,   524,   526,   528,     4,     3,
-       8,   530,   531,   226,   235,   237,   239,     4,     4,     4,
-       4,     4,   224,   316,   349,   375,   405,   407,   341,   278,
-     290,   284,   272,   456,   426,   292,   306,   468,     4,   481,
-     489,   491,     3,     8,   232,     4,     3,     8,   393,   409,
-     326,   328,   330,     4,     4,   336,   334,   332,   451,     3,
-       8,   403,     3,     8,   419,     4,   422,     4,     4,     3,
-       8,   449,   437,   439,   441,   443,   445,   447,     8,     3,
-       8,   365,   257,     4,   369,   367,   372,     4,     8,     3,
-     387,     4,     4,     8,     3,   302,   304,     3,     8,     4,
-     498,   500,     4,   503,     4,     4,   507,   510,     4,     4,
-       4,   515,   518,   520,   522,     3,     8,   545,     3,     8,
-     537,     3,     8,   192,   192,   171,     4,     4,     4,     4,
-       4,   211,   534,     4,     4,     4,     4,     4,   172,   172,
-     172,   172,   172,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,   172,
-       4,     4,     4,   217,     4,   174,   230,     4,     4,     4,
-       4,     4,   172,   174,     4,     4,     4,     4,   324,     4,
-     401,     4,   172,     4,   172,   172,   417,     4,     4,     4,
-       4,     4,     4,     4,   435,     4,     4,   172,     4,     4,
-       4,   174,   360,     4,   174,   174,   384,     4,     4,   300,
-     174,     4,     4,   172,     4,   172,   172,     4,     4,   174,
-     174,   174,     4,     4,     4,     4,   495,     4,   543,     4,
-     535,     4,     7,     7,   192,   192,   192,     8,     7,     7,
-       7,     7,     5,   171,     5,     5,     5,   194,   196,   171,
-       5,     5,     5,     5,     7,     5,     5,     5,     7,     7,
-       7,   196,     7,     5,   203,     5,     5,   171,   171,   171,
-      73,    74,    75,    76,   337,   203,   171,     7,   171,   171,
-     171,   203,   203,   203,   171,   171,   171,   171,   171,   171,
-     171,   171,   171,   171,   171,   192,   171,   171,   171,   135,
-     136,   508,   137,   138,   139,   140,   141,   174,   516,   171,
-     171,   171,     5,     5,   192,   216,   542,   534,   229,    19,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,   207,   244,   245,   246,   249,
-     251,   253,   255,   256,   258,   259,   260,   261,   262,   263,
-     264,   265,   266,   268,   269,   244,     7,   240,   241,   242,
-       7,   317,   318,   319,     7,   352,   353,   354,     7,   376,
-     377,   378,     7,   342,   343,   344,    91,   171,   279,   280,
-     281,   282,   201,    92,    94,   281,   285,   286,   287,   288,
-      82,   273,   274,   275,     7,   457,   458,     7,   427,   428,
-     429,     7,   293,   294,   295,   101,   102,   103,   104,   105,
-     106,   307,   308,   309,   310,   311,   312,   313,   314,    19,
-     111,   112,   113,   114,   207,   258,   404,   406,   469,   470,
-     471,   474,   475,   477,   478,   117,   118,   207,   404,   406,
-     482,   483,   484,   486,   494,   204,     7,   394,   395,   396,
-       7,   410,   411,   412,    96,   436,   452,   453,     7,   546,
-     547,   240,     8,     8,     8,     8,   247,   250,   252,   254,
-       4,     4,     4,     4,     4,   267,     4,     4,   270,     4,
-       4,     4,     3,     8,     8,   243,     6,     3,   320,     6,
-       3,   355,     6,     3,   379,     6,     3,   345,     6,     3,
-       3,     6,     6,     3,     6,   276,     3,     8,   459,     3,
-       6,   430,     6,     3,   296,     6,     3,     4,     4,     4,
-       4,     4,     4,     3,     8,   472,   476,     4,     4,     4,
-       3,     8,   485,   487,     3,     8,     8,   171,   205,   206,
-     397,     6,     3,   413,     6,     3,   454,     8,   548,     3,
-       6,     6,     4,     4,     4,     4,   172,   174,   172,   174,
-     172,     4,   172,   172,     4,   172,   172,   174,   245,   244,
-     242,   323,   319,   358,   354,   382,   378,   207,   218,   219,
-     220,   221,   256,   315,   327,   329,   331,   333,   335,   339,
-     346,   347,   374,   404,   406,   450,   344,   280,   286,     4,
-     274,    85,    86,   207,   256,   374,   404,   406,   460,   461,
-     462,   463,   464,   466,   458,   433,   429,   299,   295,   172,
-     172,   172,   172,   172,   172,   308,     4,     4,   172,   172,
-     172,   470,     4,     4,   483,     6,     3,   400,   396,   416,
-     412,     4,   146,   148,   149,   207,   256,   404,   406,   549,
-     550,   551,   552,   554,   547,    20,    21,    22,    23,   248,
-     171,   171,   171,   171,   171,     8,     8,     8,     8,     3,
-       8,   171,   465,     4,     8,     3,     8,     8,   108,   109,
-     110,   473,   171,   171,   171,   171,     8,     8,   171,   555,
-       4,   553,     3,     8,   347,     4,   174,   462,     4,   172,
-       4,   550,   171,     5,   171,     7,   556,   557,   558,     3,
-       6,   147,   150,   151,   152,   559,   560,   561,   563,   564,
-     565,   557,   562,     4,     4,     4,     3,     8,     4,   174,
-     172,   172,   560,   171
+      83,    88,    97,   100,   107,   115,   116,   119,   120,   206,
+     215,   216,   217,   218,   219,   220,   221,   222,   224,   233,
+     235,   237,   270,   276,   282,   288,   290,   304,   314,   339,
+     347,   373,   403,   405,   424,   454,   466,   478,   479,   487,
+     489,   527,    14,    15,   206,   228,   229,   230,   232,   403,
+     405,    57,    59,    67,    68,    69,    70,    71,    72,    84,
+      87,    95,   206,   217,   218,   219,   220,   322,   323,   324,
+     326,   328,   330,   332,   334,   337,   338,   373,   391,   403,
+     405,   407,   424,   449,    58,   206,   330,   332,   373,   399,
+     400,   401,   403,   405,    60,    61,    62,    63,    64,   206,
+     330,   332,   373,   403,   405,   415,   416,   417,   419,   420,
+     422,   423,    83,    89,    90,    91,    92,    93,    94,   206,
+     373,   403,   405,   432,   433,   434,   435,   437,   439,   441,
+     443,   445,   447,   347,    19,    48,    50,    51,    54,    55,
+      56,   206,   255,   357,   358,   359,   360,   361,   362,   363,
+     365,   367,   369,   370,   372,   403,   405,    49,    52,    53,
+     206,   255,   361,   367,   381,   382,   383,   384,   385,   387,
+     388,   389,   390,   403,   405,    98,    99,   206,   298,   299,
+     300,   302,   121,   122,   123,   124,   125,   126,   127,   128,
+     129,   130,   131,   132,   133,   141,   142,   206,   403,   405,
+     493,   494,   495,   496,   498,   500,   501,   503,   504,   505,
+     508,   510,   511,   512,   515,   517,   519,   144,   540,   541,
+     542,    12,   206,   532,   533,   534,     6,     3,     4,     8,
+       3,   212,   537,   522,   524,   526,     4,     3,     8,   528,
+     529,   225,   234,   236,   238,     4,     4,     4,     4,     4,
+     223,   315,   348,   374,   404,   406,   340,   277,   289,   283,
+     271,   455,   425,   291,   305,   467,     4,   480,   488,   490,
+       3,     8,   231,     4,     3,     8,   392,   408,   325,   327,
+     329,     4,     4,   335,   333,   331,   450,     3,     8,   402,
+       3,     8,   418,     4,   421,     4,     4,     3,     8,   448,
+     436,   438,   440,   442,   444,   446,     8,     3,     8,   364,
+     256,     4,   368,   366,   371,     4,     8,     3,   386,     4,
+       4,     8,     3,   301,   303,     3,     8,     4,   497,   499,
+       4,   502,     4,     4,   506,   509,     4,     4,   513,   516,
+     518,   520,     3,     8,   543,     3,     8,   535,     3,     8,
+     191,   191,   170,     4,     4,     4,     4,     4,   210,   532,
+       4,     4,     4,     4,     4,   171,   171,   171,   171,   171,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,   171,     4,     4,     4,
+     216,     4,   173,   229,     4,     4,     4,     4,     4,   171,
+     173,     4,     4,     4,     4,   323,     4,   400,     4,   171,
+       4,   171,   171,   416,     4,     4,     4,     4,     4,     4,
+       4,   434,     4,     4,   171,     4,     4,     4,   173,   359,
+       4,   173,   173,   383,     4,     4,   299,   173,     4,     4,
+     171,     4,   171,   171,     4,     4,   173,   173,     4,     4,
+       4,     4,   494,     4,   541,     4,   533,     4,     7,     7,
+     191,   191,   191,     8,     7,     7,     7,     7,     5,   170,
+       5,     5,     5,   193,   195,   170,     5,     5,     5,     5,
+       7,     5,     5,     5,     7,     7,     7,   195,     7,     5,
+     202,     5,     5,   170,   170,   170,    73,    74,    75,    76,
+     336,   202,   170,     7,   170,   170,   170,   202,   202,   202,
+     170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
+     170,   191,   170,   170,   170,   134,   135,   507,   136,   137,
+     138,   139,   140,   173,   514,   170,   170,   170,     5,     5,
+     191,   215,   540,   532,   228,    19,    24,    25,    26,    27,
+      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      38,   206,   243,   244,   245,   248,   250,   252,   254,   255,
+     257,   258,   259,   260,   261,   262,   263,   264,   265,   267,
+     268,   243,     7,   239,   240,   241,     7,   316,   317,   318,
+       7,   351,   352,   353,     7,   375,   376,   377,     7,   341,
+     342,   343,    91,   170,   278,   279,   280,   281,   200,    92,
+      94,   280,   284,   285,   286,   287,    82,   272,   273,   274,
+       7,   456,   457,     7,   426,   427,   428,     7,   292,   293,
+     294,   101,   102,   103,   104,   105,   106,   306,   307,   308,
+     309,   310,   311,   312,   313,    19,   111,   112,   113,   114,
+     206,   257,   403,   405,   468,   469,   470,   473,   474,   476,
+     477,   117,   118,   206,   403,   405,   481,   482,   483,   485,
+     493,   203,     7,   393,   394,   395,     7,   409,   410,   411,
+      96,   435,   451,   452,     7,   544,   545,   239,     8,     8,
+       8,     8,   246,   249,   251,   253,     4,     4,     4,     4,
+       4,   266,     4,     4,   269,     4,     4,     4,     3,     8,
+       8,   242,     6,     3,   319,     6,     3,   354,     6,     3,
+     378,     6,     3,   344,     6,     3,     3,     6,     6,     3,
+       6,   275,     3,     8,   458,     3,     6,   429,     6,     3,
+     295,     6,     3,     4,     4,     4,     4,     4,     4,     3,
+       8,   471,   475,     4,     4,     4,     3,     8,   484,   486,
+       3,     8,     8,   170,   204,   205,   396,     6,     3,   412,
+       6,     3,   453,     8,   546,     3,     6,     6,     4,     4,
+       4,     4,   171,   173,   171,   173,   171,     4,   171,   171,
+       4,   171,   171,   173,   244,   243,   241,   322,   318,   357,
+     353,   381,   377,   206,   217,   218,   219,   220,   255,   314,
+     326,   328,   330,   332,   334,   338,   345,   346,   373,   403,
+     405,   449,   343,   279,   285,     4,   273,    85,    86,   206,
+     255,   373,   403,   405,   459,   460,   461,   462,   463,   465,
+     457,   432,   428,   298,   294,   171,   171,   171,   171,   171,
+     171,   307,     4,     4,   171,   171,   171,   469,     4,     4,
+     482,     6,     3,   399,   395,   415,   411,     4,   145,   147,
+     148,   206,   255,   403,   405,   547,   548,   549,   550,   552,
+     545,    20,    21,    22,    23,   247,   170,   170,   170,   170,
+     170,     8,     8,     8,     8,     3,     8,   170,   464,     4,
+       8,     3,     8,     8,   108,   109,   110,   472,   170,   170,
+     170,   170,     8,     8,   170,   553,     4,   551,     3,     8,
+     346,     4,   173,   461,     4,   171,     4,   548,   170,     5,
+     170,     7,   554,   555,   556,     3,     6,   146,   149,   150,
+     151,   557,   558,   559,   561,   562,   563,   555,   560,     4,
+       4,     4,     3,     8,     4,   173,   171,   171,   558,   170
   };
 
   const unsigned short
   Dhcp6Parser::yyr1_[] =
   {
-       0,   175,   177,   176,   178,   176,   179,   176,   180,   176,
-     181,   176,   182,   176,   183,   176,   184,   176,   185,   176,
-     186,   176,   187,   176,   188,   176,   189,   176,   190,   176,
-     191,   176,   192,   192,   192,   192,   192,   192,   192,   193,
-     195,   194,   196,   197,   197,   198,   198,   200,   199,   201,
-     201,   202,   202,   204,   203,   205,   205,   206,   206,   207,
-     209,   208,   210,   210,   211,   211,   211,   211,   211,   211,
-     213,   212,   215,   214,   216,   216,   217,   217,   217,   217,
-     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
-     217,   217,   217,   217,   217,   217,   217,   217,   217,   217,
-     217,   217,   217,   217,   217,   217,   217,   218,   219,   220,
-     221,   222,   224,   223,   226,   225,   228,   227,   229,   229,
-     230,   230,   230,   230,   230,   232,   231,   233,   235,   234,
-     237,   236,   239,   238,   240,   240,   241,   241,   243,   242,
-     244,   244,   245,   245,   245,   245,   245,   245,   245,   245,
-     245,   245,   245,   245,   245,   245,   245,   245,   245,   245,
-     247,   246,   248,   248,   248,   248,   250,   249,   252,   251,
-     254,   253,   255,   257,   256,   258,   259,   260,   261,   262,
-     263,   264,   265,   267,   266,   268,   270,   269,   272,   271,
-     273,   273,   274,   276,   275,   278,   277,   279,   279,   280,
-     280,   281,   282,   284,   283,   285,   285,   286,   286,   286,
-     287,   288,   290,   289,   292,   291,   293,   293,   294,   294,
-     296,   295,   298,   297,   299,   299,   299,   300,   300,   302,
-     301,   304,   303,   306,   305,   307,   307,   308,   308,   308,
-     308,   308,   308,   309,   310,   311,   312,   313,   314,   316,
-     315,   317,   317,   318,   318,   320,   319,   322,   321,   323,
-     323,   324,   324,   324,   324,   324,   324,   324,   324,   324,
-     324,   324,   324,   324,   324,   324,   324,   324,   324,   324,
-     324,   326,   325,   328,   327,   330,   329,   332,   331,   334,
-     333,   336,   335,   337,   337,   337,   337,   338,   339,   341,
-     340,   342,   342,   343,   343,   345,   344,   346,   346,   347,
-     347,   347,   347,   347,   347,   347,   347,   347,   347,   347,
-     347,   347,   347,   347,   347,   347,   349,   348,   351,   350,
-     352,   352,   353,   353,   355,   354,   357,   356,   358,   358,
-     359,   359,   360,   360,   360,   360,   360,   360,   360,   360,
-     360,   360,   361,   362,   363,   365,   364,   367,   366,   369,
-     368,   370,   372,   371,   373,   375,   374,   376,   376,   377,
-     377,   379,   378,   381,   380,   382,   382,   383,   383,   384,
-     384,   384,   384,   384,   384,   384,   384,   384,   385,   387,
-     386,   388,   389,   390,   391,   393,   392,   394,   394,   395,
-     395,   397,   396,   399,   398,   400,   400,   401,   401,   401,
-     401,   401,   401,   401,   403,   402,   405,   404,   407,   406,
-     409,   408,   410,   410,   411,   411,   413,   412,   415,   414,
-     416,   416,   417,   417,   417,   417,   417,   417,   417,   417,
-     417,   417,   417,   419,   418,   420,   422,   421,   423,   424,
-     426,   425,   427,   427,   428,   428,   430,   429,   432,   431,
-     433,   433,   434,   434,   435,   435,   435,   435,   435,   435,
-     435,   435,   435,   435,   435,   437,   436,   439,   438,   441,
-     440,   443,   442,   445,   444,   447,   446,   449,   448,   451,
-     450,   452,   452,   454,   453,   456,   455,   457,   457,   459,
-     458,   460,   460,   461,   461,   462,   462,   462,   462,   462,
-     462,   462,   463,   465,   464,   466,   468,   467,   469,   469,
-     470,   470,   470,   470,   470,   470,   470,   470,   470,   472,
-     471,   473,   473,   473,   474,   476,   475,   477,   478,   479,
-     481,   480,   482,   482,   483,   483,   483,   483,   483,   485,
-     484,   487,   486,   489,   488,   491,   490,   493,   492,   494,
-     494,   495,   495,   495,   495,   495,   495,   495,   495,   495,
-     495,   495,   495,   495,   495,   495,   495,   495,   495,   495,
-     496,   498,   497,   500,   499,   501,   503,   502,   504,   505,
-     507,   506,   508,   508,   510,   509,   511,   512,   513,   515,
-     514,   516,   516,   516,   516,   516,   518,   517,   520,   519,
-     522,   521,   524,   523,   526,   525,   528,   527,   530,   529,
-     531,   529,   533,   532,   534,   534,   535,   535,   537,   536,
-     539,   538,   541,   540,   542,   542,   543,   545,   544,   546,
-     546,   548,   547,   549,   549,   550,   550,   550,   550,   550,
-     550,   550,   551,   553,   552,   555,   554,   556,   556,   558,
-     557,   559,   559,   560,   560,   560,   560,   562,   561,   563,
-     564,   565
+       0,   174,   176,   175,   177,   175,   178,   175,   179,   175,
+     180,   175,   181,   175,   182,   175,   183,   175,   184,   175,
+     185,   175,   186,   175,   187,   175,   188,   175,   189,   175,
+     190,   175,   191,   191,   191,   191,   191,   191,   191,   192,
+     194,   193,   195,   196,   196,   197,   197,   199,   198,   200,
+     200,   201,   201,   203,   202,   204,   204,   205,   205,   206,
+     208,   207,   209,   209,   210,   210,   210,   210,   210,   210,
+     212,   211,   214,   213,   215,   215,   216,   216,   216,   216,
+     216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
+     216,   216,   216,   216,   216,   216,   216,   216,   216,   216,
+     216,   216,   216,   216,   216,   216,   216,   217,   218,   219,
+     220,   221,   223,   222,   225,   224,   227,   226,   228,   228,
+     229,   229,   229,   229,   229,   231,   230,   232,   234,   233,
+     236,   235,   238,   237,   239,   239,   240,   240,   242,   241,
+     243,   243,   244,   244,   244,   244,   244,   244,   244,   244,
+     244,   244,   244,   244,   244,   244,   244,   244,   244,   244,
+     246,   245,   247,   247,   247,   247,   249,   248,   251,   250,
+     253,   252,   254,   256,   255,   257,   258,   259,   260,   261,
+     262,   263,   264,   266,   265,   267,   269,   268,   271,   270,
+     272,   272,   273,   275,   274,   277,   276,   278,   278,   279,
+     279,   280,   281,   283,   282,   284,   284,   285,   285,   285,
+     286,   287,   289,   288,   291,   290,   292,   292,   293,   293,
+     295,   294,   297,   296,   298,   298,   298,   299,   299,   301,
+     300,   303,   302,   305,   304,   306,   306,   307,   307,   307,
+     307,   307,   307,   308,   309,   310,   311,   312,   313,   315,
+     314,   316,   316,   317,   317,   319,   318,   321,   320,   322,
+     322,   323,   323,   323,   323,   323,   323,   323,   323,   323,
+     323,   323,   323,   323,   323,   323,   323,   323,   323,   323,
+     323,   325,   324,   327,   326,   329,   328,   331,   330,   333,
+     332,   335,   334,   336,   336,   336,   336,   337,   338,   340,
+     339,   341,   341,   342,   342,   344,   343,   345,   345,   346,
+     346,   346,   346,   346,   346,   346,   346,   346,   346,   346,
+     346,   346,   346,   346,   346,   346,   348,   347,   350,   349,
+     351,   351,   352,   352,   354,   353,   356,   355,   357,   357,
+     358,   358,   359,   359,   359,   359,   359,   359,   359,   359,
+     359,   359,   360,   361,   362,   364,   363,   366,   365,   368,
+     367,   369,   371,   370,   372,   374,   373,   375,   375,   376,
+     376,   378,   377,   380,   379,   381,   381,   382,   382,   383,
+     383,   383,   383,   383,   383,   383,   383,   383,   384,   386,
+     385,   387,   388,   389,   390,   392,   391,   393,   393,   394,
+     394,   396,   395,   398,   397,   399,   399,   400,   400,   400,
+     400,   400,   400,   400,   402,   401,   404,   403,   406,   405,
+     408,   407,   409,   409,   410,   410,   412,   411,   414,   413,
+     415,   415,   416,   416,   416,   416,   416,   416,   416,   416,
+     416,   416,   416,   418,   417,   419,   421,   420,   422,   423,
+     425,   424,   426,   426,   427,   427,   429,   428,   431,   430,
+     432,   432,   433,   433,   434,   434,   434,   434,   434,   434,
+     434,   434,   434,   434,   434,   436,   435,   438,   437,   440,
+     439,   442,   441,   444,   443,   446,   445,   448,   447,   450,
+     449,   451,   451,   453,   452,   455,   454,   456,   456,   458,
+     457,   459,   459,   460,   460,   461,   461,   461,   461,   461,
+     461,   461,   462,   464,   463,   465,   467,   466,   468,   468,
+     469,   469,   469,   469,   469,   469,   469,   469,   469,   471,
+     470,   472,   472,   472,   473,   475,   474,   476,   477,   478,
+     480,   479,   481,   481,   482,   482,   482,   482,   482,   484,
+     483,   486,   485,   488,   487,   490,   489,   492,   491,   493,
+     493,   494,   494,   494,   494,   494,   494,   494,   494,   494,
+     494,   494,   494,   494,   494,   494,   494,   494,   494,   495,
+     497,   496,   499,   498,   500,   502,   501,   503,   504,   506,
+     505,   507,   507,   509,   508,   510,   511,   513,   512,   514,
+     514,   514,   514,   514,   516,   515,   518,   517,   520,   519,
+     522,   521,   524,   523,   526,   525,   528,   527,   529,   527,
+     531,   530,   532,   532,   533,   533,   535,   534,   537,   536,
+     539,   538,   540,   540,   541,   543,   542,   544,   544,   546,
+     545,   547,   547,   548,   548,   548,   548,   548,   548,   548,
+     549,   551,   550,   553,   552,   554,   554,   556,   555,   557,
+     557,   558,   558,   558,   558,   560,   559,   561,   562,   563
   };
 
   const unsigned char
@@ -4797,17 +4780,16 @@ namespace isc { namespace dhcp {
        0,     6,     1,     3,     1,     1,     1,     1,     1,     0,
        4,     0,     4,     0,     4,     0,     6,     0,     4,     1,
        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       3,     0,     4,     0,     4,     3,     0,     4,     3,     3,
-       0,     4,     1,     1,     0,     4,     3,     3,     3,     0,
-       4,     1,     1,     1,     1,     1,     0,     4,     0,     4,
-       0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
-       0,     6,     0,     4,     1,     3,     1,     1,     0,     6,
-       0,     6,     0,     4,     1,     3,     1,     0,     6,     1,
-       3,     0,     4,     1,     3,     1,     1,     1,     1,     1,
-       1,     1,     3,     0,     4,     0,     6,     1,     3,     0,
-       4,     1,     3,     1,     1,     1,     1,     0,     4,     3,
-       3,     3
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
+       0,     4,     0,     4,     3,     0,     4,     3,     3,     0,
+       4,     1,     1,     0,     4,     3,     3,     0,     4,     1,
+       1,     1,     1,     1,     0,     4,     0,     4,     0,     4,
+       0,     4,     0,     4,     0,     4,     0,     4,     0,     6,
+       0,     4,     1,     3,     1,     1,     0,     6,     0,     6,
+       0,     4,     1,     3,     1,     0,     6,     1,     3,     0,
+       4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
+       3,     0,     4,     0,     6,     1,     3,     0,     4,     1,
+       3,     1,     1,     1,     1,     0,     4,     3,     3,     3
   };
 
 
@@ -4854,16 +4836,16 @@ namespace isc { namespace dhcp {
   "\"enable-updates\"", "\"qualifying-suffix\"", "\"server-ip\"",
   "\"server-port\"", "\"sender-ip\"", "\"sender-port\"",
   "\"max-queue-size\"", "\"ncr-protocol\"", "\"ncr-format\"",
-  "\"always-include-fqdn\"", "\"override-no-update\"",
-  "\"override-client-update\"", "\"replace-client-name\"",
-  "\"generated-prefix\"", "\"UDP\"", "\"TCP\"", "\"JSON\"",
-  "\"when-present\"", "\"never\"", "\"always\"", "\"when-not-present\"",
-  "\"hostname-char-set\"", "\"hostname-char-replacement\"", "\"Logging\"",
-  "\"loggers\"", "\"output_options\"", "\"output\"", "\"debuglevel\"",
-  "\"severity\"", "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"Dhcp4\"",
-  "\"DhcpDdns\"", "\"Control-agent\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6",
-  "SUB_DHCP6", "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6",
-  "SUB_PD_POOL", "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF",
+  "\"override-no-update\"", "\"override-client-update\"",
+  "\"replace-client-name\"", "\"generated-prefix\"", "\"UDP\"", "\"TCP\"",
+  "\"JSON\"", "\"when-present\"", "\"never\"", "\"always\"",
+  "\"when-not-present\"", "\"hostname-char-set\"",
+  "\"hostname-char-replacement\"", "\"Logging\"", "\"loggers\"",
+  "\"output_options\"", "\"output\"", "\"debuglevel\"", "\"severity\"",
+  "\"flush\"", "\"maxsize\"", "\"maxver\"", "\"Dhcp4\"", "\"DhcpDdns\"",
+  "\"Control-agent\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", "SUB_DHCP6",
+  "SUB_INTERFACES6", "SUB_SUBNET6", "SUB_POOL6", "SUB_PD_POOL",
+  "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF",
   "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "SUB_LOGGING",
   "SUB_CONFIG_CONTROL", "\"constant string\"", "\"integer\"",
   "\"floating point\"", "\"boolean\"", "$accept", "start", "$@1", "$@2",
@@ -4945,94 +4927,92 @@ namespace isc { namespace dhcp {
   "enable_updates", "qualifying_suffix", "$@106", "server_ip", "$@107",
   "server_port", "sender_ip", "$@108", "sender_port", "max_queue_size",
   "ncr_protocol", "$@109", "ncr_protocol_value", "ncr_format", "$@110",
-  "always_include_fqdn", "override_no_update", "override_client_update",
-  "replace_client_name", "$@111", "replace_client_name_value",
-  "generated_prefix", "$@112", "hostname_char_set", "$@113",
-  "hostname_char_replacement", "$@114", "dhcp4_json_object", "$@115",
-  "dhcpddns_json_object", "$@116", "control_agent_json_object", "$@117",
-  "config_control", "$@118", "$@119", "sub_config_control", "$@120",
-  "config_control_params", "config_control_param", "config_databases",
-  "$@121", "logging_object", "$@122", "sub_logging", "$@123",
-  "logging_params", "logging_param", "loggers", "$@124", "loggers_entries",
-  "logger_entry", "$@125", "logger_params", "logger_param", "debuglevel",
-  "severity", "$@126", "output_options_list", "$@127",
-  "output_options_list_content", "output_entry", "$@128",
-  "output_params_list", "output_params", "output", "$@129", "flush",
-  "maxsize", "maxver", YY_NULLPTR
+  "override_no_update", "override_client_update", "replace_client_name",
+  "$@111", "replace_client_name_value", "generated_prefix", "$@112",
+  "hostname_char_set", "$@113", "hostname_char_replacement", "$@114",
+  "dhcp4_json_object", "$@115", "dhcpddns_json_object", "$@116",
+  "control_agent_json_object", "$@117", "config_control", "$@118", "$@119",
+  "sub_config_control", "$@120", "config_control_params",
+  "config_control_param", "config_databases", "$@121", "logging_object",
+  "$@122", "sub_logging", "$@123", "logging_params", "logging_param",
+  "loggers", "$@124", "loggers_entries", "logger_entry", "$@125",
+  "logger_params", "logger_param", "debuglevel", "severity", "$@126",
+  "output_options_list", "$@127", "output_options_list_content",
+  "output_entry", "$@128", "output_params_list", "output_params", "output",
+  "$@129", "flush", "maxsize", "maxver", YY_NULLPTR
   };
 
 #if PARSER6_DEBUG
   const unsigned short
   Dhcp6Parser::yyrline_[] =
   {
-       0,   258,   258,   258,   259,   259,   260,   260,   261,   261,
-     262,   262,   263,   263,   264,   264,   265,   265,   266,   266,
-     267,   267,   268,   268,   269,   269,   270,   270,   271,   271,
-     272,   272,   280,   281,   282,   283,   284,   285,   286,   289,
-     294,   294,   305,   308,   309,   312,   316,   323,   323,   330,
-     331,   334,   338,   345,   345,   352,   353,   356,   360,   371,
-     381,   381,   396,   397,   401,   402,   403,   404,   405,   406,
-     409,   409,   424,   424,   433,   434,   439,   440,   441,   442,
-     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
-     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
-     463,   464,   465,   466,   467,   468,   469,   472,   477,   482,
-     487,   492,   497,   497,   505,   505,   516,   516,   525,   526,
-     529,   530,   531,   532,   533,   536,   536,   546,   552,   552,
-     564,   564,   576,   576,   586,   587,   590,   591,   594,   594,
-     604,   605,   608,   609,   610,   611,   612,   613,   614,   615,
-     616,   617,   618,   619,   620,   621,   622,   623,   624,   625,
-     628,   628,   635,   636,   637,   638,   641,   641,   649,   649,
-     657,   657,   665,   670,   670,   678,   683,   688,   693,   698,
-     703,   708,   713,   718,   718,   726,   731,   731,   739,   739,
-     749,   750,   752,   754,   754,   772,   772,   782,   783,   786,
-     787,   790,   795,   800,   800,   810,   811,   814,   815,   816,
-     819,   824,   831,   831,   841,   841,   851,   852,   855,   856,
-     859,   859,   869,   869,   879,   880,   881,   884,   885,   888,
-     888,   896,   896,   904,   904,   915,   916,   919,   920,   921,
-     922,   923,   924,   927,   932,   937,   942,   947,   952,   960,
-     960,   973,   974,   977,   978,   985,   985,  1011,  1011,  1022,
-    1023,  1027,  1028,  1029,  1030,  1031,  1032,  1033,  1034,  1035,
-    1036,  1037,  1038,  1039,  1040,  1041,  1042,  1043,  1044,  1045,
-    1046,  1049,  1049,  1057,  1057,  1065,  1065,  1073,  1073,  1081,
-    1081,  1091,  1091,  1098,  1099,  1100,  1101,  1104,  1109,  1117,
-    1117,  1128,  1129,  1133,  1134,  1137,  1137,  1145,  1146,  1149,
-    1150,  1151,  1152,  1153,  1154,  1155,  1156,  1157,  1158,  1159,
-    1160,  1161,  1162,  1163,  1164,  1165,  1172,  1172,  1185,  1185,
-    1194,  1195,  1198,  1199,  1204,  1204,  1219,  1219,  1233,  1234,
-    1237,  1238,  1241,  1242,  1243,  1244,  1245,  1246,  1247,  1248,
-    1249,  1250,  1253,  1255,  1260,  1262,  1262,  1270,  1270,  1278,
-    1278,  1286,  1288,  1288,  1296,  1305,  1305,  1317,  1318,  1323,
-    1324,  1329,  1329,  1341,  1341,  1353,  1354,  1359,  1360,  1365,
-    1366,  1367,  1368,  1369,  1370,  1371,  1372,  1373,  1376,  1378,
-    1378,  1386,  1388,  1390,  1395,  1403,  1403,  1415,  1416,  1419,
-    1420,  1423,  1423,  1433,  1433,  1442,  1443,  1446,  1447,  1448,
-    1449,  1450,  1451,  1452,  1455,  1455,  1463,  1463,  1488,  1488,
-    1518,  1518,  1530,  1531,  1534,  1535,  1538,  1538,  1550,  1550,
-    1562,  1563,  1566,  1567,  1568,  1569,  1570,  1571,  1572,  1573,
-    1574,  1575,  1576,  1579,  1579,  1587,  1592,  1592,  1600,  1605,
-    1613,  1613,  1623,  1624,  1627,  1628,  1631,  1631,  1640,  1640,
-    1649,  1650,  1653,  1654,  1658,  1659,  1660,  1661,  1662,  1663,
-    1664,  1665,  1666,  1667,  1668,  1671,  1671,  1681,  1681,  1691,
-    1691,  1699,  1699,  1707,  1707,  1715,  1715,  1723,  1723,  1736,
-    1736,  1746,  1747,  1750,  1750,  1761,  1761,  1771,  1772,  1775,
-    1775,  1785,  1786,  1789,  1790,  1793,  1794,  1795,  1796,  1797,
-    1798,  1799,  1802,  1804,  1804,  1812,  1820,  1820,  1832,  1833,
-    1836,  1837,  1838,  1839,  1840,  1841,  1842,  1843,  1844,  1847,
-    1847,  1854,  1855,  1856,  1859,  1864,  1864,  1872,  1877,  1884,
-    1891,  1891,  1901,  1902,  1905,  1906,  1907,  1908,  1909,  1912,
-    1912,  1920,  1920,  1930,  1930,  1948,  1948,  1960,  1960,  1970,
-    1971,  1974,  1975,  1976,  1977,  1978,  1979,  1980,  1981,  1982,
-    1983,  1984,  1985,  1986,  1987,  1988,  1989,  1990,  1991,  1992,
-    1995,  2000,  2000,  2008,  2008,  2016,  2021,  2021,  2029,  2034,
-    2039,  2039,  2047,  2048,  2051,  2051,  2059,  2064,  2069,  2074,
-    2074,  2082,  2085,  2088,  2091,  2094,  2100,  2100,  2108,  2108,
-    2116,  2116,  2126,  2126,  2133,  2133,  2140,  2140,  2149,  2149,
-    2158,  2158,  2169,  2169,  2179,  2180,  2184,  2185,  2188,  2188,
-    2203,  2203,  2213,  2213,  2224,  2225,  2229,  2233,  2233,  2245,
-    2246,  2250,  2250,  2258,  2259,  2262,  2263,  2264,  2265,  2266,
-    2267,  2268,  2271,  2276,  2276,  2284,  2284,  2294,  2295,  2298,
-    2298,  2306,  2307,  2310,  2311,  2312,  2313,  2316,  2316,  2324,
-    2329,  2334
+       0,   257,   257,   257,   258,   258,   259,   259,   260,   260,
+     261,   261,   262,   262,   263,   263,   264,   264,   265,   265,
+     266,   266,   267,   267,   268,   268,   269,   269,   270,   270,
+     271,   271,   279,   280,   281,   282,   283,   284,   285,   288,
+     293,   293,   304,   307,   308,   311,   315,   322,   322,   329,
+     330,   333,   337,   344,   344,   351,   352,   355,   359,   370,
+     380,   380,   395,   396,   400,   401,   402,   403,   404,   405,
+     408,   408,   423,   423,   432,   433,   438,   439,   440,   441,
+     442,   443,   444,   445,   446,   447,   448,   449,   450,   451,
+     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
+     462,   463,   464,   465,   466,   467,   468,   471,   476,   481,
+     486,   491,   496,   496,   504,   504,   515,   515,   524,   525,
+     528,   529,   530,   531,   532,   535,   535,   545,   551,   551,
+     563,   563,   575,   575,   585,   586,   589,   590,   593,   593,
+     603,   604,   607,   608,   609,   610,   611,   612,   613,   614,
+     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
+     627,   627,   634,   635,   636,   637,   640,   640,   648,   648,
+     656,   656,   664,   669,   669,   677,   682,   687,   692,   697,
+     702,   707,   712,   717,   717,   725,   730,   730,   738,   738,
+     748,   749,   751,   753,   753,   771,   771,   781,   782,   785,
+     786,   789,   794,   799,   799,   809,   810,   813,   814,   815,
+     818,   823,   830,   830,   840,   840,   850,   851,   854,   855,
+     858,   858,   868,   868,   878,   879,   880,   883,   884,   887,
+     887,   895,   895,   903,   903,   914,   915,   918,   919,   920,
+     921,   922,   923,   926,   931,   936,   941,   946,   951,   959,
+     959,   972,   973,   976,   977,   984,   984,  1010,  1010,  1021,
+    1022,  1026,  1027,  1028,  1029,  1030,  1031,  1032,  1033,  1034,
+    1035,  1036,  1037,  1038,  1039,  1040,  1041,  1042,  1043,  1044,
+    1045,  1048,  1048,  1056,  1056,  1064,  1064,  1072,  1072,  1080,
+    1080,  1090,  1090,  1097,  1098,  1099,  1100,  1103,  1108,  1116,
+    1116,  1127,  1128,  1132,  1133,  1136,  1136,  1144,  1145,  1148,
+    1149,  1150,  1151,  1152,  1153,  1154,  1155,  1156,  1157,  1158,
+    1159,  1160,  1161,  1162,  1163,  1164,  1171,  1171,  1184,  1184,
+    1193,  1194,  1197,  1198,  1203,  1203,  1218,  1218,  1232,  1233,
+    1236,  1237,  1240,  1241,  1242,  1243,  1244,  1245,  1246,  1247,
+    1248,  1249,  1252,  1254,  1259,  1261,  1261,  1269,  1269,  1277,
+    1277,  1285,  1287,  1287,  1295,  1304,  1304,  1316,  1317,  1322,
+    1323,  1328,  1328,  1340,  1340,  1352,  1353,  1358,  1359,  1364,
+    1365,  1366,  1367,  1368,  1369,  1370,  1371,  1372,  1375,  1377,
+    1377,  1385,  1387,  1389,  1394,  1402,  1402,  1414,  1415,  1418,
+    1419,  1422,  1422,  1432,  1432,  1441,  1442,  1445,  1446,  1447,
+    1448,  1449,  1450,  1451,  1454,  1454,  1462,  1462,  1487,  1487,
+    1517,  1517,  1529,  1530,  1533,  1534,  1537,  1537,  1549,  1549,
+    1561,  1562,  1565,  1566,  1567,  1568,  1569,  1570,  1571,  1572,
+    1573,  1574,  1575,  1578,  1578,  1586,  1591,  1591,  1599,  1604,
+    1612,  1612,  1622,  1623,  1626,  1627,  1630,  1630,  1639,  1639,
+    1648,  1649,  1652,  1653,  1657,  1658,  1659,  1660,  1661,  1662,
+    1663,  1664,  1665,  1666,  1667,  1670,  1670,  1680,  1680,  1690,
+    1690,  1698,  1698,  1706,  1706,  1714,  1714,  1722,  1722,  1735,
+    1735,  1745,  1746,  1749,  1749,  1760,  1760,  1770,  1771,  1774,
+    1774,  1784,  1785,  1788,  1789,  1792,  1793,  1794,  1795,  1796,
+    1797,  1798,  1801,  1803,  1803,  1811,  1819,  1819,  1831,  1832,
+    1835,  1836,  1837,  1838,  1839,  1840,  1841,  1842,  1843,  1846,
+    1846,  1853,  1854,  1855,  1858,  1863,  1863,  1871,  1876,  1883,
+    1890,  1890,  1900,  1901,  1904,  1905,  1906,  1907,  1908,  1911,
+    1911,  1919,  1919,  1929,  1929,  1947,  1947,  1959,  1959,  1969,
+    1970,  1973,  1974,  1975,  1976,  1977,  1978,  1979,  1980,  1981,
+    1982,  1983,  1984,  1985,  1986,  1987,  1988,  1989,  1990,  1993,
+    1998,  1998,  2006,  2006,  2014,  2019,  2019,  2027,  2032,  2037,
+    2037,  2045,  2046,  2049,  2049,  2057,  2062,  2067,  2067,  2075,
+    2078,  2081,  2084,  2087,  2093,  2093,  2101,  2101,  2109,  2109,
+    2119,  2119,  2126,  2126,  2133,  2133,  2142,  2142,  2151,  2151,
+    2162,  2162,  2172,  2173,  2177,  2178,  2181,  2181,  2196,  2196,
+    2206,  2206,  2217,  2218,  2222,  2226,  2226,  2238,  2239,  2243,
+    2243,  2251,  2252,  2255,  2256,  2257,  2258,  2259,  2260,  2261,
+    2264,  2269,  2269,  2277,  2277,  2287,  2288,  2291,  2291,  2299,
+    2300,  2303,  2304,  2305,  2306,  2309,  2309,  2317,  2322,  2327
   };
 
   // Print the state stack on the debug stream.
@@ -5067,8 +5047,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:1218
 } } // isc::dhcp
-#line 5071 "dhcp6_parser.cc" // lalr1.cc:1218
-#line 2339 "dhcp6_parser.yy" // lalr1.cc:1219
+#line 5051 "dhcp6_parser.cc" // lalr1.cc:1218
+#line 2332 "dhcp6_parser.yy" // lalr1.cc:1219
 
 
 void
index addc00c54891047889fe827e5b8a80134f6f2d81..d5a00e0d0cf502238e95eb8707c0d4f13a8cf477 100644 (file)
@@ -663,51 +663,50 @@ namespace isc { namespace dhcp {
         TOKEN_MAX_QUEUE_SIZE = 382,
         TOKEN_NCR_PROTOCOL = 383,
         TOKEN_NCR_FORMAT = 384,
-        TOKEN_ALWAYS_INCLUDE_FQDN = 385,
-        TOKEN_OVERRIDE_NO_UPDATE = 386,
-        TOKEN_OVERRIDE_CLIENT_UPDATE = 387,
-        TOKEN_REPLACE_CLIENT_NAME = 388,
-        TOKEN_GENERATED_PREFIX = 389,
-        TOKEN_UDP = 390,
-        TOKEN_TCP = 391,
-        TOKEN_JSON = 392,
-        TOKEN_WHEN_PRESENT = 393,
-        TOKEN_NEVER = 394,
-        TOKEN_ALWAYS = 395,
-        TOKEN_WHEN_NOT_PRESENT = 396,
-        TOKEN_HOSTNAME_CHAR_SET = 397,
-        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 398,
-        TOKEN_LOGGING = 399,
-        TOKEN_LOGGERS = 400,
-        TOKEN_OUTPUT_OPTIONS = 401,
-        TOKEN_OUTPUT = 402,
-        TOKEN_DEBUGLEVEL = 403,
-        TOKEN_SEVERITY = 404,
-        TOKEN_FLUSH = 405,
-        TOKEN_MAXSIZE = 406,
-        TOKEN_MAXVER = 407,
-        TOKEN_DHCP4 = 408,
-        TOKEN_DHCPDDNS = 409,
-        TOKEN_CONTROL_AGENT = 410,
-        TOKEN_TOPLEVEL_JSON = 411,
-        TOKEN_TOPLEVEL_DHCP6 = 412,
-        TOKEN_SUB_DHCP6 = 413,
-        TOKEN_SUB_INTERFACES6 = 414,
-        TOKEN_SUB_SUBNET6 = 415,
-        TOKEN_SUB_POOL6 = 416,
-        TOKEN_SUB_PD_POOL = 417,
-        TOKEN_SUB_RESERVATION = 418,
-        TOKEN_SUB_OPTION_DEFS = 419,
-        TOKEN_SUB_OPTION_DEF = 420,
-        TOKEN_SUB_OPTION_DATA = 421,
-        TOKEN_SUB_HOOKS_LIBRARY = 422,
-        TOKEN_SUB_DHCP_DDNS = 423,
-        TOKEN_SUB_LOGGING = 424,
-        TOKEN_SUB_CONFIG_CONTROL = 425,
-        TOKEN_STRING = 426,
-        TOKEN_INTEGER = 427,
-        TOKEN_FLOAT = 428,
-        TOKEN_BOOLEAN = 429
+        TOKEN_OVERRIDE_NO_UPDATE = 385,
+        TOKEN_OVERRIDE_CLIENT_UPDATE = 386,
+        TOKEN_REPLACE_CLIENT_NAME = 387,
+        TOKEN_GENERATED_PREFIX = 388,
+        TOKEN_UDP = 389,
+        TOKEN_TCP = 390,
+        TOKEN_JSON = 391,
+        TOKEN_WHEN_PRESENT = 392,
+        TOKEN_NEVER = 393,
+        TOKEN_ALWAYS = 394,
+        TOKEN_WHEN_NOT_PRESENT = 395,
+        TOKEN_HOSTNAME_CHAR_SET = 396,
+        TOKEN_HOSTNAME_CHAR_REPLACEMENT = 397,
+        TOKEN_LOGGING = 398,
+        TOKEN_LOGGERS = 399,
+        TOKEN_OUTPUT_OPTIONS = 400,
+        TOKEN_OUTPUT = 401,
+        TOKEN_DEBUGLEVEL = 402,
+        TOKEN_SEVERITY = 403,
+        TOKEN_FLUSH = 404,
+        TOKEN_MAXSIZE = 405,
+        TOKEN_MAXVER = 406,
+        TOKEN_DHCP4 = 407,
+        TOKEN_DHCPDDNS = 408,
+        TOKEN_CONTROL_AGENT = 409,
+        TOKEN_TOPLEVEL_JSON = 410,
+        TOKEN_TOPLEVEL_DHCP6 = 411,
+        TOKEN_SUB_DHCP6 = 412,
+        TOKEN_SUB_INTERFACES6 = 413,
+        TOKEN_SUB_SUBNET6 = 414,
+        TOKEN_SUB_POOL6 = 415,
+        TOKEN_SUB_PD_POOL = 416,
+        TOKEN_SUB_RESERVATION = 417,
+        TOKEN_SUB_OPTION_DEFS = 418,
+        TOKEN_SUB_OPTION_DEF = 419,
+        TOKEN_SUB_OPTION_DATA = 420,
+        TOKEN_SUB_HOOKS_LIBRARY = 421,
+        TOKEN_SUB_DHCP_DDNS = 422,
+        TOKEN_SUB_LOGGING = 423,
+        TOKEN_SUB_CONFIG_CONTROL = 424,
+        TOKEN_STRING = 425,
+        TOKEN_INTEGER = 426,
+        TOKEN_FLOAT = 427,
+        TOKEN_BOOLEAN = 428
       };
     };
 
@@ -1360,10 +1359,6 @@ namespace isc { namespace dhcp {
     symbol_type
     make_NCR_FORMAT (YY_COPY (location_type) l);
 
-    static
-    symbol_type
-    make_ALWAYS_INCLUDE_FQDN (YY_COPY (location_type) l);
-
     static
     symbol_type
     make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l);
@@ -1722,12 +1717,12 @@ namespace isc { namespace dhcp {
     enum
     {
       yyeof_ = 0,
-      yylast_ = 1023,     ///< Last index in yytable_.
-      yynnts_ = 391,  ///< Number of nonterminal symbols.
+      yylast_ = 1019,     ///< Last index in yytable_.
+      yynnts_ = 390,  ///< Number of nonterminal symbols.
       yyfinal_ = 32, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 175  ///< Number of tokens.
+      yyntokens_ = 174  ///< Number of tokens.
     };
 
 
@@ -1786,9 +1781,9 @@ namespace isc { namespace dhcp {
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
-     165,   166,   167,   168,   169,   170,   171,   172,   173,   174
+     165,   166,   167,   168,   169,   170,   171,   172,   173
     };
-    const unsigned user_token_number_max_ = 429;
+    const unsigned user_token_number_max_ = 428;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int> (t) <= yyeof_)
@@ -1820,29 +1815,29 @@ namespace isc { namespace dhcp {
   {
     switch (other.type_get ())
     {
-      case 192: // value
-      case 196: // map_value
-      case 248: // db_type
-      case 337: // hr_mode
-      case 473: // duid_type
-      case 508: // ncr_protocol_value
-      case 516: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 247: // db_type
+      case 336: // hr_mode
+      case 472: // duid_type
+      case 507: // ncr_protocol_value
+      case 514: // replace_client_name_value
         value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value));
         break;
 
-      case 174: // "boolean"
+      case 173: // "boolean"
         value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value));
         break;
 
-      case 173: // "floating point"
+      case 172: // "floating point"
         value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value));
         break;
 
-      case 172: // "integer"
+      case 171: // "integer"
         value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value));
         break;
 
-      case 171: // "constant string"
+      case 170: // "constant string"
         value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value));
         break;
 
@@ -1920,29 +1915,29 @@ namespace isc { namespace dhcp {
     // Type destructor.
   switch (yytype)
     {
-      case 192: // value
-      case 196: // map_value
-      case 248: // db_type
-      case 337: // hr_mode
-      case 473: // duid_type
-      case 508: // ncr_protocol_value
-      case 516: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 247: // db_type
+      case 336: // hr_mode
+      case 472: // duid_type
+      case 507: // ncr_protocol_value
+      case 514: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 174: // "boolean"
+      case 173: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 173: // "floating point"
+      case 172: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 172: // "integer"
+      case 171: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 171: // "constant string"
+      case 170: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -1967,29 +1962,29 @@ namespace isc { namespace dhcp {
     super_type::move (s);
     switch (this->type_get ())
     {
-      case 192: // value
-      case 196: // map_value
-      case 248: // db_type
-      case 337: // hr_mode
-      case 473: // duid_type
-      case 508: // ncr_protocol_value
-      case 516: // replace_client_name_value
+      case 191: // value
+      case 195: // map_value
+      case 247: // db_type
+      case 336: // hr_mode
+      case 472: // duid_type
+      case 507: // ncr_protocol_value
+      case 514: // replace_client_name_value
         value.move< ElementPtr > (YY_MOVE (s.value));
         break;
 
-      case 174: // "boolean"
+      case 173: // "boolean"
         value.move< bool > (YY_MOVE (s.value));
         break;
 
-      case 173: // "floating point"
+      case 172: // "floating point"
         value.move< double > (YY_MOVE (s.value));
         break;
 
-      case 172: // "integer"
+      case 171: // "integer"
         value.move< int64_t > (YY_MOVE (s.value));
         break;
 
-      case 171: // "constant string"
+      case 170: // "constant string"
         value.move< std::string > (YY_MOVE (s.value));
         break;
 
@@ -2065,7 +2060,7 @@ namespace isc { namespace dhcp {
      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
-     425,   426,   427,   428,   429
+     425,   426,   427,   428
     };
     return static_cast<token_type> (yytoken_number_[type]);
   }
@@ -2967,13 +2962,6 @@ namespace isc { namespace dhcp {
     return symbol_type (token::TOKEN_NCR_FORMAT, YY_MOVE (l));
   }
 
-  inline
-  Dhcp6Parser::symbol_type
-  Dhcp6Parser::make_ALWAYS_INCLUDE_FQDN (YY_COPY (location_type) l)
-  {
-    return symbol_type (token::TOKEN_ALWAYS_INCLUDE_FQDN, YY_MOVE (l));
-  }
-
   inline
   Dhcp6Parser::symbol_type
   Dhcp6Parser::make_OVERRIDE_NO_UPDATE (YY_COPY (location_type) l)
@@ -3285,7 +3273,7 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:404
 } } // isc::dhcp
-#line 3289 "dhcp6_parser.h" // lalr1.cc:404
+#line 3277 "dhcp6_parser.h" // lalr1.cc:404
 
 
 
index cf19955a4a7b72c8c77d0d9ee591f116233d4aa5..fa9453482dcd0081659d5348d20961fe35131173 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201811172153
+// Generated 201811201350
 // A Bison parser, made by GNU Bison 3.2.1.
 
 // Locations for Bison parsers in C++
index 9f3dfeedf81eaab671d6638b030054a547bc9e87..3d9dbf9cdefbdb9a4d5974acbb8daad2256fcfca 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201811172153
+// Generated 201811201350
 // A Bison parser, made by GNU Bison 3.2.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it
index c0ca3f35b568ae1e99046a83e638ef7edbb3ca22..0575d1aa947776ac2d8c58611d3700007d24db9f 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201811172153
+// Generated 201811201350
 // A Bison parser, made by GNU Bison 3.2.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it