]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#540,!374] regen flex/bison
authorFrancis Dupont <fdupont@isc.org>
Tue, 11 Jun 2019 00:13:37 +0000 (00:13 +0000)
committerFrancis Dupont <fdupont@isc.org>
Thu, 13 Jun 2019 13:21:07 +0000 (15:21 +0200)
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 e0e5df8afc894fbf4bcedd123a38ce9e2b41e327..0bd927b9577602f5c660fc9b6690c3966d90b4b7 100644 (file)
@@ -1,4 +1,4 @@
-// A Bison parser, made by GNU Bison 3.3.2.
+// A Bison parser, made by GNU Bison 3.4.1.
 
 // Skeleton implementation for Bison LALR(1) parsers in C++
 
 
 
 // Unqualified %code blocks.
-#line 34 "dhcp6_parser.yy" // lalr1.cc:435
+#line 34 "dhcp6_parser.yy"
 
 #include <dhcp6/parser_context.h>
 
-#line 51 "dhcp6_parser.cc" // lalr1.cc:435
+#line 51 "dhcp6_parser.cc"
 
 
 #ifndef YY_
 #define YYERROR         goto yyerrorlab
 #define YYRECOVERING()  (!!yyerrstatus_)
 
-#line 14 "dhcp6_parser.yy" // lalr1.cc:510
+#line 14 "dhcp6_parser.yy"
 namespace isc { namespace dhcp {
-#line 146 "dhcp6_parser.cc" // lalr1.cc:510
+#line 146 "dhcp6_parser.cc"
+
 
   /* Return YYSTR after stripping away unnecessary quotes and
      backslashes, so that it's suitable for yyerror.  The heuristic is
@@ -398,69 +399,69 @@ namespace isc { namespace dhcp {
     switch (yytype)
     {
       case 177: // "constant string"
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < std::string > (); }
-#line 404 "dhcp6_parser.cc" // lalr1.cc:676
+#line 405 "dhcp6_parser.cc"
         break;
 
       case 178: // "integer"
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < int64_t > (); }
-#line 410 "dhcp6_parser.cc" // lalr1.cc:676
+#line 411 "dhcp6_parser.cc"
         break;
 
       case 179: // "floating point"
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < double > (); }
-#line 416 "dhcp6_parser.cc" // lalr1.cc:676
+#line 417 "dhcp6_parser.cc"
         break;
 
       case 180: // "boolean"
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < bool > (); }
-#line 422 "dhcp6_parser.cc" // lalr1.cc:676
+#line 423 "dhcp6_parser.cc"
         break;
 
       case 198: // value
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 428 "dhcp6_parser.cc" // lalr1.cc:676
+#line 429 "dhcp6_parser.cc"
         break;
 
       case 202: // map_value
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 434 "dhcp6_parser.cc" // lalr1.cc:676
+#line 435 "dhcp6_parser.cc"
         break;
 
       case 259: // db_type
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 440 "dhcp6_parser.cc" // lalr1.cc:676
+#line 441 "dhcp6_parser.cc"
         break;
 
       case 352: // hr_mode
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 446 "dhcp6_parser.cc" // lalr1.cc:676
+#line 447 "dhcp6_parser.cc"
         break;
 
       case 488: // duid_type
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 452 "dhcp6_parser.cc" // lalr1.cc:676
+#line 453 "dhcp6_parser.cc"
         break;
 
       case 523: // ncr_protocol_value
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 458 "dhcp6_parser.cc" // lalr1.cc:676
+#line 459 "dhcp6_parser.cc"
         break;
 
       case 530: // replace_client_name_value
-#line 256 "dhcp6_parser.yy" // lalr1.cc:676
+#line 256 "dhcp6_parser.yy"
         { yyoutput << yysym.value.template as < ElementPtr > (); }
-#line 464 "dhcp6_parser.cc" // lalr1.cc:676
+#line 465 "dhcp6_parser.cc"
         break;
 
       default:
@@ -724,286 +725,286 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 265 "dhcp6_parser.yy" // lalr1.cc:919
+#line 265 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.NO_KEYWORD; }
-#line 730 "dhcp6_parser.cc" // lalr1.cc:919
+#line 731 "dhcp6_parser.cc"
     break;
 
   case 4:
-#line 266 "dhcp6_parser.yy" // lalr1.cc:919
+#line 266 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.CONFIG; }
-#line 736 "dhcp6_parser.cc" // lalr1.cc:919
+#line 737 "dhcp6_parser.cc"
     break;
 
   case 6:
-#line 267 "dhcp6_parser.yy" // lalr1.cc:919
+#line 267 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.DHCP6; }
-#line 742 "dhcp6_parser.cc" // lalr1.cc:919
+#line 743 "dhcp6_parser.cc"
     break;
 
   case 8:
-#line 268 "dhcp6_parser.yy" // lalr1.cc:919
+#line 268 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
-#line 748 "dhcp6_parser.cc" // lalr1.cc:919
+#line 749 "dhcp6_parser.cc"
     break;
 
   case 10:
-#line 269 "dhcp6_parser.yy" // lalr1.cc:919
+#line 269 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.SUBNET6; }
-#line 754 "dhcp6_parser.cc" // lalr1.cc:919
+#line 755 "dhcp6_parser.cc"
     break;
 
   case 12:
-#line 270 "dhcp6_parser.yy" // lalr1.cc:919
+#line 270 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.POOLS; }
-#line 760 "dhcp6_parser.cc" // lalr1.cc:919
+#line 761 "dhcp6_parser.cc"
     break;
 
   case 14:
-#line 271 "dhcp6_parser.yy" // lalr1.cc:919
+#line 271 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.PD_POOLS; }
-#line 766 "dhcp6_parser.cc" // lalr1.cc:919
+#line 767 "dhcp6_parser.cc"
     break;
 
   case 16:
-#line 272 "dhcp6_parser.yy" // lalr1.cc:919
+#line 272 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.RESERVATIONS; }
-#line 772 "dhcp6_parser.cc" // lalr1.cc:919
+#line 773 "dhcp6_parser.cc"
     break;
 
   case 18:
-#line 273 "dhcp6_parser.yy" // lalr1.cc:919
+#line 273 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.DHCP6; }
-#line 778 "dhcp6_parser.cc" // lalr1.cc:919
+#line 779 "dhcp6_parser.cc"
     break;
 
   case 20:
-#line 274 "dhcp6_parser.yy" // lalr1.cc:919
+#line 274 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.OPTION_DEF; }
-#line 784 "dhcp6_parser.cc" // lalr1.cc:919
+#line 785 "dhcp6_parser.cc"
     break;
 
   case 22:
-#line 275 "dhcp6_parser.yy" // lalr1.cc:919
+#line 275 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.OPTION_DATA; }
-#line 790 "dhcp6_parser.cc" // lalr1.cc:919
+#line 791 "dhcp6_parser.cc"
     break;
 
   case 24:
-#line 276 "dhcp6_parser.yy" // lalr1.cc:919
+#line 276 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
-#line 796 "dhcp6_parser.cc" // lalr1.cc:919
+#line 797 "dhcp6_parser.cc"
     break;
 
   case 26:
-#line 277 "dhcp6_parser.yy" // lalr1.cc:919
+#line 277 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.DHCP_DDNS; }
-#line 802 "dhcp6_parser.cc" // lalr1.cc:919
+#line 803 "dhcp6_parser.cc"
     break;
 
   case 28:
-#line 278 "dhcp6_parser.yy" // lalr1.cc:919
+#line 278 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.LOGGING; }
-#line 808 "dhcp6_parser.cc" // lalr1.cc:919
+#line 809 "dhcp6_parser.cc"
     break;
 
   case 30:
-#line 279 "dhcp6_parser.yy" // lalr1.cc:919
+#line 279 "dhcp6_parser.yy"
     { ctx.ctx_ = ctx.CONFIG_CONTROL; }
-#line 814 "dhcp6_parser.cc" // lalr1.cc:919
+#line 815 "dhcp6_parser.cc"
     break;
 
   case 32:
-#line 287 "dhcp6_parser.yy" // lalr1.cc:919
+#line 287 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); }
-#line 820 "dhcp6_parser.cc" // lalr1.cc:919
+#line 821 "dhcp6_parser.cc"
     break;
 
   case 33:
-#line 288 "dhcp6_parser.yy" // lalr1.cc:919
+#line 288 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 826 "dhcp6_parser.cc" // lalr1.cc:919
+#line 827 "dhcp6_parser.cc"
     break;
 
   case 34:
-#line 289 "dhcp6_parser.yy" // lalr1.cc:919
+#line 289 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 832 "dhcp6_parser.cc" // lalr1.cc:919
+#line 833 "dhcp6_parser.cc"
     break;
 
   case 35:
-#line 290 "dhcp6_parser.yy" // lalr1.cc:919
+#line 290 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 838 "dhcp6_parser.cc" // lalr1.cc:919
+#line 839 "dhcp6_parser.cc"
     break;
 
   case 36:
-#line 291 "dhcp6_parser.yy" // lalr1.cc:919
+#line 291 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 844 "dhcp6_parser.cc" // lalr1.cc:919
+#line 845 "dhcp6_parser.cc"
     break;
 
   case 37:
-#line 292 "dhcp6_parser.yy" // lalr1.cc:919
+#line 292 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 850 "dhcp6_parser.cc" // lalr1.cc:919
+#line 851 "dhcp6_parser.cc"
     break;
 
   case 38:
-#line 293 "dhcp6_parser.yy" // lalr1.cc:919
+#line 293 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 856 "dhcp6_parser.cc" // lalr1.cc:919
+#line 857 "dhcp6_parser.cc"
     break;
 
   case 39:
-#line 296 "dhcp6_parser.yy" // lalr1.cc:919
+#line 296 "dhcp6_parser.yy"
     {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as < ElementPtr > ());
 }
-#line 865 "dhcp6_parser.cc" // lalr1.cc:919
+#line 866 "dhcp6_parser.cc"
     break;
 
   case 40:
-#line 301 "dhcp6_parser.yy" // lalr1.cc:919
+#line 301 "dhcp6_parser.yy"
     {
     // This code is executed when we're about to start parsing
     // the content of the map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 876 "dhcp6_parser.cc" // lalr1.cc:919
+#line 877 "dhcp6_parser.cc"
     break;
 
   case 41:
-#line 306 "dhcp6_parser.yy" // lalr1.cc:919
+#line 306 "dhcp6_parser.yy"
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
     // for it.
 }
-#line 886 "dhcp6_parser.cc" // lalr1.cc:919
+#line 887 "dhcp6_parser.cc"
     break;
 
   case 42:
-#line 312 "dhcp6_parser.yy" // lalr1.cc:919
+#line 312 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 892 "dhcp6_parser.cc" // lalr1.cc:919
+#line 893 "dhcp6_parser.cc"
     break;
 
   case 45:
-#line 319 "dhcp6_parser.yy" // lalr1.cc:919
+#line 319 "dhcp6_parser.yy"
     {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
                   }
-#line 901 "dhcp6_parser.cc" // lalr1.cc:919
+#line 902 "dhcp6_parser.cc"
     break;
 
   case 46:
-#line 323 "dhcp6_parser.yy" // lalr1.cc:919
+#line 323 "dhcp6_parser.yy"
     {
                   // map consisting of a shorter map followed by
                   // comma and string:value
                   ctx.stack_.back()->set(yystack_[2].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
                   }
-#line 911 "dhcp6_parser.cc" // lalr1.cc:919
+#line 912 "dhcp6_parser.cc"
     break;
 
   case 47:
-#line 330 "dhcp6_parser.yy" // lalr1.cc:919
+#line 330 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
 }
-#line 920 "dhcp6_parser.cc" // lalr1.cc:919
+#line 921 "dhcp6_parser.cc"
     break;
 
   case 48:
-#line 333 "dhcp6_parser.yy" // lalr1.cc:919
+#line 333 "dhcp6_parser.yy"
     {
     // list parsing complete. Put any sanity checking here
 }
-#line 928 "dhcp6_parser.cc" // lalr1.cc:919
+#line 929 "dhcp6_parser.cc"
     break;
 
   case 51:
-#line 341 "dhcp6_parser.yy" // lalr1.cc:919
+#line 341 "dhcp6_parser.yy"
     {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
                   }
-#line 937 "dhcp6_parser.cc" // lalr1.cc:919
+#line 938 "dhcp6_parser.cc"
     break;
 
   case 52:
-#line 345 "dhcp6_parser.yy" // lalr1.cc:919
+#line 345 "dhcp6_parser.yy"
     {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as < ElementPtr > ());
                   }
-#line 946 "dhcp6_parser.cc" // lalr1.cc:919
+#line 947 "dhcp6_parser.cc"
     break;
 
   case 53:
-#line 352 "dhcp6_parser.yy" // lalr1.cc:919
+#line 352 "dhcp6_parser.yy"
     {
     // List parsing about to start
 }
-#line 954 "dhcp6_parser.cc" // lalr1.cc:919
+#line 955 "dhcp6_parser.cc"
     break;
 
   case 54:
-#line 354 "dhcp6_parser.yy" // lalr1.cc:919
+#line 354 "dhcp6_parser.yy"
     {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
 }
-#line 963 "dhcp6_parser.cc" // lalr1.cc:919
+#line 964 "dhcp6_parser.cc"
     break;
 
   case 57:
-#line 363 "dhcp6_parser.yy" // lalr1.cc:919
+#line 363 "dhcp6_parser.yy"
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 972 "dhcp6_parser.cc" // lalr1.cc:919
+#line 973 "dhcp6_parser.cc"
     break;
 
   case 58:
-#line 367 "dhcp6_parser.yy" // lalr1.cc:919
+#line 367 "dhcp6_parser.yy"
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 981 "dhcp6_parser.cc" // lalr1.cc:919
+#line 982 "dhcp6_parser.cc"
     break;
 
   case 59:
-#line 378 "dhcp6_parser.yy" // lalr1.cc:919
+#line 378 "dhcp6_parser.yy"
     {
     const std::string& where = ctx.contextName();
     const std::string& keyword = yystack_[1].value.as < std::string > ();
     error(yystack_[1].location,
           "got unexpected keyword \"" + keyword + "\" in " + where + " map.");
 }
-#line 992 "dhcp6_parser.cc" // lalr1.cc:919
+#line 993 "dhcp6_parser.cc"
     break;
 
   case 60:
-#line 388 "dhcp6_parser.yy" // lalr1.cc:919
+#line 388 "dhcp6_parser.yy"
     {
     // This code is executed when we're about to start parsing
     // the content of the map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1003 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1004 "dhcp6_parser.cc"
     break;
 
   case 61:
-#line 393 "dhcp6_parser.yy" // lalr1.cc:919
+#line 393 "dhcp6_parser.yy"
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -1012,11 +1013,11 @@ namespace isc { namespace dhcp {
     // Dhcp6 is required
     ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 1016 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1017 "dhcp6_parser.cc"
     break;
 
   case 70:
-#line 416 "dhcp6_parser.yy" // lalr1.cc:919
+#line 416 "dhcp6_parser.yy"
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -1025,604 +1026,604 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP6);
 }
-#line 1029 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1030 "dhcp6_parser.cc"
     break;
 
   case 71:
-#line 423 "dhcp6_parser.yy" // lalr1.cc:919
+#line 423 "dhcp6_parser.yy"
     {
     // No global parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1039 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1040 "dhcp6_parser.cc"
     break;
 
   case 72:
-#line 431 "dhcp6_parser.yy" // lalr1.cc:919
+#line 431 "dhcp6_parser.yy"
     {
     // Parse the Dhcp6 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1049 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1050 "dhcp6_parser.cc"
     break;
 
   case 73:
-#line 435 "dhcp6_parser.yy" // lalr1.cc:919
+#line 435 "dhcp6_parser.yy"
     {
     // No global parameter is required
     // parsing completed
 }
-#line 1058 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1059 "dhcp6_parser.cc"
     break;
 
-  case 113:
-#line 485 "dhcp6_parser.yy" // lalr1.cc:919
+  case 115:
+#line 487 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1066 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1067 "dhcp6_parser.cc"
     break;
 
-  case 114:
-#line 487 "dhcp6_parser.yy" // lalr1.cc:919
+  case 116:
+#line 489 "dhcp6_parser.yy"
     {
     ElementPtr datadir(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data-directory", datadir);
     ctx.leave();
 }
-#line 1076 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1077 "dhcp6_parser.cc"
     break;
 
-  case 115:
-#line 493 "dhcp6_parser.yy" // lalr1.cc:919
+  case 117:
+#line 495 "dhcp6_parser.yy"
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("preferred-lifetime", prf);
 }
-#line 1085 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1086 "dhcp6_parser.cc"
     break;
 
-  case 116:
-#line 498 "dhcp6_parser.yy" // lalr1.cc:919
+  case 118:
+#line 500 "dhcp6_parser.yy"
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("valid-lifetime", prf);
 }
-#line 1094 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1095 "dhcp6_parser.cc"
     break;
 
-  case 117:
-#line 503 "dhcp6_parser.yy" // lalr1.cc:919
+  case 119:
+#line 505 "dhcp6_parser.yy"
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("renew-timer", prf);
 }
-#line 1103 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1104 "dhcp6_parser.cc"
     break;
 
-  case 118:
-#line 508 "dhcp6_parser.yy" // lalr1.cc:919
+  case 120:
+#line 510 "dhcp6_parser.yy"
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rebind-timer", prf);
 }
-#line 1112 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1113 "dhcp6_parser.cc"
     break;
 
-  case 119:
-#line 513 "dhcp6_parser.yy" // lalr1.cc:919
+  case 121:
+#line 515 "dhcp6_parser.yy"
     {
     ElementPtr ctt(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("calculate-tee-times", ctt);
 }
-#line 1121 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1122 "dhcp6_parser.cc"
     break;
 
-  case 120:
-#line 518 "dhcp6_parser.yy" // lalr1.cc:919
+  case 122:
+#line 520 "dhcp6_parser.yy"
     {
     ElementPtr t1(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t1-percent", t1);
 }
-#line 1130 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1131 "dhcp6_parser.cc"
     break;
 
-  case 121:
-#line 523 "dhcp6_parser.yy" // lalr1.cc:919
+  case 123:
+#line 525 "dhcp6_parser.yy"
     {
     ElementPtr t2(new DoubleElement(yystack_[0].value.as < double > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("t2-percent", t2);
 }
-#line 1139 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1140 "dhcp6_parser.cc"
     break;
 
-  case 122:
-#line 528 "dhcp6_parser.yy" // lalr1.cc:919
+  case 124:
+#line 530 "dhcp6_parser.yy"
     {
     ElementPtr dpp(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("decline-probation-period", dpp);
 }
-#line 1148 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1149 "dhcp6_parser.cc"
     break;
 
-  case 123:
-#line 533 "dhcp6_parser.yy" // lalr1.cc:919
+  case 125:
+#line 535 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1156 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1157 "dhcp6_parser.cc"
     break;
 
-  case 124:
-#line 535 "dhcp6_parser.yy" // lalr1.cc:919
+  case 126:
+#line 537 "dhcp6_parser.yy"
     {
     ElementPtr stag(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-tag", stag);
     ctx.leave();
 }
-#line 1166 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1167 "dhcp6_parser.cc"
     break;
 
-  case 125:
-#line 541 "dhcp6_parser.yy" // lalr1.cc:919
+  case 127:
+#line 543 "dhcp6_parser.yy"
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces-config", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.INTERFACES_CONFIG);
 }
-#line 1177 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1178 "dhcp6_parser.cc"
     break;
 
-  case 126:
-#line 546 "dhcp6_parser.yy" // lalr1.cc:919
+  case 128:
+#line 548 "dhcp6_parser.yy"
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1187 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1188 "dhcp6_parser.cc"
     break;
 
-  case 127:
-#line 552 "dhcp6_parser.yy" // lalr1.cc:919
+  case 129:
+#line 554 "dhcp6_parser.yy"
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1197 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1198 "dhcp6_parser.cc"
     break;
 
-  case 128:
-#line 556 "dhcp6_parser.yy" // lalr1.cc:919
+  case 130:
+#line 558 "dhcp6_parser.yy"
     {
     // No interfaces config param is required
     // parsing completed
 }
-#line 1206 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1207 "dhcp6_parser.cc"
     break;
 
-  case 136:
-#line 572 "dhcp6_parser.yy" // lalr1.cc:919
+  case 138:
+#line 574 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interfaces", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1217 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1218 "dhcp6_parser.cc"
     break;
 
-  case 137:
-#line 577 "dhcp6_parser.yy" // lalr1.cc:919
+  case 139:
+#line 579 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1226 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1227 "dhcp6_parser.cc"
     break;
 
-  case 138:
-#line 582 "dhcp6_parser.yy" // lalr1.cc:919
+  case 140:
+#line 584 "dhcp6_parser.yy"
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
 }
-#line 1235 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1236 "dhcp6_parser.cc"
     break;
 
-  case 139:
-#line 588 "dhcp6_parser.yy" // lalr1.cc:919
+  case 141:
+#line 590 "dhcp6_parser.yy"
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lease-database", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.LEASE_DATABASE);
 }
-#line 1246 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1247 "dhcp6_parser.cc"
     break;
 
-  case 140:
-#line 593 "dhcp6_parser.yy" // lalr1.cc:919
+  case 142:
+#line 595 "dhcp6_parser.yy"
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1257 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1258 "dhcp6_parser.cc"
     break;
 
-  case 141:
-#line 600 "dhcp6_parser.yy" // lalr1.cc:919
+  case 143:
+#line 602 "dhcp6_parser.yy"
     {
     ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-database", i);
     ctx.stack_.push_back(i);
     ctx.enter(ctx.HOSTS_DATABASE);
 }
-#line 1268 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1269 "dhcp6_parser.cc"
     break;
 
-  case 142:
-#line 605 "dhcp6_parser.yy" // lalr1.cc:919
+  case 144:
+#line 607 "dhcp6_parser.yy"
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1279 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1280 "dhcp6_parser.cc"
     break;
 
-  case 143:
-#line 612 "dhcp6_parser.yy" // lalr1.cc:919
+  case 145:
+#line 614 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hosts-databases", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOSTS_DATABASE);
 }
-#line 1290 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1291 "dhcp6_parser.cc"
     break;
 
-  case 144:
-#line 617 "dhcp6_parser.yy" // lalr1.cc:919
+  case 146:
+#line 619 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1299 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1300 "dhcp6_parser.cc"
     break;
 
-  case 149:
-#line 630 "dhcp6_parser.yy" // lalr1.cc:919
+  case 151:
+#line 632 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1309 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1310 "dhcp6_parser.cc"
     break;
 
-  case 150:
-#line 634 "dhcp6_parser.yy" // lalr1.cc:919
+  case 152:
+#line 636 "dhcp6_parser.yy"
     {
     // The type parameter is required
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1319 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1320 "dhcp6_parser.cc"
     break;
 
-  case 173:
-#line 666 "dhcp6_parser.yy" // lalr1.cc:919
+  case 175:
+#line 668 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
-#line 1327 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1328 "dhcp6_parser.cc"
     break;
 
-  case 174:
-#line 668 "dhcp6_parser.yy" // lalr1.cc:919
+  case 176:
+#line 670 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1336 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1337 "dhcp6_parser.cc"
     break;
 
-  case 175:
-#line 673 "dhcp6_parser.yy" // lalr1.cc:919
+  case 177:
+#line 675 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1342 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1343 "dhcp6_parser.cc"
     break;
 
-  case 176:
-#line 674 "dhcp6_parser.yy" // lalr1.cc:919
+  case 178:
+#line 676 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1348 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1349 "dhcp6_parser.cc"
     break;
 
-  case 177:
-#line 675 "dhcp6_parser.yy" // lalr1.cc:919
+  case 179:
+#line 677 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1354 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1355 "dhcp6_parser.cc"
     break;
 
-  case 178:
-#line 676 "dhcp6_parser.yy" // lalr1.cc:919
+  case 180:
+#line 678 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1360 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1361 "dhcp6_parser.cc"
     break;
 
-  case 179:
-#line 679 "dhcp6_parser.yy" // lalr1.cc:919
+  case 181:
+#line 681 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1368 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1369 "dhcp6_parser.cc"
     break;
 
-  case 180:
-#line 681 "dhcp6_parser.yy" // lalr1.cc:919
+  case 182:
+#line 683 "dhcp6_parser.yy"
     {
     ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("user", user);
     ctx.leave();
 }
-#line 1378 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1379 "dhcp6_parser.cc"
     break;
 
-  case 181:
-#line 687 "dhcp6_parser.yy" // lalr1.cc:919
+  case 183:
+#line 689 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1386 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1387 "dhcp6_parser.cc"
     break;
 
-  case 182:
-#line 689 "dhcp6_parser.yy" // lalr1.cc:919
+  case 184:
+#line 691 "dhcp6_parser.yy"
     {
     ElementPtr pwd(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("password", pwd);
     ctx.leave();
 }
-#line 1396 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1397 "dhcp6_parser.cc"
     break;
 
-  case 183:
-#line 695 "dhcp6_parser.yy" // lalr1.cc:919
+  case 185:
+#line 697 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1404 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1405 "dhcp6_parser.cc"
     break;
 
-  case 184:
-#line 697 "dhcp6_parser.yy" // lalr1.cc:919
+  case 186:
+#line 699 "dhcp6_parser.yy"
     {
     ElementPtr h(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host", h);
     ctx.leave();
 }
-#line 1414 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1415 "dhcp6_parser.cc"
     break;
 
-  case 185:
-#line 703 "dhcp6_parser.yy" // lalr1.cc:919
+  case 187:
+#line 705 "dhcp6_parser.yy"
     {
     ElementPtr p(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
 }
-#line 1423 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1424 "dhcp6_parser.cc"
     break;
 
-  case 186:
-#line 708 "dhcp6_parser.yy" // lalr1.cc:919
+  case 188:
+#line 710 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1431 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1432 "dhcp6_parser.cc"
     break;
 
-  case 187:
-#line 710 "dhcp6_parser.yy" // lalr1.cc:919
+  case 189:
+#line 712 "dhcp6_parser.yy"
     {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("name", name);
     ctx.leave();
 }
-#line 1441 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1442 "dhcp6_parser.cc"
     break;
 
-  case 188:
-#line 716 "dhcp6_parser.yy" // lalr1.cc:919
+  case 190:
+#line 718 "dhcp6_parser.yy"
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
 }
-#line 1450 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1451 "dhcp6_parser.cc"
     break;
 
-  case 189:
-#line 721 "dhcp6_parser.yy" // lalr1.cc:919
+  case 191:
+#line 723 "dhcp6_parser.yy"
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
 }
-#line 1459 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1460 "dhcp6_parser.cc"
     break;
 
-  case 190:
-#line 726 "dhcp6_parser.yy" // lalr1.cc:919
+  case 192:
+#line 728 "dhcp6_parser.yy"
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
 }
-#line 1468 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1469 "dhcp6_parser.cc"
     break;
 
-  case 191:
-#line 731 "dhcp6_parser.yy" // lalr1.cc:919
+  case 193:
+#line 733 "dhcp6_parser.yy"
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
 }
-#line 1477 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1478 "dhcp6_parser.cc"
     break;
 
-  case 192:
-#line 736 "dhcp6_parser.yy" // lalr1.cc:919
+  case 194:
+#line 738 "dhcp6_parser.yy"
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reconnect-wait-time", n);
 }
-#line 1486 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1487 "dhcp6_parser.cc"
     break;
 
-  case 193:
-#line 741 "dhcp6_parser.yy" // lalr1.cc:919
+  case 195:
+#line 743 "dhcp6_parser.yy"
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("request-timeout", n);
 }
-#line 1495 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1496 "dhcp6_parser.cc"
     break;
 
-  case 194:
-#line 746 "dhcp6_parser.yy" // lalr1.cc:919
+  case 196:
+#line 748 "dhcp6_parser.yy"
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-keepalive", n);
 }
-#line 1504 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1505 "dhcp6_parser.cc"
     break;
 
-  case 195:
-#line 751 "dhcp6_parser.yy" // lalr1.cc:919
+  case 197:
+#line 753 "dhcp6_parser.yy"
     {
     ElementPtr n(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("tcp-nodelay", n);
 }
-#line 1513 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1514 "dhcp6_parser.cc"
     break;
 
-  case 196:
-#line 756 "dhcp6_parser.yy" // lalr1.cc:919
+  case 198:
+#line 758 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1521 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1522 "dhcp6_parser.cc"
     break;
 
-  case 197:
-#line 758 "dhcp6_parser.yy" // lalr1.cc:919
+  case 199:
+#line 760 "dhcp6_parser.yy"
     {
     ElementPtr cp(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("contact-points", cp);
     ctx.leave();
 }
-#line 1531 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1532 "dhcp6_parser.cc"
     break;
 
-  case 198:
-#line 764 "dhcp6_parser.yy" // lalr1.cc:919
+  case 200:
+#line 766 "dhcp6_parser.yy"
     {
     ElementPtr n(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reconnect-tries", n);
 }
-#line 1540 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1541 "dhcp6_parser.cc"
     break;
 
-  case 199:
-#line 769 "dhcp6_parser.yy" // lalr1.cc:919
+  case 201:
+#line 771 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1548 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1549 "dhcp6_parser.cc"
     break;
 
-  case 200:
-#line 771 "dhcp6_parser.yy" // lalr1.cc:919
+  case 202:
+#line 773 "dhcp6_parser.yy"
     {
     ElementPtr ks(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("keyspace", ks);
     ctx.leave();
 }
-#line 1558 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1559 "dhcp6_parser.cc"
     break;
 
-  case 201:
-#line 777 "dhcp6_parser.yy" // lalr1.cc:919
+  case 203:
+#line 779 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1566 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1567 "dhcp6_parser.cc"
     break;
 
-  case 202:
-#line 779 "dhcp6_parser.yy" // lalr1.cc:919
+  case 204:
+#line 781 "dhcp6_parser.yy"
     {
     ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("consistency", c);
     ctx.leave();
 }
-#line 1576 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1577 "dhcp6_parser.cc"
     break;
 
-  case 203:
-#line 785 "dhcp6_parser.yy" // lalr1.cc:919
+  case 205:
+#line 787 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1584 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1585 "dhcp6_parser.cc"
     break;
 
-  case 204:
-#line 787 "dhcp6_parser.yy" // lalr1.cc:919
+  case 206:
+#line 789 "dhcp6_parser.yy"
     {
     ElementPtr c(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("serial-consistency", c);
     ctx.leave();
 }
-#line 1594 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1595 "dhcp6_parser.cc"
     break;
 
-  case 205:
-#line 793 "dhcp6_parser.yy" // lalr1.cc:919
+  case 207:
+#line 795 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sanity-checks", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SANITY_CHECKS);
 }
-#line 1605 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1606 "dhcp6_parser.cc"
     break;
 
-  case 206:
-#line 798 "dhcp6_parser.yy" // lalr1.cc:919
+  case 208:
+#line 800 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1614 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1615 "dhcp6_parser.cc"
     break;
 
-  case 210:
-#line 808 "dhcp6_parser.yy" // lalr1.cc:919
+  case 212:
+#line 810 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1622 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1623 "dhcp6_parser.cc"
     break;
 
-  case 211:
-#line 810 "dhcp6_parser.yy" // lalr1.cc:919
+  case 213:
+#line 812 "dhcp6_parser.yy"
     {
 
     if ( (string(yystack_[0].value.as < std::string > ()) == "none") ||
@@ -1638,307 +1639,307 @@ namespace isc { namespace dhcp {
               ", supported values are: none, warn, fix, fix-del, del");
     }
 }
-#line 1642 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1643 "dhcp6_parser.cc"
     break;
 
-  case 212:
-#line 826 "dhcp6_parser.yy" // lalr1.cc:919
+  case 214:
+#line 828 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("mac-sources", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.MAC_SOURCES);
 }
-#line 1653 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1654 "dhcp6_parser.cc"
     break;
 
-  case 213:
-#line 831 "dhcp6_parser.yy" // lalr1.cc:919
+  case 215:
+#line 833 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1662 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1663 "dhcp6_parser.cc"
     break;
 
-  case 218:
-#line 844 "dhcp6_parser.yy" // lalr1.cc:919
+  case 220:
+#line 846 "dhcp6_parser.yy"
     {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1671 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1672 "dhcp6_parser.cc"
     break;
 
-  case 219:
-#line 849 "dhcp6_parser.yy" // lalr1.cc:919
+  case 221:
+#line 851 "dhcp6_parser.yy"
     {
     ElementPtr duid(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1680 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1681 "dhcp6_parser.cc"
     break;
 
-  case 220:
-#line 854 "dhcp6_parser.yy" // lalr1.cc:919
+  case 222:
+#line 856 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("host-reservation-identifiers", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
 }
-#line 1691 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1692 "dhcp6_parser.cc"
     break;
 
-  case 221:
-#line 859 "dhcp6_parser.yy" // lalr1.cc:919
+  case 223:
+#line 861 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1700 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1701 "dhcp6_parser.cc"
     break;
 
-  case 227:
-#line 873 "dhcp6_parser.yy" // lalr1.cc:919
+  case 229:
+#line 875 "dhcp6_parser.yy"
     {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
 }
-#line 1709 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1710 "dhcp6_parser.cc"
     break;
 
-  case 228:
-#line 878 "dhcp6_parser.yy" // lalr1.cc:919
+  case 230:
+#line 880 "dhcp6_parser.yy"
     {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
 }
-#line 1718 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1719 "dhcp6_parser.cc"
     break;
 
-  case 229:
-#line 885 "dhcp6_parser.yy" // lalr1.cc:919
+  case 231:
+#line 887 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay-supplied-options", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1729 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1730 "dhcp6_parser.cc"
     break;
 
-  case 230:
-#line 890 "dhcp6_parser.yy" // lalr1.cc:919
+  case 232:
+#line 892 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1738 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1739 "dhcp6_parser.cc"
     break;
 
-  case 231:
-#line 895 "dhcp6_parser.yy" // lalr1.cc:919
+  case 233:
+#line 897 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hooks-libraries", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOOKS_LIBRARIES);
 }
-#line 1749 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1750 "dhcp6_parser.cc"
     break;
 
-  case 232:
-#line 900 "dhcp6_parser.yy" // lalr1.cc:919
+  case 234:
+#line 902 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1758 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1759 "dhcp6_parser.cc"
     break;
 
-  case 237:
-#line 913 "dhcp6_parser.yy" // lalr1.cc:919
+  case 239:
+#line 915 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1768 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1769 "dhcp6_parser.cc"
     break;
 
-  case 238:
-#line 917 "dhcp6_parser.yy" // lalr1.cc:919
+  case 240:
+#line 919 "dhcp6_parser.yy"
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1778 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1779 "dhcp6_parser.cc"
     break;
 
-  case 239:
-#line 923 "dhcp6_parser.yy" // lalr1.cc:919
+  case 241:
+#line 925 "dhcp6_parser.yy"
     {
     // Parse the hooks-libraries list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1788 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1789 "dhcp6_parser.cc"
     break;
 
-  case 240:
-#line 927 "dhcp6_parser.yy" // lalr1.cc:919
+  case 242:
+#line 929 "dhcp6_parser.yy"
     {
     // The library hooks parameter is required
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1798 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1799 "dhcp6_parser.cc"
     break;
 
-  case 246:
-#line 942 "dhcp6_parser.yy" // lalr1.cc:919
+  case 248:
+#line 944 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1806 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1807 "dhcp6_parser.cc"
     break;
 
-  case 247:
-#line 944 "dhcp6_parser.yy" // lalr1.cc:919
+  case 249:
+#line 946 "dhcp6_parser.yy"
     {
     ElementPtr lib(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("library", lib);
     ctx.leave();
 }
-#line 1816 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1817 "dhcp6_parser.cc"
     break;
 
-  case 248:
-#line 950 "dhcp6_parser.yy" // lalr1.cc:919
+  case 250:
+#line 952 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1824 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1825 "dhcp6_parser.cc"
     break;
 
-  case 249:
-#line 952 "dhcp6_parser.yy" // lalr1.cc:919
+  case 251:
+#line 954 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 1833 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1834 "dhcp6_parser.cc"
     break;
 
-  case 250:
-#line 958 "dhcp6_parser.yy" // lalr1.cc:919
+  case 252:
+#line 960 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("expired-leases-processing", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
 }
-#line 1844 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1845 "dhcp6_parser.cc"
     break;
 
-  case 251:
-#line 963 "dhcp6_parser.yy" // lalr1.cc:919
+  case 253:
+#line 965 "dhcp6_parser.yy"
     {
     // No expired lease parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1854 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1855 "dhcp6_parser.cc"
     break;
 
-  case 260:
-#line 981 "dhcp6_parser.yy" // lalr1.cc:919
+  case 262:
+#line 983 "dhcp6_parser.yy"
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reclaim-timer-wait-time", value);
 }
-#line 1863 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1864 "dhcp6_parser.cc"
     break;
 
-  case 261:
-#line 986 "dhcp6_parser.yy" // lalr1.cc:919
+  case 263:
+#line 988 "dhcp6_parser.yy"
     {
     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);
 }
-#line 1872 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1873 "dhcp6_parser.cc"
     break;
 
-  case 262:
-#line 991 "dhcp6_parser.yy" // lalr1.cc:919
+  case 264:
+#line 993 "dhcp6_parser.yy"
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
 }
-#line 1881 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1882 "dhcp6_parser.cc"
     break;
 
-  case 263:
-#line 996 "dhcp6_parser.yy" // lalr1.cc:919
+  case 265:
+#line 998 "dhcp6_parser.yy"
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
 }
-#line 1890 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1891 "dhcp6_parser.cc"
     break;
 
-  case 264:
-#line 1001 "dhcp6_parser.yy" // lalr1.cc:919
+  case 266:
+#line 1003 "dhcp6_parser.yy"
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
 }
-#line 1899 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1900 "dhcp6_parser.cc"
     break;
 
-  case 265:
-#line 1006 "dhcp6_parser.yy" // lalr1.cc:919
+  case 267:
+#line 1008 "dhcp6_parser.yy"
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
 }
-#line 1908 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1909 "dhcp6_parser.cc"
     break;
 
-  case 266:
-#line 1014 "dhcp6_parser.yy" // lalr1.cc:919
+  case 268:
+#line 1016 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet6", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SUBNET6);
 }
-#line 1919 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1920 "dhcp6_parser.cc"
     break;
 
-  case 267:
-#line 1019 "dhcp6_parser.yy" // lalr1.cc:919
+  case 269:
+#line 1021 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1928 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1929 "dhcp6_parser.cc"
     break;
 
-  case 272:
-#line 1039 "dhcp6_parser.yy" // lalr1.cc:919
+  case 274:
+#line 1041 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1938 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1939 "dhcp6_parser.cc"
     break;
 
-  case 273:
-#line 1043 "dhcp6_parser.yy" // lalr1.cc:919
+  case 275:
+#line 1045 "dhcp6_parser.yy"
     {
     // Once we reached this place, the subnet parsing is now complete.
     // If we want to, we can implement default values here.
@@ -1960,267 +1961,267 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1964 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1965 "dhcp6_parser.cc"
     break;
 
-  case 274:
-#line 1065 "dhcp6_parser.yy" // lalr1.cc:919
+  case 276:
+#line 1067 "dhcp6_parser.yy"
     {
     // Parse the subnet6 list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1974 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1975 "dhcp6_parser.cc"
     break;
 
-  case 275:
-#line 1069 "dhcp6_parser.yy" // lalr1.cc:919
+  case 277:
+#line 1071 "dhcp6_parser.yy"
     {
     // The subnet subnet6 parameter is required
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1984 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1985 "dhcp6_parser.cc"
     break;
 
-  case 301:
-#line 1106 "dhcp6_parser.yy" // lalr1.cc:919
+  case 303:
+#line 1108 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1992 "dhcp6_parser.cc" // lalr1.cc:919
+#line 1993 "dhcp6_parser.cc"
     break;
 
-  case 302:
-#line 1108 "dhcp6_parser.yy" // lalr1.cc:919
+  case 304:
+#line 1110 "dhcp6_parser.yy"
     {
     ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("subnet", subnet);
     ctx.leave();
 }
-#line 2002 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2003 "dhcp6_parser.cc"
     break;
 
-  case 303:
-#line 1114 "dhcp6_parser.yy" // lalr1.cc:919
+  case 305:
+#line 1116 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2010 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2011 "dhcp6_parser.cc"
     break;
 
-  case 304:
-#line 1116 "dhcp6_parser.yy" // lalr1.cc:919
+  case 306:
+#line 1118 "dhcp6_parser.yy"
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface", iface);
     ctx.leave();
 }
-#line 2020 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2021 "dhcp6_parser.cc"
     break;
 
-  case 305:
-#line 1122 "dhcp6_parser.yy" // lalr1.cc:919
+  case 307:
+#line 1124 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2028 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2029 "dhcp6_parser.cc"
     break;
 
-  case 306:
-#line 1124 "dhcp6_parser.yy" // lalr1.cc:919
+  case 308:
+#line 1126 "dhcp6_parser.yy"
     {
     ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("interface-id", iface);
     ctx.leave();
 }
-#line 2038 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2039 "dhcp6_parser.cc"
     break;
 
-  case 307:
-#line 1130 "dhcp6_parser.yy" // lalr1.cc:919
+  case 309:
+#line 1132 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2046 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2047 "dhcp6_parser.cc"
     break;
 
-  case 308:
-#line 1132 "dhcp6_parser.yy" // lalr1.cc:919
+  case 310:
+#line 1134 "dhcp6_parser.yy"
     {
     ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-class", cls);
     ctx.leave();
 }
-#line 2056 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2057 "dhcp6_parser.cc"
     break;
 
-  case 309:
-#line 1138 "dhcp6_parser.yy" // lalr1.cc:919
+  case 311:
+#line 1140 "dhcp6_parser.yy"
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("require-client-classes", c);
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2067 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2068 "dhcp6_parser.cc"
     break;
 
-  case 310:
-#line 1143 "dhcp6_parser.yy" // lalr1.cc:919
+  case 312:
+#line 1145 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2076 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2077 "dhcp6_parser.cc"
     break;
 
-  case 311:
-#line 1148 "dhcp6_parser.yy" // lalr1.cc:919
+  case 313:
+#line 1150 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
-#line 2084 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2085 "dhcp6_parser.cc"
     break;
 
-  case 312:
-#line 1150 "dhcp6_parser.yy" // lalr1.cc:919
+  case 314:
+#line 1152 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 2093 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2094 "dhcp6_parser.cc"
     break;
 
-  case 313:
-#line 1155 "dhcp6_parser.yy" // lalr1.cc:919
+  case 315:
+#line 1157 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 2099 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2100 "dhcp6_parser.cc"
     break;
 
-  case 314:
-#line 1156 "dhcp6_parser.yy" // lalr1.cc:919
+  case 316:
+#line 1158 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 2105 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2106 "dhcp6_parser.cc"
     break;
 
-  case 315:
-#line 1157 "dhcp6_parser.yy" // lalr1.cc:919
+  case 317:
+#line 1159 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); }
-#line 2111 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2112 "dhcp6_parser.cc"
     break;
 
-  case 316:
-#line 1158 "dhcp6_parser.yy" // lalr1.cc:919
+  case 318:
+#line 1160 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 2117 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2118 "dhcp6_parser.cc"
     break;
 
-  case 317:
-#line 1161 "dhcp6_parser.yy" // lalr1.cc:919
+  case 319:
+#line 1163 "dhcp6_parser.yy"
     {
     ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
 }
-#line 2126 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2127 "dhcp6_parser.cc"
     break;
 
-  case 318:
-#line 1166 "dhcp6_parser.yy" // lalr1.cc:919
+  case 320:
+#line 1168 "dhcp6_parser.yy"
     {
     ElementPtr rc(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rapid-commit", rc);
 }
-#line 2135 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2136 "dhcp6_parser.cc"
     break;
 
-  case 319:
-#line 1174 "dhcp6_parser.yy" // lalr1.cc:919
+  case 321:
+#line 1176 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("shared-networks", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SHARED_NETWORK);
 }
-#line 2146 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2147 "dhcp6_parser.cc"
     break;
 
-  case 320:
-#line 1179 "dhcp6_parser.yy" // lalr1.cc:919
+  case 322:
+#line 1181 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2155 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2156 "dhcp6_parser.cc"
     break;
 
-  case 325:
-#line 1194 "dhcp6_parser.yy" // lalr1.cc:919
+  case 327:
+#line 1196 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2165 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2166 "dhcp6_parser.cc"
     break;
 
-  case 326:
-#line 1198 "dhcp6_parser.yy" // lalr1.cc:919
+  case 328:
+#line 1200 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 2173 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2174 "dhcp6_parser.cc"
     break;
 
-  case 349:
-#line 1232 "dhcp6_parser.yy" // lalr1.cc:919
+  case 351:
+#line 1234 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-def", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DEF);
 }
-#line 2184 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2185 "dhcp6_parser.cc"
     break;
 
-  case 350:
-#line 1237 "dhcp6_parser.yy" // lalr1.cc:919
+  case 352:
+#line 1239 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2193 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2194 "dhcp6_parser.cc"
     break;
 
-  case 351:
-#line 1245 "dhcp6_parser.yy" // lalr1.cc:919
+  case 353:
+#line 1247 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2202 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2203 "dhcp6_parser.cc"
     break;
 
-  case 352:
-#line 1248 "dhcp6_parser.yy" // lalr1.cc:919
+  case 354:
+#line 1250 "dhcp6_parser.yy"
     {
     // parsing completed
 }
-#line 2210 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2211 "dhcp6_parser.cc"
     break;
 
-  case 357:
-#line 1264 "dhcp6_parser.yy" // lalr1.cc:919
+  case 359:
+#line 1266 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2220 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2221 "dhcp6_parser.cc"
     break;
 
-  case 358:
-#line 1268 "dhcp6_parser.yy" // lalr1.cc:919
+  case 360:
+#line 1270 "dhcp6_parser.yy"
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2228,21 +2229,21 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2232 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2233 "dhcp6_parser.cc"
     break;
 
-  case 359:
-#line 1279 "dhcp6_parser.yy" // lalr1.cc:919
+  case 361:
+#line 1281 "dhcp6_parser.yy"
     {
     // Parse the option-def list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2242 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2243 "dhcp6_parser.cc"
     break;
 
-  case 360:
-#line 1283 "dhcp6_parser.yy" // lalr1.cc:919
+  case 362:
+#line 1285 "dhcp6_parser.yy"
     {
     // The name, code and type option def parameters are required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2250,280 +2251,280 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2254 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2255 "dhcp6_parser.cc"
     break;
 
-  case 376:
-#line 1315 "dhcp6_parser.yy" // lalr1.cc:919
+  case 378:
+#line 1317 "dhcp6_parser.yy"
     {
     ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
 }
-#line 2263 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2264 "dhcp6_parser.cc"
     break;
 
-  case 378:
-#line 1322 "dhcp6_parser.yy" // lalr1.cc:919
+  case 380:
+#line 1324 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2271 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2272 "dhcp6_parser.cc"
     break;
 
-  case 379:
-#line 1324 "dhcp6_parser.yy" // lalr1.cc:919
+  case 381:
+#line 1326 "dhcp6_parser.yy"
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("type", prf);
     ctx.leave();
 }
-#line 2281 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2282 "dhcp6_parser.cc"
     break;
 
-  case 380:
-#line 1330 "dhcp6_parser.yy" // lalr1.cc:919
+  case 382:
+#line 1332 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2289 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2290 "dhcp6_parser.cc"
     break;
 
-  case 381:
-#line 1332 "dhcp6_parser.yy" // lalr1.cc:919
+  case 383:
+#line 1334 "dhcp6_parser.yy"
     {
     ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("record-types", rtypes);
     ctx.leave();
 }
-#line 2299 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2300 "dhcp6_parser.cc"
     break;
 
-  case 382:
-#line 1338 "dhcp6_parser.yy" // lalr1.cc:919
+  case 384:
+#line 1340 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2307 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2308 "dhcp6_parser.cc"
     break;
 
-  case 383:
-#line 1340 "dhcp6_parser.yy" // lalr1.cc:919
+  case 385:
+#line 1342 "dhcp6_parser.yy"
     {
     ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("space", space);
     ctx.leave();
 }
-#line 2317 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2318 "dhcp6_parser.cc"
     break;
 
-  case 385:
-#line 1348 "dhcp6_parser.yy" // lalr1.cc:919
+  case 387:
+#line 1350 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2325 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2326 "dhcp6_parser.cc"
     break;
 
-  case 386:
-#line 1350 "dhcp6_parser.yy" // lalr1.cc:919
+  case 388:
+#line 1352 "dhcp6_parser.yy"
     {
     ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("encapsulate", encap);
     ctx.leave();
 }
-#line 2335 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2336 "dhcp6_parser.cc"
     break;
 
-  case 387:
-#line 1356 "dhcp6_parser.yy" // lalr1.cc:919
+  case 389:
+#line 1358 "dhcp6_parser.yy"
     {
     ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
 }
-#line 2344 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2345 "dhcp6_parser.cc"
     break;
 
-  case 388:
-#line 1365 "dhcp6_parser.yy" // lalr1.cc:919
+  case 390:
+#line 1367 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("option-data", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DATA);
 }
-#line 2355 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2356 "dhcp6_parser.cc"
     break;
 
-  case 389:
-#line 1370 "dhcp6_parser.yy" // lalr1.cc:919
+  case 391:
+#line 1372 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2364 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2365 "dhcp6_parser.cc"
     break;
 
-  case 394:
-#line 1389 "dhcp6_parser.yy" // lalr1.cc:919
+  case 396:
+#line 1391 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2374 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2375 "dhcp6_parser.cc"
     break;
 
-  case 395:
-#line 1393 "dhcp6_parser.yy" // lalr1.cc:919
+  case 397:
+#line 1395 "dhcp6_parser.yy"
     {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
 }
-#line 2383 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2384 "dhcp6_parser.cc"
     break;
 
-  case 396:
-#line 1401 "dhcp6_parser.yy" // lalr1.cc:919
+  case 398:
+#line 1403 "dhcp6_parser.yy"
     {
     // Parse the option-data list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2393 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2394 "dhcp6_parser.cc"
     break;
 
-  case 397:
-#line 1405 "dhcp6_parser.yy" // lalr1.cc:919
+  case 399:
+#line 1407 "dhcp6_parser.yy"
     {
     /// @todo: the code or name parameters are required.
     // parsing completed
 }
-#line 2402 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2403 "dhcp6_parser.cc"
     break;
 
-  case 412:
-#line 1438 "dhcp6_parser.yy" // lalr1.cc:919
+  case 414:
+#line 1440 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2410 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2411 "dhcp6_parser.cc"
     break;
 
-  case 413:
-#line 1440 "dhcp6_parser.yy" // lalr1.cc:919
+  case 415:
+#line 1442 "dhcp6_parser.yy"
     {
     ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("data", data);
     ctx.leave();
 }
-#line 2420 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2421 "dhcp6_parser.cc"
     break;
 
-  case 416:
-#line 1450 "dhcp6_parser.yy" // lalr1.cc:919
+  case 418:
+#line 1452 "dhcp6_parser.yy"
     {
     ElementPtr space(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
 }
-#line 2429 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2430 "dhcp6_parser.cc"
     break;
 
-  case 417:
-#line 1455 "dhcp6_parser.yy" // lalr1.cc:919
+  case 419:
+#line 1457 "dhcp6_parser.yy"
     {
     ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
 }
-#line 2438 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2439 "dhcp6_parser.cc"
     break;
 
-  case 418:
-#line 1463 "dhcp6_parser.yy" // lalr1.cc:919
+  case 420:
+#line 1465 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pools", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.POOLS);
 }
-#line 2449 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2450 "dhcp6_parser.cc"
     break;
 
-  case 419:
-#line 1468 "dhcp6_parser.yy" // lalr1.cc:919
+  case 421:
+#line 1470 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2458 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2459 "dhcp6_parser.cc"
     break;
 
-  case 424:
-#line 1483 "dhcp6_parser.yy" // lalr1.cc:919
+  case 426:
+#line 1485 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2468 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2469 "dhcp6_parser.cc"
     break;
 
-  case 425:
-#line 1487 "dhcp6_parser.yy" // lalr1.cc:919
+  case 427:
+#line 1489 "dhcp6_parser.yy"
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2478 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2479 "dhcp6_parser.cc"
     break;
 
-  case 426:
-#line 1493 "dhcp6_parser.yy" // lalr1.cc:919
+  case 428:
+#line 1495 "dhcp6_parser.yy"
     {
     // Parse the pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2488 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2489 "dhcp6_parser.cc"
     break;
 
-  case 427:
-#line 1497 "dhcp6_parser.yy" // lalr1.cc:919
+  case 429:
+#line 1499 "dhcp6_parser.yy"
     {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 2497 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2498 "dhcp6_parser.cc"
     break;
 
-  case 437:
-#line 1515 "dhcp6_parser.yy" // lalr1.cc:919
+  case 439:
+#line 1517 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2505 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2506 "dhcp6_parser.cc"
     break;
 
-  case 438:
-#line 1517 "dhcp6_parser.yy" // lalr1.cc:919
+  case 440:
+#line 1519 "dhcp6_parser.yy"
     {
     ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pool", pool);
     ctx.leave();
 }
-#line 2515 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2516 "dhcp6_parser.cc"
     break;
 
-  case 439:
-#line 1523 "dhcp6_parser.yy" // lalr1.cc:919
+  case 441:
+#line 1525 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2523 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2524 "dhcp6_parser.cc"
     break;
 
-  case 440:
-#line 1525 "dhcp6_parser.yy" // lalr1.cc:919
+  case 442:
+#line 1527 "dhcp6_parser.yy"
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -2546,19 +2547,19 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2550 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2551 "dhcp6_parser.cc"
     break;
 
-  case 441:
-#line 1548 "dhcp6_parser.yy" // lalr1.cc:919
+  case 443:
+#line 1550 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2558 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2559 "dhcp6_parser.cc"
     break;
 
-  case 442:
-#line 1550 "dhcp6_parser.yy" // lalr1.cc:919
+  case 444:
+#line 1552 "dhcp6_parser.yy"
     {
     ElementPtr parent = ctx.stack_.back();
     ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -2583,41 +2584,41 @@ namespace isc { namespace dhcp {
     parent->set("user-context", user_context);
     ctx.leave();
 }
-#line 2587 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2588 "dhcp6_parser.cc"
     break;
 
-  case 443:
-#line 1578 "dhcp6_parser.yy" // lalr1.cc:919
+  case 445:
+#line 1580 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("pd-pools", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.PD_POOLS);
 }
-#line 2598 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2599 "dhcp6_parser.cc"
     break;
 
-  case 444:
-#line 1583 "dhcp6_parser.yy" // lalr1.cc:919
+  case 446:
+#line 1585 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2607 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2608 "dhcp6_parser.cc"
     break;
 
-  case 449:
-#line 1598 "dhcp6_parser.yy" // lalr1.cc:919
+  case 451:
+#line 1600 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2617 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2618 "dhcp6_parser.cc"
     break;
 
-  case 450:
-#line 1602 "dhcp6_parser.yy" // lalr1.cc:919
+  case 452:
+#line 1604 "dhcp6_parser.yy"
     {
     // The prefix, prefix len and delegated len parameters are required.
     ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2625,21 +2626,21 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2629 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2630 "dhcp6_parser.cc"
     break;
 
-  case 451:
-#line 1610 "dhcp6_parser.yy" // lalr1.cc:919
+  case 453:
+#line 1612 "dhcp6_parser.yy"
     {
     // Parse the pd-pool list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2639 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2640 "dhcp6_parser.cc"
     break;
 
-  case 452:
-#line 1614 "dhcp6_parser.yy" // lalr1.cc:919
+  case 454:
+#line 1616 "dhcp6_parser.yy"
     {
     // The prefix, prefix len and delegated len parameters are required.
     ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -2647,544 +2648,544 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2651 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2652 "dhcp6_parser.cc"
     break;
 
-  case 466:
-#line 1639 "dhcp6_parser.yy" // lalr1.cc:919
+  case 468:
+#line 1641 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2659 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2660 "dhcp6_parser.cc"
     break;
 
-  case 467:
-#line 1641 "dhcp6_parser.yy" // lalr1.cc:919
+  case 469:
+#line 1643 "dhcp6_parser.yy"
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix", prf);
     ctx.leave();
 }
-#line 2669 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2670 "dhcp6_parser.cc"
     break;
 
-  case 468:
-#line 1647 "dhcp6_parser.yy" // lalr1.cc:919
+  case 470:
+#line 1649 "dhcp6_parser.yy"
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix-len", prf);
 }
-#line 2678 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2679 "dhcp6_parser.cc"
     break;
 
-  case 469:
-#line 1652 "dhcp6_parser.yy" // lalr1.cc:919
+  case 471:
+#line 1654 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2686 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2687 "dhcp6_parser.cc"
     break;
 
-  case 470:
-#line 1654 "dhcp6_parser.yy" // lalr1.cc:919
+  case 472:
+#line 1656 "dhcp6_parser.yy"
     {
     ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix", prf);
     ctx.leave();
 }
-#line 2696 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2697 "dhcp6_parser.cc"
     break;
 
-  case 471:
-#line 1660 "dhcp6_parser.yy" // lalr1.cc:919
+  case 473:
+#line 1662 "dhcp6_parser.yy"
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix-len", prf);
 }
-#line 2705 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2706 "dhcp6_parser.cc"
     break;
 
-  case 472:
-#line 1665 "dhcp6_parser.yy" // lalr1.cc:919
+  case 474:
+#line 1667 "dhcp6_parser.yy"
     {
     ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("delegated-len", deleg);
 }
-#line 2714 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2715 "dhcp6_parser.cc"
     break;
 
-  case 473:
-#line 1673 "dhcp6_parser.yy" // lalr1.cc:919
+  case 475:
+#line 1675 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("reservations", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.RESERVATIONS);
 }
-#line 2725 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2726 "dhcp6_parser.cc"
     break;
 
-  case 474:
-#line 1678 "dhcp6_parser.yy" // lalr1.cc:919
+  case 476:
+#line 1680 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2734 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2735 "dhcp6_parser.cc"
     break;
 
-  case 479:
-#line 1691 "dhcp6_parser.yy" // lalr1.cc:919
+  case 481:
+#line 1693 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2744 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2745 "dhcp6_parser.cc"
     break;
 
-  case 480:
-#line 1695 "dhcp6_parser.yy" // lalr1.cc:919
+  case 482:
+#line 1697 "dhcp6_parser.yy"
     {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 2753 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2754 "dhcp6_parser.cc"
     break;
 
-  case 481:
-#line 1700 "dhcp6_parser.yy" // lalr1.cc:919
+  case 483:
+#line 1702 "dhcp6_parser.yy"
     {
     // Parse the reservations list entry map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2763 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2764 "dhcp6_parser.cc"
     break;
 
-  case 482:
-#line 1704 "dhcp6_parser.yy" // lalr1.cc:919
+  case 484:
+#line 1706 "dhcp6_parser.yy"
     {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 2772 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2773 "dhcp6_parser.cc"
     break;
 
-  case 498:
-#line 1731 "dhcp6_parser.yy" // lalr1.cc:919
+  case 500:
+#line 1733 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-addresses", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2783 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2784 "dhcp6_parser.cc"
     break;
 
-  case 499:
-#line 1736 "dhcp6_parser.yy" // lalr1.cc:919
+  case 501:
+#line 1738 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2792 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2793 "dhcp6_parser.cc"
     break;
 
-  case 500:
-#line 1741 "dhcp6_parser.yy" // lalr1.cc:919
+  case 502:
+#line 1743 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefixes", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2803 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2804 "dhcp6_parser.cc"
     break;
 
-  case 501:
-#line 1746 "dhcp6_parser.yy" // lalr1.cc:919
+  case 503:
+#line 1748 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2812 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2813 "dhcp6_parser.cc"
     break;
 
-  case 502:
-#line 1751 "dhcp6_parser.yy" // lalr1.cc:919
+  case 504:
+#line 1753 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2820 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2821 "dhcp6_parser.cc"
     break;
 
-  case 503:
-#line 1753 "dhcp6_parser.yy" // lalr1.cc:919
+  case 505:
+#line 1755 "dhcp6_parser.yy"
     {
     ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("duid", d);
     ctx.leave();
 }
-#line 2830 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2831 "dhcp6_parser.cc"
     break;
 
-  case 504:
-#line 1759 "dhcp6_parser.yy" // lalr1.cc:919
+  case 506:
+#line 1761 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2838 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2839 "dhcp6_parser.cc"
     break;
 
-  case 505:
-#line 1761 "dhcp6_parser.yy" // lalr1.cc:919
+  case 507:
+#line 1763 "dhcp6_parser.yy"
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hw-address", hw);
     ctx.leave();
 }
-#line 2848 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2849 "dhcp6_parser.cc"
     break;
 
-  case 506:
-#line 1767 "dhcp6_parser.yy" // lalr1.cc:919
+  case 508:
+#line 1769 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2856 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2857 "dhcp6_parser.cc"
     break;
 
-  case 507:
-#line 1769 "dhcp6_parser.yy" // lalr1.cc:919
+  case 509:
+#line 1771 "dhcp6_parser.yy"
     {
     ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hostname", host);
     ctx.leave();
 }
-#line 2866 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2867 "dhcp6_parser.cc"
     break;
 
-  case 508:
-#line 1775 "dhcp6_parser.yy" // lalr1.cc:919
+  case 510:
+#line 1777 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2874 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2875 "dhcp6_parser.cc"
     break;
 
-  case 509:
-#line 1777 "dhcp6_parser.yy" // lalr1.cc:919
+  case 511:
+#line 1779 "dhcp6_parser.yy"
     {
     ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flex-id", hw);
     ctx.leave();
 }
-#line 2884 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2885 "dhcp6_parser.cc"
     break;
 
-  case 510:
-#line 1783 "dhcp6_parser.yy" // lalr1.cc:919
+  case 512:
+#line 1785 "dhcp6_parser.yy"
     {
     ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", c);
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2895 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2896 "dhcp6_parser.cc"
     break;
 
-  case 511:
-#line 1788 "dhcp6_parser.yy" // lalr1.cc:919
+  case 513:
+#line 1790 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2904 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2905 "dhcp6_parser.cc"
     break;
 
-  case 512:
-#line 1796 "dhcp6_parser.yy" // lalr1.cc:919
+  case 514:
+#line 1798 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("relay", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.RELAY);
 }
-#line 2915 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2916 "dhcp6_parser.cc"
     break;
 
-  case 513:
-#line 1801 "dhcp6_parser.yy" // lalr1.cc:919
+  case 515:
+#line 1803 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2924 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2925 "dhcp6_parser.cc"
     break;
 
-  case 516:
-#line 1810 "dhcp6_parser.yy" // lalr1.cc:919
+  case 518:
+#line 1812 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2932 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2933 "dhcp6_parser.cc"
     break;
 
-  case 517:
-#line 1812 "dhcp6_parser.yy" // lalr1.cc:919
+  case 519:
+#line 1814 "dhcp6_parser.yy"
     {
     ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ip-address", addr);
     ctx.leave();
 }
-#line 2942 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2943 "dhcp6_parser.cc"
     break;
 
-  case 518:
-#line 1821 "dhcp6_parser.yy" // lalr1.cc:919
+  case 520:
+#line 1823 "dhcp6_parser.yy"
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("client-classes", l);
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CLIENT_CLASSES);
 }
-#line 2953 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2954 "dhcp6_parser.cc"
     break;
 
-  case 519:
-#line 1826 "dhcp6_parser.yy" // lalr1.cc:919
+  case 521:
+#line 1828 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2962 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2963 "dhcp6_parser.cc"
     break;
 
-  case 522:
-#line 1835 "dhcp6_parser.yy" // lalr1.cc:919
+  case 524:
+#line 1837 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2972 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2973 "dhcp6_parser.cc"
     break;
 
-  case 523:
-#line 1839 "dhcp6_parser.yy" // lalr1.cc:919
+  case 525:
+#line 1841 "dhcp6_parser.yy"
     {
     // The name client class parameter is required.
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2982 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2983 "dhcp6_parser.cc"
     break;
 
-  case 536:
-#line 1864 "dhcp6_parser.yy" // lalr1.cc:919
+  case 538:
+#line 1866 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2990 "dhcp6_parser.cc" // lalr1.cc:919
+#line 2991 "dhcp6_parser.cc"
     break;
 
-  case 537:
-#line 1866 "dhcp6_parser.yy" // lalr1.cc:919
+  case 539:
+#line 1868 "dhcp6_parser.yy"
     {
     ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("test", test);
     ctx.leave();
 }
-#line 3000 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3001 "dhcp6_parser.cc"
     break;
 
-  case 538:
-#line 1872 "dhcp6_parser.yy" // lalr1.cc:919
+  case 540:
+#line 1874 "dhcp6_parser.yy"
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("only-if-required", b);
 }
-#line 3009 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3010 "dhcp6_parser.cc"
     break;
 
-  case 539:
-#line 1880 "dhcp6_parser.yy" // lalr1.cc:919
+  case 541:
+#line 1882 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-id", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SERVER_ID);
 }
-#line 3020 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3021 "dhcp6_parser.cc"
     break;
 
-  case 540:
-#line 1885 "dhcp6_parser.yy" // lalr1.cc:919
+  case 542:
+#line 1887 "dhcp6_parser.yy"
     {
     // The type parameter is required.
     ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3031 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3032 "dhcp6_parser.cc"
     break;
 
-  case 552:
-#line 1907 "dhcp6_parser.yy" // lalr1.cc:919
+  case 554:
+#line 1909 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.DUID_TYPE);
 }
-#line 3039 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3040 "dhcp6_parser.cc"
     break;
 
-  case 553:
-#line 1909 "dhcp6_parser.yy" // lalr1.cc:919
+  case 555:
+#line 1911 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3048 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3049 "dhcp6_parser.cc"
     break;
 
-  case 554:
-#line 1914 "dhcp6_parser.yy" // lalr1.cc:919
+  case 556:
+#line 1916 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
-#line 3054 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3055 "dhcp6_parser.cc"
     break;
 
-  case 555:
-#line 1915 "dhcp6_parser.yy" // lalr1.cc:919
+  case 557:
+#line 1917 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
-#line 3060 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3061 "dhcp6_parser.cc"
     break;
 
-  case 556:
-#line 1916 "dhcp6_parser.yy" // lalr1.cc:919
+  case 558:
+#line 1918 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
-#line 3066 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3067 "dhcp6_parser.cc"
     break;
 
-  case 557:
-#line 1919 "dhcp6_parser.yy" // lalr1.cc:919
+  case 559:
+#line 1921 "dhcp6_parser.yy"
     {
     ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("htype", htype);
 }
-#line 3075 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3076 "dhcp6_parser.cc"
     break;
 
-  case 558:
-#line 1924 "dhcp6_parser.yy" // lalr1.cc:919
+  case 560:
+#line 1926 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3083 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3084 "dhcp6_parser.cc"
     break;
 
-  case 559:
-#line 1926 "dhcp6_parser.yy" // lalr1.cc:919
+  case 561:
+#line 1928 "dhcp6_parser.yy"
     {
     ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("identifier", id);
     ctx.leave();
 }
-#line 3093 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3094 "dhcp6_parser.cc"
     break;
 
-  case 560:
-#line 1932 "dhcp6_parser.yy" // lalr1.cc:919
+  case 562:
+#line 1934 "dhcp6_parser.yy"
     {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("time", time);
 }
-#line 3102 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3103 "dhcp6_parser.cc"
     break;
 
-  case 561:
-#line 1937 "dhcp6_parser.yy" // lalr1.cc:919
+  case 563:
+#line 1939 "dhcp6_parser.yy"
     {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enterprise-id", time);
 }
-#line 3111 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3112 "dhcp6_parser.cc"
     break;
 
-  case 562:
-#line 1944 "dhcp6_parser.yy" // lalr1.cc:919
+  case 564:
+#line 1946 "dhcp6_parser.yy"
     {
     ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
 }
-#line 3120 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3121 "dhcp6_parser.cc"
     break;
 
-  case 563:
-#line 1951 "dhcp6_parser.yy" // lalr1.cc:919
+  case 565:
+#line 1953 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("control-socket", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.CONTROL_SOCKET);
 }
-#line 3131 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3132 "dhcp6_parser.cc"
     break;
 
-  case 564:
-#line 1956 "dhcp6_parser.yy" // lalr1.cc:919
+  case 566:
+#line 1958 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3140 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3141 "dhcp6_parser.cc"
     break;
 
-  case 572:
-#line 1972 "dhcp6_parser.yy" // lalr1.cc:919
+  case 574:
+#line 1974 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3148 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3149 "dhcp6_parser.cc"
     break;
 
-  case 573:
-#line 1974 "dhcp6_parser.yy" // lalr1.cc:919
+  case 575:
+#line 1976 "dhcp6_parser.yy"
     {
     ElementPtr stype(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
     ctx.leave();
 }
-#line 3158 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3159 "dhcp6_parser.cc"
     break;
 
-  case 574:
-#line 1980 "dhcp6_parser.yy" // lalr1.cc:919
+  case 576:
+#line 1982 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3166 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3167 "dhcp6_parser.cc"
     break;
 
-  case 575:
-#line 1982 "dhcp6_parser.yy" // lalr1.cc:919
+  case 577:
+#line 1984 "dhcp6_parser.yy"
     {
     ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
     ctx.leave();
 }
-#line 3176 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3177 "dhcp6_parser.cc"
     break;
 
-  case 576:
-#line 1990 "dhcp6_parser.yy" // lalr1.cc:919
+  case 578:
+#line 1992 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3184 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3185 "dhcp6_parser.cc"
     break;
 
-  case 577:
-#line 1992 "dhcp6_parser.yy" // lalr1.cc:919
+  case 579:
+#line 1994 "dhcp6_parser.yy"
     {
     ElementPtr qc = yystack_[0].value.as < ElementPtr > ();
     ctx.stack_.back()->set("dhcp-queue-control", qc);
@@ -3220,626 +3221,627 @@ namespace isc { namespace dhcp {
 
     ctx.leave();
 }
-#line 3224 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3225 "dhcp6_parser.cc"
     break;
 
-  case 578:
-#line 2030 "dhcp6_parser.yy" // lalr1.cc:919
+  case 580:
+#line 2032 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 3235 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3236 "dhcp6_parser.cc"
     break;
 
-  case 579:
-#line 2035 "dhcp6_parser.yy" // lalr1.cc:919
+  case 581:
+#line 2037 "dhcp6_parser.yy"
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3246 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3247 "dhcp6_parser.cc"
     break;
 
-  case 580:
-#line 2042 "dhcp6_parser.yy" // lalr1.cc:919
+  case 582:
+#line 2044 "dhcp6_parser.yy"
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3256 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3257 "dhcp6_parser.cc"
     break;
 
-  case 581:
-#line 2046 "dhcp6_parser.yy" // lalr1.cc:919
+  case 583:
+#line 2048 "dhcp6_parser.yy"
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 3266 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3267 "dhcp6_parser.cc"
     break;
 
-  case 602:
-#line 2076 "dhcp6_parser.yy" // lalr1.cc:919
+  case 604:
+#line 2078 "dhcp6_parser.yy"
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 3275 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3276 "dhcp6_parser.cc"
     break;
 
-  case 603:
-#line 2081 "dhcp6_parser.yy" // lalr1.cc:919
+  case 605:
+#line 2083 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3283 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3284 "dhcp6_parser.cc"
     break;
 
-  case 604:
-#line 2083 "dhcp6_parser.yy" // lalr1.cc:919
+  case 606:
+#line 2085 "dhcp6_parser.yy"
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 3293 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3294 "dhcp6_parser.cc"
     break;
 
-  case 605:
-#line 2089 "dhcp6_parser.yy" // lalr1.cc:919
+  case 607:
+#line 2091 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3301 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3302 "dhcp6_parser.cc"
     break;
 
-  case 606:
-#line 2091 "dhcp6_parser.yy" // lalr1.cc:919
+  case 608:
+#line 2093 "dhcp6_parser.yy"
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
     ctx.leave();
 }
-#line 3311 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3312 "dhcp6_parser.cc"
     break;
 
-  case 607:
-#line 2097 "dhcp6_parser.yy" // lalr1.cc:919
+  case 609:
+#line 2099 "dhcp6_parser.yy"
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 3320 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3321 "dhcp6_parser.cc"
     break;
 
-  case 608:
-#line 2102 "dhcp6_parser.yy" // lalr1.cc:919
+  case 610:
+#line 2104 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3328 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3329 "dhcp6_parser.cc"
     break;
 
-  case 609:
-#line 2104 "dhcp6_parser.yy" // lalr1.cc:919
+  case 611:
+#line 2106 "dhcp6_parser.yy"
     {
     ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
     ctx.leave();
 }
-#line 3338 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3339 "dhcp6_parser.cc"
     break;
 
-  case 610:
-#line 2110 "dhcp6_parser.yy" // lalr1.cc:919
+  case 612:
+#line 2112 "dhcp6_parser.yy"
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 3347 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3348 "dhcp6_parser.cc"
     break;
 
-  case 611:
-#line 2115 "dhcp6_parser.yy" // lalr1.cc:919
+  case 613:
+#line 2117 "dhcp6_parser.yy"
     {
     ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 3356 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3357 "dhcp6_parser.cc"
     break;
 
-  case 612:
-#line 2120 "dhcp6_parser.yy" // lalr1.cc:919
+  case 614:
+#line 2122 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 3364 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3365 "dhcp6_parser.cc"
     break;
 
-  case 613:
-#line 2122 "dhcp6_parser.yy" // lalr1.cc:919
+  case 615:
+#line 2124 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3373 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3374 "dhcp6_parser.cc"
     break;
 
-  case 614:
-#line 2128 "dhcp6_parser.yy" // lalr1.cc:919
+  case 616:
+#line 2130 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 3379 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3380 "dhcp6_parser.cc"
     break;
 
-  case 615:
-#line 2129 "dhcp6_parser.yy" // lalr1.cc:919
+  case 617:
+#line 2131 "dhcp6_parser.yy"
     { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 3385 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3386 "dhcp6_parser.cc"
     break;
 
-  case 616:
-#line 2132 "dhcp6_parser.yy" // lalr1.cc:919
+  case 618:
+#line 2134 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 3393 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3394 "dhcp6_parser.cc"
     break;
 
-  case 617:
-#line 2134 "dhcp6_parser.yy" // lalr1.cc:919
+  case 619:
+#line 2136 "dhcp6_parser.yy"
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 3403 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3404 "dhcp6_parser.cc"
     break;
 
-  case 618:
-#line 2140 "dhcp6_parser.yy" // lalr1.cc:919
+  case 620:
+#line 2142 "dhcp6_parser.yy"
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 3412 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3413 "dhcp6_parser.cc"
     break;
 
-  case 619:
-#line 2145 "dhcp6_parser.yy" // lalr1.cc:919
+  case 621:
+#line 2147 "dhcp6_parser.yy"
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 3421 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3422 "dhcp6_parser.cc"
     break;
 
-  case 620:
-#line 2150 "dhcp6_parser.yy" // lalr1.cc:919
+  case 622:
+#line 2152 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3429 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3430 "dhcp6_parser.cc"
     break;
 
-  case 621:
-#line 2152 "dhcp6_parser.yy" // lalr1.cc:919
+  case 623:
+#line 2154 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3438 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3439 "dhcp6_parser.cc"
     break;
 
-  case 622:
-#line 2158 "dhcp6_parser.yy" // lalr1.cc:919
+  case 624:
+#line 2160 "dhcp6_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3446 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3447 "dhcp6_parser.cc"
     break;
 
-  case 623:
-#line 2161 "dhcp6_parser.yy" // lalr1.cc:919
+  case 625:
+#line 2163 "dhcp6_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3454 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3455 "dhcp6_parser.cc"
     break;
 
-  case 624:
-#line 2164 "dhcp6_parser.yy" // lalr1.cc:919
+  case 626:
+#line 2166 "dhcp6_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3462 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3463 "dhcp6_parser.cc"
     break;
 
-  case 625:
-#line 2167 "dhcp6_parser.yy" // lalr1.cc:919
+  case 627:
+#line 2169 "dhcp6_parser.yy"
     {
       yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3470 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3471 "dhcp6_parser.cc"
     break;
 
-  case 626:
-#line 2170 "dhcp6_parser.yy" // lalr1.cc:919
+  case 628:
+#line 2172 "dhcp6_parser.yy"
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3479 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3480 "dhcp6_parser.cc"
     break;
 
-  case 627:
-#line 2176 "dhcp6_parser.yy" // lalr1.cc:919
+  case 629:
+#line 2178 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3487 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3488 "dhcp6_parser.cc"
     break;
 
-  case 628:
-#line 2178 "dhcp6_parser.yy" // lalr1.cc:919
+  case 630:
+#line 2180 "dhcp6_parser.yy"
     {
     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 3497 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3498 "dhcp6_parser.cc"
     break;
 
-  case 629:
-#line 2184 "dhcp6_parser.yy" // lalr1.cc:919
+  case 631:
+#line 2186 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3505 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3506 "dhcp6_parser.cc"
     break;
 
-  case 630:
-#line 2186 "dhcp6_parser.yy" // lalr1.cc:919
+  case 632:
+#line 2188 "dhcp6_parser.yy"
     {
     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 3515 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3516 "dhcp6_parser.cc"
     break;
 
-  case 631:
-#line 2192 "dhcp6_parser.yy" // lalr1.cc:919
+  case 633:
+#line 2194 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3523 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3524 "dhcp6_parser.cc"
     break;
 
-  case 632:
-#line 2194 "dhcp6_parser.yy" // lalr1.cc:919
+  case 634:
+#line 2196 "dhcp6_parser.yy"
     {
     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 3533 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3534 "dhcp6_parser.cc"
     break;
 
-  case 633:
-#line 2202 "dhcp6_parser.yy" // lalr1.cc:919
+  case 635:
+#line 2204 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3541 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3542 "dhcp6_parser.cc"
     break;
 
-  case 634:
-#line 2204 "dhcp6_parser.yy" // lalr1.cc:919
+  case 636:
+#line 2206 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3550 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3551 "dhcp6_parser.cc"
     break;
 
-  case 635:
-#line 2209 "dhcp6_parser.yy" // lalr1.cc:919
+  case 637:
+#line 2211 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3558 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3559 "dhcp6_parser.cc"
     break;
 
-  case 636:
-#line 2211 "dhcp6_parser.yy" // lalr1.cc:919
+  case 638:
+#line 2213 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3567 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3568 "dhcp6_parser.cc"
     break;
 
-  case 637:
-#line 2216 "dhcp6_parser.yy" // lalr1.cc:919
+  case 639:
+#line 2218 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3575 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3576 "dhcp6_parser.cc"
     break;
 
-  case 638:
-#line 2218 "dhcp6_parser.yy" // lalr1.cc:919
+  case 640:
+#line 2220 "dhcp6_parser.yy"
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as < ElementPtr > ());
     ctx.leave();
 }
-#line 3584 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3585 "dhcp6_parser.cc"
     break;
 
-  case 639:
-#line 2225 "dhcp6_parser.yy" // lalr1.cc:919
+  case 641:
+#line 2227 "dhcp6_parser.yy"
     {
     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 3595 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3596 "dhcp6_parser.cc"
     break;
 
-  case 640:
-#line 2230 "dhcp6_parser.yy" // lalr1.cc:919
+  case 642:
+#line 2232 "dhcp6_parser.yy"
     {
     // No config control params are required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3605 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3606 "dhcp6_parser.cc"
     break;
 
-  case 641:
-#line 2236 "dhcp6_parser.yy" // lalr1.cc:919
+  case 643:
+#line 2238 "dhcp6_parser.yy"
     {
     // Parse the config-control map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3615 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3616 "dhcp6_parser.cc"
     break;
 
-  case 642:
-#line 2240 "dhcp6_parser.yy" // lalr1.cc:919
+  case 644:
+#line 2242 "dhcp6_parser.yy"
     {
     // No config_control params are required
     // parsing completed
 }
-#line 3624 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3625 "dhcp6_parser.cc"
     break;
 
-  case 647:
-#line 2255 "dhcp6_parser.yy" // lalr1.cc:919
+  case 649:
+#line 2257 "dhcp6_parser.yy"
     {
     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 3635 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3636 "dhcp6_parser.cc"
     break;
 
-  case 648:
-#line 2260 "dhcp6_parser.yy" // lalr1.cc:919
+  case 650:
+#line 2262 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3644 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3645 "dhcp6_parser.cc"
     break;
 
-  case 649:
-#line 2265 "dhcp6_parser.yy" // lalr1.cc:919
+  case 651:
+#line 2267 "dhcp6_parser.yy"
     {
     ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("config-fetch-wait-time", value);
 }
-#line 3653 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3654 "dhcp6_parser.cc"
     break;
 
-  case 650:
-#line 2275 "dhcp6_parser.yy" // lalr1.cc:919
+  case 652:
+#line 2277 "dhcp6_parser.yy"
     {
     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 3664 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3665 "dhcp6_parser.cc"
     break;
 
-  case 651:
-#line 2280 "dhcp6_parser.yy" // lalr1.cc:919
+  case 653:
+#line 2282 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3673 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3674 "dhcp6_parser.cc"
     break;
 
-  case 652:
-#line 2285 "dhcp6_parser.yy" // lalr1.cc:919
+  case 654:
+#line 2287 "dhcp6_parser.yy"
     {
     // Parse the Logging map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 3683 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3684 "dhcp6_parser.cc"
     break;
 
-  case 653:
-#line 2289 "dhcp6_parser.yy" // lalr1.cc:919
+  case 655:
+#line 2291 "dhcp6_parser.yy"
     {
     // parsing completed
 }
-#line 3691 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3692 "dhcp6_parser.cc"
     break;
 
-  case 657:
-#line 2305 "dhcp6_parser.yy" // lalr1.cc:919
+  case 659:
+#line 2307 "dhcp6_parser.yy"
     {
     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 3702 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3703 "dhcp6_parser.cc"
     break;
 
-  case 658:
-#line 2310 "dhcp6_parser.yy" // lalr1.cc:919
+  case 660:
+#line 2312 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3711 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3712 "dhcp6_parser.cc"
     break;
 
-  case 661:
-#line 2322 "dhcp6_parser.yy" // lalr1.cc:919
+  case 663:
+#line 2324 "dhcp6_parser.yy"
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3721 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3722 "dhcp6_parser.cc"
     break;
 
-  case 662:
-#line 2326 "dhcp6_parser.yy" // lalr1.cc:919
+  case 664:
+#line 2328 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 3729 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3730 "dhcp6_parser.cc"
     break;
 
-  case 672:
-#line 2343 "dhcp6_parser.yy" // lalr1.cc:919
+  case 674:
+#line 2345 "dhcp6_parser.yy"
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 3738 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3739 "dhcp6_parser.cc"
     break;
 
-  case 673:
-#line 2348 "dhcp6_parser.yy" // lalr1.cc:919
+  case 675:
+#line 2350 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3746 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3747 "dhcp6_parser.cc"
     break;
 
-  case 674:
-#line 2350 "dhcp6_parser.yy" // lalr1.cc:919
+  case 676:
+#line 2352 "dhcp6_parser.yy"
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
     ctx.leave();
 }
-#line 3756 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3757 "dhcp6_parser.cc"
     break;
 
-  case 675:
-#line 2356 "dhcp6_parser.yy" // lalr1.cc:919
+  case 677:
+#line 2358 "dhcp6_parser.yy"
     {
     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 3767 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3768 "dhcp6_parser.cc"
     break;
 
-  case 676:
-#line 2361 "dhcp6_parser.yy" // lalr1.cc:919
+  case 678:
+#line 2363 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3776 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3777 "dhcp6_parser.cc"
     break;
 
-  case 679:
-#line 2370 "dhcp6_parser.yy" // lalr1.cc:919
+  case 681:
+#line 2372 "dhcp6_parser.yy"
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3786 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3787 "dhcp6_parser.cc"
     break;
 
-  case 680:
-#line 2374 "dhcp6_parser.yy" // lalr1.cc:919
+  case 682:
+#line 2376 "dhcp6_parser.yy"
     {
     ctx.stack_.pop_back();
 }
-#line 3794 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3795 "dhcp6_parser.cc"
     break;
 
-  case 687:
-#line 2388 "dhcp6_parser.yy" // lalr1.cc:919
+  case 689:
+#line 2390 "dhcp6_parser.yy"
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3802 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3803 "dhcp6_parser.cc"
     break;
 
-  case 688:
-#line 2390 "dhcp6_parser.yy" // lalr1.cc:919
+  case 690:
+#line 2392 "dhcp6_parser.yy"
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
     ctx.leave();
 }
-#line 3812 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3813 "dhcp6_parser.cc"
     break;
 
-  case 689:
-#line 2396 "dhcp6_parser.yy" // lalr1.cc:919
+  case 691:
+#line 2398 "dhcp6_parser.yy"
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3821 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3822 "dhcp6_parser.cc"
     break;
 
-  case 690:
-#line 2401 "dhcp6_parser.yy" // lalr1.cc:919
+  case 692:
+#line 2403 "dhcp6_parser.yy"
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 3830 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3831 "dhcp6_parser.cc"
     break;
 
-  case 691:
-#line 2406 "dhcp6_parser.yy" // lalr1.cc:919
+  case 693:
+#line 2408 "dhcp6_parser.yy"
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 3839 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3840 "dhcp6_parser.cc"
     break;
 
 
-#line 3843 "dhcp6_parser.cc" // lalr1.cc:919
+#line 3844 "dhcp6_parser.cc"
+
             default:
               break;
             }
@@ -4109,126 +4111,126 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short Dhcp6Parser::yypact_ninf_ = -864;
+  const short Dhcp6Parser::yypact_ninf_ = -855;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short
   Dhcp6Parser::yypact_[] =
   {
-     356,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,    43,    35,    51,   112,
-     118,   120,   128,   140,   163,   178,   191,   194,   201,   231,
-     233,   235,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,    35,   -94,    23,   175,    32,    64,   202,   108,
-     386,   200,    59,   278,   -54,   364,   104,   143,  -864,   251,
-     266,   276,   273,   285,  -864,  -864,  -864,  -864,  -864,   299,
-    -864,   126,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,   303,   313,   320,   323,   324,   337,
-     343,   349,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,   351,
-    -864,  -864,  -864,  -864,  -864,   141,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,   352,  -864,   157,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,   355,   363,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-     164,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,   236,  -864,  -864,  -864,  -864,  -864,   370,  -864,
-     371,   381,  -864,  -864,  -864,  -864,  -864,  -864,   268,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,   394,   406,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,   404,  -864,  -864,   385,
-    -864,  -864,  -864,   422,  -864,  -864,   420,   435,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,   438,   448,  -864,  -864,  -864,  -864,   445,   453,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,   269,  -864,  -864,  -864,   462,  -864,  -864,   467,  -864,
-     468,   469,  -864,  -864,   471,   473,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,   275,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-     283,  -864,  -864,  -864,   474,   284,  -864,  -864,  -864,  -864,
-      35,    35,  -864,   280,   475,   476,   477,   484,   485,  -864,
-      23,  -864,   486,   487,   501,   502,   503,   504,   331,   332,
-     333,   336,   357,   359,   360,   358,   529,   530,   536,   539,
-     540,   541,   542,   543,   544,   546,   547,   548,   549,   550,
-     551,   552,   553,   384,   554,   555,   557,   560,   175,  -864,
-     561,   392,    32,  -864,   562,   565,   567,   569,   570,   397,
-     396,   573,   574,   575,    64,  -864,   576,   202,  -864,   577,
-     405,   578,   409,   411,   108,  -864,   580,   586,   587,   588,
-     589,   590,   591,  -864,   386,  -864,   592,   593,   425,   594,
-     596,   598,   426,  -864,    59,   600,   427,   428,  -864,   278,
-     601,   605,    86,  -864,   430,   607,   608,   436,   609,   437,
-     439,   612,   614,   440,   442,   615,   619,   620,   621,   364,
-    -864,   104,  -864,   624,   452,   143,  -864,  -864,  -864,   627,
-     625,   626,    35,    35,    35,  -864,   457,   628,   629,   630,
-     631,   634,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-     463,   636,   637,   638,   639,   470,   380,   640,   643,   644,
-     645,   646,   647,   649,   650,   651,   652,  -864,   653,   639,
-     654,   657,  -864,   658,  -864,  -864,   659,   660,   479,   480,
-     489,  -864,  -864,   658,   490,   661,  -864,   492,  -864,   493,
-    -864,   494,  -864,  -864,  -864,   658,   658,   658,   495,   496,
-     497,   498,  -864,   499,   500,  -864,   505,   506,   507,  -864,
-    -864,   508,  -864,  -864,  -864,   509,    35,  -864,  -864,   510,
-     511,  -864,   512,  -864,  -864,    75,   535,  -864,  -864,   185,
-     513,   514,   515,  -864,  -864,   674,  -864,  -864,    35,   175,
-     104,  -864,  -864,  -864,  -864,   143,    32,    60,    60,   673,
-    -864,   686,   687,   688,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,   689,   -53,    35,   366,   610,   690,   691,   693,
-     122,   131,    81,  -864,   364,   694,  -864,  -864,   695,   696,
-    -864,  -864,  -864,  -864,  -864,    30,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-     673,  -864,   287,   291,   297,   301,  -864,  -864,  -864,  -864,
-     677,   700,   701,   702,   703,  -864,   704,   705,  -864,  -864,
-    -864,   706,   707,   708,  -864,   315,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,   317,  -864,   709,   641,
-    -864,  -864,   710,   648,  -864,  -864,   711,   715,  -864,  -864,
-     713,   717,  -864,  -864,   716,   718,  -864,  -864,  -864,    63,
-    -864,  -864,  -864,   719,  -864,  -864,  -864,    76,  -864,  -864,
-    -864,  -864,   346,  -864,  -864,  -864,   100,  -864,  -864,   720,
-     721,  -864,  -864,   722,   724,  -864,   725,   726,   727,   728,
-     729,   730,   354,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,   731,   732,   733,  -864,  -864,  -864,  -864,   365,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,   369,  -864,  -864,  -864,   379,  -864,   142,  -864,   537,
-    -864,   734,   735,  -864,  -864,   736,   738,  -864,  -864,  -864,
-     737,  -864,   740,  -864,  -864,  -864,  -864,   739,   743,   744,
-     745,   545,   533,   566,   559,   572,   747,   579,   581,   748,
-     749,   750,   582,   583,   584,    60,  -864,  -864,    60,  -864,
-     673,    64,  -864,   686,    59,  -864,   687,   278,  -864,   688,
-     267,  -864,   689,   -53,  -864,  -864,   366,  -864,   751,   610,
-    -864,    96,   690,  -864,   386,  -864,   691,   -54,  -864,   693,
-     585,   595,   597,   599,   602,   603,   122,  -864,   752,   754,
-     604,   606,   611,   131,  -864,   758,   761,    81,  -864,  -864,
-      91,   694,  -864,  -864,   760,   764,   202,  -864,   695,   108,
-    -864,   696,   765,  -864,  -864,   423,   613,   616,   617,  -864,
-    -864,  -864,  -864,  -864,   618,  -864,  -864,   622,   635,   642,
-    -864,  -864,  -864,  -864,   383,  -864,   389,  -864,   762,  -864,
-     763,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,   391,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,   667,  -864,  -864,
-     768,  -864,  -864,  -864,  -864,  -864,   766,   773,  -864,  -864,
-    -864,  -864,  -864,   770,  -864,   402,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,   353,   670,  -864,  -864,  -864,  -864,
-     671,   676,  -864,  -864,   775,  -864,  -864,  -864,  -864,  -864,
-     403,  -864,  -864,  -864,  -864,  -864,  -864,   681,   413,  -864,
-     417,  -864,   692,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,   267,
-    -864,  -864,   779,   698,  -864,    96,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,   781,   633,   782,    91,  -864,
-    -864,  -864,  -864,  -864,  -864,   712,  -864,  -864,   783,  -864,
-     723,  -864,  -864,   780,  -864,  -864,   168,  -864,  -103,   780,
-    -864,  -864,   787,   788,   792,   424,  -864,  -864,  -864,  -864,
-    -864,  -864,   794,   714,   697,   741,  -103,  -864,   753,  -864,
-    -864,  -864,  -864,  -864
+     317,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,    46,    70,    63,    65,
+      71,   100,   169,   170,   201,   212,   217,   245,   270,   271,
+     280,   298,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,    70,   -33,    32,    74,    27,   216,   249,   229,
+     377,   149,    76,   398,   -10,   391,   105,   138,  -855,   252,
+     303,   311,   305,   313,  -855,  -855,  -855,  -855,  -855,   321,
+    -855,    37,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,   322,   330,   331,   343,   347,   351,
+     365,   367,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,   368,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,    73,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,   375,  -855,
+     127,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,   385,   397,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,   133,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,   137,  -855,  -855,  -855,
+    -855,  -855,   407,  -855,   428,   438,  -855,  -855,  -855,  -855,
+    -855,  -855,   160,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+     346,   378,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+     440,  -855,  -855,   442,  -855,  -855,  -855,   447,  -855,  -855,
+     451,   457,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,   461,   462,  -855,  -855,  -855,
+    -855,   460,   466,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,   171,  -855,  -855,  -855,   468,
+    -855,  -855,   490,  -855,   491,   492,  -855,  -855,   493,   494,
+    -855,  -855,  -855,  -855,  -855,   172,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,   181,  -855,  -855,  -855,   495,   182,  -855,  -855,
+    -855,  -855,    70,    70,  -855,   323,   497,   498,   499,   500,
+     501,  -855,    32,  -855,   502,   504,   507,   508,   509,   510,
+     337,   339,   340,   356,   336,   354,   357,   360,   531,   537,
+     538,   539,   544,   545,   546,   547,   548,   549,   551,   552,
+     553,   554,   555,   556,   557,   384,   559,   562,   563,   567,
+     570,   572,    74,  -855,   573,   399,    27,  -855,   574,   576,
+     577,   578,   579,   406,   405,   582,   583,   584,   216,  -855,
+     588,   249,  -855,   590,   418,   593,   420,   421,   229,  -855,
+     596,   597,   598,   599,   600,   601,   602,  -855,   377,  -855,
+     603,   604,   431,   606,   607,   608,   433,  -855,    76,   612,
+     439,   441,  -855,   398,   614,   616,   -18,  -855,   443,   618,
+     620,   448,   621,   449,   450,   625,   626,   452,   453,   630,
+     631,   391,  -855,   105,  -855,   632,   459,   138,  -855,  -855,
+    -855,   634,   633,   635,    70,    70,    70,  -855,   464,   636,
+     637,   638,   639,   642,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,   471,   644,   645,   647,   646,   477,    33,   650,
+     651,   652,   653,   654,   655,   657,   658,   659,   660,  -855,
+     661,   646,   662,   482,   487,   665,  -855,   666,  -855,  -855,
+     667,   668,   488,   503,   505,  -855,  -855,   666,   506,   669,
+    -855,   511,  -855,   512,  -855,   513,  -855,  -855,  -855,   666,
+     666,   666,   514,   515,   516,   517,  -855,   518,   519,  -855,
+     520,   521,   522,  -855,  -855,   523,  -855,  -855,  -855,   524,
+      70,  -855,  -855,   525,   526,  -855,   527,  -855,  -855,    24,
+     496,  -855,  -855,    26,   528,  -855,  -855,   670,  -855,  -855,
+      70,    74,   105,  -855,  -855,  -855,  -855,   138,    27,   200,
+     200,   671,  -855,   672,   674,   677,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,   678,   -27,    70,   324,   585,   679,
+     680,   699,   163,    36,    18,  -855,   391,  -855,  -855,   700,
+    -855,  -855,   701,   702,  -855,  -855,  -855,  -855,  -855,   -44,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,   671,  -855,   191,   195,   202,   208,  -855,  -855,
+    -855,  -855,   673,   706,   707,   708,   709,  -855,   710,   711,
+    -855,  -855,  -855,   712,   713,   714,  -855,   276,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,   278,  -855,
+     715,   716,  -855,  -855,   717,   719,  -855,  -855,   718,   722,
+    -855,  -855,   720,   724,  -855,  -855,   723,   725,  -855,  -855,
+    -855,   126,  -855,  -855,  -855,   726,  -855,  -855,  -855,   180,
+    -855,  -855,  -855,  -855,   301,  -855,  -855,  -855,   214,  -855,
+    -855,   727,   728,  -855,  -855,   729,   731,  -855,   732,   733,
+     734,   735,   736,   737,   309,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,   738,   739,   740,  -855,  -855,  -855,
+    -855,   316,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,   334,  -855,  -855,  -855,   338,  -855,   251,
+    -855,   543,  -855,   741,   742,  -855,  -855,   743,   745,  -855,
+    -855,  -855,   744,  -855,   747,  -855,  -855,  -855,  -855,   746,
+     750,   751,   752,   568,   550,   580,   571,   581,   753,   586,
+     587,   756,   757,   758,   589,   591,   592,   200,  -855,  -855,
+     200,  -855,   671,   216,  -855,   672,    76,  -855,   674,   398,
+    -855,   677,   284,  -855,   678,   -27,  -855,  -855,   324,  -855,
+     759,   585,  -855,    10,   679,  -855,   377,  -855,   680,   -10,
+    -855,   699,   595,   605,   609,   610,   611,   613,   163,  -855,
+     762,   764,   615,   617,   619,    36,  -855,   766,   767,    18,
+    -855,  -855,   355,   700,  -855,  -855,   768,   772,   249,  -855,
+     701,   229,  -855,   702,   773,  -855,  -855,   221,   623,   624,
+     627,  -855,  -855,  -855,  -855,  -855,   629,  -855,  -855,   640,
+     641,   675,  -855,  -855,  -855,  -855,   341,  -855,   342,  -855,
+     770,  -855,   771,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+     350,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,   686,
+    -855,  -855,   776,  -855,  -855,  -855,  -855,  -855,   774,   778,
+    -855,  -855,  -855,  -855,  -855,   777,  -855,   358,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,   318,   697,  -855,  -855,
+    -855,  -855,   703,   704,  -855,  -855,   780,  -855,  -855,  -855,
+    -855,  -855,   362,  -855,  -855,  -855,  -855,  -855,  -855,   705,
+     379,  -855,   388,  -855,   721,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,   284,  -855,  -855,   782,   648,  -855,    10,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,   786,   643,   788,
+     355,  -855,  -855,  -855,  -855,  -855,  -855,   730,  -855,  -855,
+     789,  -855,   748,  -855,  -855,   769,  -855,  -855,   263,  -855,
+     -52,   769,  -855,  -855,   792,   794,   803,   400,  -855,  -855,
+    -855,  -855,  -855,  -855,   805,   749,   656,   754,   -52,  -855,
+     760,  -855,  -855,  -855,  -855,  -855
   };
 
   const unsigned short
@@ -4238,160 +4240,160 @@ namespace isc { namespace dhcp {
       20,    22,    24,    26,    28,    30,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     1,    47,    40,    36,    35,    32,    33,    34,
-      39,     3,    37,    38,    60,     5,    72,     7,   127,     9,
-     274,    11,   426,    13,   451,    15,   481,    17,   351,    19,
-     359,    21,   396,    23,   239,    25,   580,    27,   652,    29,
-     641,    31,    49,    43,     0,     0,     0,     0,     0,     0,
-     483,     0,   361,   398,     0,     0,     0,     0,    51,     0,
-      50,     0,     0,    44,    70,   650,   633,   635,   637,     0,
-      69,     0,    62,    64,    66,    67,    68,    65,   113,   639,
-     125,   139,   141,   143,     0,     0,     0,     0,     0,     0,
-       0,     0,   123,   266,   349,   388,   439,   441,   311,   319,
-     212,   229,   220,   205,   518,   473,   231,   250,   539,     0,
-     563,   576,   578,   657,   112,     0,    74,    76,    77,    78,
-      79,    80,   108,   109,   110,    81,   106,    84,    85,    86,
-      87,   103,    88,    90,    89,    94,    95,    82,   107,    83,
-      92,    93,   101,   102,   104,    91,    96,    97,    98,    99,
-     100,   105,   111,   136,     0,   135,     0,   129,   131,   132,
-     133,   134,   418,   443,   301,   303,   305,     0,     0,   309,
-     307,   512,   300,   278,   279,   280,   281,   297,   298,   299,
-       0,   276,   285,   286,   287,   290,   291,   293,   288,   289,
-     282,   283,   295,   296,   284,   292,   294,   437,   436,   432,
-     433,   431,     0,   428,   430,   434,   435,   466,     0,   469,
-       0,     0,   465,   459,   460,   458,   463,   464,     0,   453,
-     455,   456,   461,   462,   457,   510,   498,   500,   502,   504,
-     506,   508,   497,   494,   495,   496,     0,   484,   485,   489,
-     490,   487,   491,   492,   493,   488,     0,   378,   186,     0,
-     382,   380,   385,     0,   374,   375,     0,   362,   363,   365,
-     377,   366,   367,   368,   384,   369,   370,   371,   372,   373,
-     412,     0,     0,   410,   411,   414,   415,     0,   399,   400,
-     402,   403,   404,   405,   406,   407,   408,   409,   246,   248,
-     243,     0,   241,   244,   245,     0,   603,   605,     0,   608,
-       0,     0,   612,   616,     0,     0,   620,   627,   629,   631,
-     601,   599,   600,     0,   582,   584,   585,   586,   587,   588,
+      39,     3,    37,    38,    60,     5,    72,     7,   129,     9,
+     276,    11,   428,    13,   453,    15,   483,    17,   353,    19,
+     361,    21,   398,    23,   241,    25,   582,    27,   654,    29,
+     643,    31,    49,    43,     0,     0,     0,     0,     0,     0,
+     485,     0,   363,   400,     0,     0,     0,     0,    51,     0,
+      50,     0,     0,    44,    70,   652,   635,   637,   639,     0,
+      69,     0,    62,    64,    66,    67,    68,    65,   115,   641,
+     127,   141,   143,   145,     0,     0,     0,     0,     0,     0,
+       0,     0,   125,   268,   351,   390,   441,   443,   313,   321,
+     214,   231,   222,   207,   520,   475,   233,   252,   541,     0,
+     565,   578,   580,   631,   633,   659,   114,     0,    74,    76,
+      77,    78,    79,    80,   108,   109,   110,    81,   106,    84,
+      85,    86,    87,   103,    88,    90,    89,    94,    95,    82,
+     107,    83,    92,    93,   101,   102,   104,    91,    96,    97,
+      98,    99,   100,   112,   113,   105,   111,   138,     0,   137,
+       0,   131,   133,   134,   135,   136,   420,   445,   303,   305,
+     307,     0,     0,   311,   309,   514,   302,   280,   281,   282,
+     283,   299,   300,   301,     0,   278,   287,   288,   289,   292,
+     293,   295,   290,   291,   284,   285,   297,   298,   286,   294,
+     296,   439,   438,   434,   435,   433,     0,   430,   432,   436,
+     437,   468,     0,   471,     0,     0,   467,   461,   462,   460,
+     465,   466,     0,   455,   457,   458,   463,   464,   459,   512,
+     500,   502,   504,   506,   508,   510,   499,   496,   497,   498,
+       0,   486,   487,   491,   492,   489,   493,   494,   495,   490,
+       0,   380,   188,     0,   384,   382,   387,     0,   376,   377,
+       0,   364,   365,   367,   379,   368,   369,   370,   386,   371,
+     372,   373,   374,   375,   414,     0,     0,   412,   413,   416,
+     417,     0,   401,   402,   404,   405,   406,   407,   408,   409,
+     410,   411,   248,   250,   245,     0,   243,   246,   247,     0,
+     605,   607,     0,   610,     0,     0,   614,   618,     0,     0,
+     622,   629,   603,   601,   602,     0,   584,   586,   587,   588,
      589,   590,   591,   592,   593,   594,   595,   596,   597,   598,
-       0,   654,   656,   647,     0,     0,   643,   645,   646,    48,
-       0,     0,    41,     0,     0,     0,     0,     0,     0,    59,
-       0,    61,     0,     0,     0,     0,     0,     0,     0,     0,
+     599,   600,     0,   656,   658,   649,     0,     0,   645,   647,
+     648,    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,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
-       0,     0,     0,   128,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   275,     0,     0,   427,     0,
-       0,     0,     0,     0,     0,   452,     0,     0,     0,     0,
-       0,     0,     0,   482,     0,   352,     0,     0,     0,     0,
-       0,     0,     0,   360,     0,     0,     0,     0,   397,     0,
-       0,     0,     0,   240,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     581,     0,   653,     0,     0,     0,   642,    52,    45,     0,
-       0,     0,     0,     0,     0,    63,     0,     0,     0,     0,
-       0,     0,   115,   116,   117,   118,   119,   120,   121,   122,
+       0,     0,     0,    73,     0,     0,     0,   130,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   277,
+       0,     0,   429,     0,     0,     0,     0,     0,     0,   454,
+       0,     0,     0,     0,     0,     0,     0,   484,     0,   354,
+       0,     0,     0,     0,     0,     0,     0,   362,     0,     0,
+       0,     0,   399,     0,     0,     0,     0,   242,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   562,     0,     0,
-       0,     0,    75,     0,   138,   130,     0,     0,     0,     0,
-       0,   317,   318,     0,     0,     0,   277,     0,   429,     0,
-     468,     0,   471,   472,   454,     0,     0,     0,     0,     0,
-       0,     0,   486,     0,     0,   376,     0,     0,     0,   387,
-     364,     0,   416,   417,   401,     0,     0,   242,   602,     0,
-       0,   607,     0,   610,   611,     0,     0,   618,   619,     0,
-       0,     0,     0,   583,   655,     0,   649,   644,     0,     0,
-       0,   634,   636,   638,   114,     0,     0,     0,     0,   145,
-     124,   268,   353,   390,    42,   440,   442,   313,   314,   315,
-     316,   312,   321,     0,    49,     0,     0,     0,   475,   233,
-       0,     0,     0,   577,     0,     0,    53,   137,   420,   445,
-     302,   304,   306,   310,   308,     0,   438,   467,   470,   511,
-     499,   501,   503,   505,   507,   509,   379,   187,   383,   381,
-     386,   413,   247,   249,   604,   606,   609,   614,   615,   613,
-     617,   622,   623,   624,   625,   626,   621,   628,   630,   632,
-     145,    46,     0,     0,     0,     0,   173,   179,   181,   183,
-       0,     0,     0,     0,     0,   196,     0,     0,   199,   201,
-     203,     0,     0,     0,   172,     0,   151,   153,   154,   155,
-     156,   157,   158,   159,   160,   161,   162,   165,   166,   167,
-     168,   163,   164,   169,   170,   171,     0,   149,     0,   146,
-     147,   272,     0,   269,   270,   357,     0,   354,   355,   394,
-       0,   391,   392,   325,     0,   322,   323,   218,   219,     0,
-     214,   216,   217,     0,   227,   228,   224,     0,   222,   225,
-     226,   210,     0,   207,   209,   522,     0,   520,   479,     0,
-     476,   477,   237,     0,   234,   235,     0,     0,     0,     0,
-       0,     0,     0,   252,   254,   255,   256,   257,   258,   259,
-     552,   558,     0,     0,     0,   551,   548,   549,   550,     0,
-     541,   543,   546,   544,   545,   547,   572,   574,   571,   569,
-     570,     0,   565,   567,   568,     0,   661,     0,   659,    55,
-     424,     0,   421,   422,   449,     0,   446,   447,   516,   515,
-       0,   514,     0,    71,   651,   640,   126,     0,     0,     0,
+       0,     0,   583,     0,   655,     0,     0,     0,   644,    52,
+      45,     0,     0,     0,     0,     0,     0,    63,     0,     0,
+       0,     0,     0,     0,   117,   118,   119,   120,   121,   122,
+     123,   124,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   564,
+       0,     0,     0,     0,     0,     0,    75,     0,   140,   132,
+       0,     0,     0,     0,     0,   319,   320,     0,     0,     0,
+     279,     0,   431,     0,   470,     0,   473,   474,   456,     0,
+       0,     0,     0,     0,     0,     0,   488,     0,     0,   378,
+       0,     0,     0,   389,   366,     0,   418,   419,   403,     0,
+       0,   244,   604,     0,     0,   609,     0,   612,   613,     0,
+       0,   620,   621,     0,     0,   585,   657,     0,   651,   646,
+       0,     0,     0,   636,   638,   640,   116,     0,     0,     0,
+       0,   147,   126,   270,   355,   392,    42,   442,   444,   315,
+     316,   317,   318,   314,   323,     0,    49,     0,     0,     0,
+     477,   235,     0,     0,     0,   579,     0,   632,   634,     0,
+      53,   139,   422,   447,   304,   306,   308,   312,   310,     0,
+     440,   469,   472,   513,   501,   503,   505,   507,   509,   511,
+     381,   189,   385,   383,   388,   415,   249,   251,   606,   608,
+     611,   616,   617,   615,   619,   624,   625,   626,   627,   628,
+     623,   630,   147,    46,     0,     0,     0,     0,   175,   181,
+     183,   185,     0,     0,     0,     0,     0,   198,     0,     0,
+     201,   203,   205,     0,     0,     0,   174,     0,   153,   155,
+     156,   157,   158,   159,   160,   161,   162,   163,   164,   167,
+     168,   169,   170,   165,   166,   171,   172,   173,     0,   151,
+       0,   148,   149,   274,     0,   271,   272,   359,     0,   356,
+     357,   396,     0,   393,   394,   327,     0,   324,   325,   220,
+     221,     0,   216,   218,   219,     0,   229,   230,   226,     0,
+     224,   227,   228,   212,     0,   209,   211,   524,     0,   522,
+     481,     0,   478,   479,   239,     0,   236,   237,     0,     0,
+       0,     0,     0,     0,     0,   254,   256,   257,   258,   259,
+     260,   261,   554,   560,     0,     0,     0,   553,   550,   551,
+     552,     0,   543,   545,   548,   546,   547,   549,   574,   576,
+     573,   571,   572,     0,   567,   569,   570,     0,   663,     0,
+     661,    55,   426,     0,   423,   424,   451,     0,   448,   449,
+     518,   517,     0,   516,     0,    71,   653,   642,   128,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   140,   142,     0,   144,
-       0,     0,   267,     0,   361,   350,     0,   398,   389,     0,
-       0,   320,     0,     0,   213,   230,     0,   221,     0,     0,
-     206,   524,     0,   519,   483,   474,     0,     0,   232,     0,
-       0,     0,     0,     0,     0,     0,     0,   251,     0,     0,
-       0,     0,     0,     0,   540,     0,     0,     0,   564,   579,
-       0,     0,   658,    57,     0,    56,     0,   419,     0,     0,
-     444,     0,     0,   513,   648,     0,     0,     0,     0,   185,
-     188,   189,   190,   191,     0,   198,   192,     0,     0,     0,
-     193,   194,   195,   152,     0,   148,     0,   271,     0,   356,
-       0,   393,   348,   340,   342,   333,   334,   345,   346,   347,
-     329,   330,   331,   332,   338,   339,   337,   341,     0,   327,
-     335,   343,   344,   336,   324,   215,   223,     0,   208,   536,
-       0,   534,   535,   531,   532,   533,     0,   525,   526,   528,
-     529,   530,   521,     0,   478,     0,   236,   260,   261,   262,
-     263,   264,   265,   253,     0,     0,   557,   560,   561,   542,
-       0,     0,   566,   675,     0,   673,   671,   665,   669,   670,
-       0,   663,   667,   668,   666,   660,    54,     0,     0,   423,
-       0,   448,     0,   175,   176,   177,   178,   174,   180,   182,
-     184,   197,   200,   202,   204,   150,   273,   358,   395,     0,
-     326,   211,     0,     0,   523,     0,   480,   238,   554,   555,
-     556,   553,   559,   573,   575,     0,     0,     0,     0,   662,
-      58,   425,   450,   517,   328,     0,   538,   527,     0,   672,
-       0,   664,   537,     0,   674,   679,     0,   677,     0,     0,
-     676,   687,     0,     0,     0,     0,   681,   683,   684,   685,
-     686,   678,     0,     0,     0,     0,     0,   680,     0,   689,
-     690,   691,   682,   688
+       0,     0,     0,     0,     0,     0,     0,     0,   142,   144,
+       0,   146,     0,     0,   269,     0,   363,   352,     0,   400,
+     391,     0,     0,   322,     0,     0,   215,   232,     0,   223,
+       0,     0,   208,   526,     0,   521,   485,   476,     0,     0,
+     234,     0,     0,     0,     0,     0,     0,     0,     0,   253,
+       0,     0,     0,     0,     0,     0,   542,     0,     0,     0,
+     566,   581,     0,     0,   660,    57,     0,    56,     0,   421,
+       0,     0,   446,     0,     0,   515,   650,     0,     0,     0,
+       0,   187,   190,   191,   192,   193,     0,   200,   194,     0,
+       0,     0,   195,   196,   197,   154,     0,   150,     0,   273,
+       0,   358,     0,   395,   350,   342,   344,   335,   336,   347,
+     348,   349,   331,   332,   333,   334,   340,   341,   339,   343,
+       0,   329,   337,   345,   346,   338,   326,   217,   225,     0,
+     210,   538,     0,   536,   537,   533,   534,   535,     0,   527,
+     528,   530,   531,   532,   523,     0,   480,     0,   238,   262,
+     263,   264,   265,   266,   267,   255,     0,     0,   559,   562,
+     563,   544,     0,     0,   568,   677,     0,   675,   673,   667,
+     671,   672,     0,   665,   669,   670,   668,   662,    54,     0,
+       0,   425,     0,   450,     0,   177,   178,   179,   180,   176,
+     182,   184,   186,   199,   202,   204,   206,   152,   275,   360,
+     397,     0,   328,   213,     0,     0,   525,     0,   482,   240,
+     556,   557,   558,   555,   561,   575,   577,     0,     0,     0,
+       0,   664,    58,   427,   452,   519,   330,     0,   540,   529,
+       0,   674,     0,   666,   539,     0,   676,   681,     0,   679,
+       0,     0,   678,   689,     0,     0,     0,     0,   683,   685,
+     686,   687,   688,   680,     0,     0,     0,     0,     0,   682,
+       0,   691,   692,   693,   684,   690
   };
 
   const short
   Dhcp6Parser::yypgoto_[] =
   {
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,    13,  -864,  -483,
-    -864,   229,  -864,  -864,  -864,  -864,   170,  -864,  -494,  -864,
-    -864,  -864,   -74,  -864,  -864,  -864,   434,  -864,  -864,  -864,
-    -864,   193,   387,  -864,  -864,   -70,   -58,   -38,   -31,   -30,
-     -20,   -17,  -864,  -864,  -864,  -864,  -864,  -864,  -864,   209,
-     407,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-     117,  -864,   -43,  -864,  -602,   -49,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,   -46,  -864,  -629,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,   -59,  -864,
-    -864,  -864,  -864,  -864,   -57,  -622,  -864,  -864,  -864,  -864,
-     -19,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,   -62,
-    -864,  -864,  -864,   -26,   408,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,   -40,  -864,  -864,  -864,  -864,  -864,  -864,  -863,
-    -864,  -864,  -864,    10,  -864,  -864,  -864,    16,   450,  -864,
-    -864,  -862,  -864,  -852,  -864,   -44,  -864,     6,  -864,     1,
-    -864,  -864,  -864,  -849,  -864,  -864,  -864,  -864,     8,  -864,
-    -864,  -167,   812,  -864,  -864,  -864,  -864,  -864,    19,  -864,
-    -864,  -864,    22,  -864,   433,  -864,   -68,  -864,  -864,  -864,
-    -864,  -864,   -45,  -864,  -864,  -864,  -864,  -864,    -3,  -864,
-    -864,  -864,    20,  -864,  -864,  -864,    24,  -864,   441,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-     -25,  -864,  -864,  -864,   -22,   472,  -864,  -864,   -56,  -864,
-     -15,  -864,  -864,  -864,  -864,  -864,   -24,  -864,  -864,  -864,
-     -23,   464,  -864,  -864,  -864,  -864,  -864,  -864,  -864,   -63,
-    -864,  -864,  -864,    17,  -864,  -864,  -864,    18,  -864,   461,
-     261,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -848,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,    25,  -864,  -864,  -864,  -147,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,     7,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,     4,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,   281,   444,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,  -864,   307,   429,  -864,  -864,
-    -864,  -864,  -864,  -864,  -864,   318,   443,   -61,  -864,  -864,
-      15,  -864,  -864,  -151,  -864,  -864,  -864,  -864,  -864,  -864,
-    -170,  -864,  -864,  -185,  -864,  -864,  -864,  -864,  -864
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,    41,  -855,  -457,
+    -855,   273,  -855,  -855,  -855,  -855,   194,  -855,  -459,  -855,
+    -855,  -855,   -74,  -855,  -855,  -855,   434,  -855,  -855,  -855,
+    -855,   220,   410,  -855,  -855,   -70,   -46,   -40,   -36,   -22,
+     -17,   -14,  -855,  -855,  -855,  -855,  -855,  -855,  -855,   231,
+     413,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+     187,  -855,    11,  -855,  -602,    17,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,   -21,  -855,  -630,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,    -4,  -855,
+    -855,  -855,  -855,  -855,     4,  -621,  -855,  -855,  -855,  -855,
+       0,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,    -9,
+    -855,  -855,  -855,    -8,   419,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,   -12,  -855,  -855,  -855,  -855,  -855,  -855,  -854,
+    -855,  -855,  -855,    19,  -855,  -855,  -855,    30,   467,  -855,
+    -855,  -849,  -855,  -847,  -855,   -11,  -855,    -5,  -855,     3,
+    -855,  -855,  -855,  -846,  -855,  -855,  -855,  -855,    13,  -855,
+    -855,  -161,   823,  -855,  -855,  -855,  -855,  -855,    28,  -855,
+    -855,  -855,    34,  -855,   444,  -855,   -69,  -855,  -855,  -855,
+    -855,  -855,   -66,  -855,  -855,  -855,  -855,  -855,   -58,  -855,
+    -855,  -855,    35,  -855,  -855,  -855,    29,  -855,   436,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+     -19,  -855,  -855,  -855,   -15,   473,  -855,  -855,   -53,  -855,
+     -29,  -855,  -855,  -855,  -855,  -855,    -6,  -855,  -855,  -855,
+     -16,   470,  -855,  -855,  -855,  -855,  -855,  -855,  -855,   -62,
+    -855,  -855,  -855,    21,  -855,  -855,  -855,    25,  -855,   472,
+     265,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -843,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,    39,  -855,  -855,  -855,  -145,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,    16,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,     9,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,   288,   445,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,   -73,  -855,   -51,  -855,  -855,  -855,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,  -855,   325,   446,  -855,  -855,
+    -855,  -855,  -855,  -855,  -855,   326,   454,   -48,  -855,  -855,
+      12,  -855,  -855,  -141,  -855,  -855,  -855,  -855,  -855,  -855,
+    -160,  -855,  -855,  -178,  -855,  -855,  -855,  -855,  -855
   };
 
   const short
@@ -4399,268 +4401,268 @@ 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,   625,    92,    93,    43,    72,    89,    90,   647,   829,
-     924,   925,   714,    45,    74,   101,   102,   103,   374,    47,
-      75,   145,   146,   147,   382,   148,   149,   150,   151,   152,
-     153,   154,   155,   156,   396,   157,   384,    49,    76,   186,
-     187,   188,   420,   189,   158,   385,   159,   386,   160,   387,
-     738,   739,   740,   868,   715,   716,   717,   847,  1047,   718,
-     848,   719,   849,   720,   850,   721,   722,   457,   723,   724,
-     725,   726,   727,   728,   729,   730,   731,   856,   732,   733,
-     859,   734,   860,   735,   861,   161,   407,   772,   773,   774,
-     888,   162,   404,   759,   760,   761,   762,   163,   406,   767,
-     768,   769,   770,   164,   405,   165,   410,   783,   784,   785,
-     897,    65,    84,   321,   322,   323,   470,   324,   471,   166,
-     411,   792,   793,   794,   795,   796,   797,   798,   799,   167,
-     397,   742,   743,   744,   871,    51,    77,   210,   211,   212,
-     426,   213,   427,   214,   428,   215,   432,   216,   431,   168,
-     402,   631,   218,   219,   169,   403,   754,   755,   756,   880,
-     978,   979,   170,   398,    59,    81,   746,   747,   748,   874,
-      61,    82,   286,   287,   288,   289,   290,   291,   292,   456,
-     293,   460,   294,   459,   295,   296,   461,   297,   171,   399,
-     750,   751,   752,   877,    63,    83,   307,   308,   309,   310,
-     311,   465,   312,   313,   314,   315,   221,   424,   831,   832,
-     833,   926,    53,    78,   232,   233,   234,   436,   172,   400,
-     173,   401,   224,   425,   835,   836,   837,   929,    55,    79,
-     248,   249,   250,   439,   251,   252,   441,   253,   254,   174,
-     409,   779,   780,   781,   894,    57,    80,   266,   267,   268,
-     269,   447,   270,   448,   271,   449,   272,   450,   273,   451,
-     274,   452,   275,   446,   226,   433,   840,   841,   932,   175,
-     408,   776,   777,   891,   996,   997,   998,   999,  1000,  1062,
-    1001,   176,   412,   809,   810,   811,   908,  1071,   812,   813,
-     909,   814,   815,   177,   178,   414,   821,   822,   823,   915,
-     824,   916,   179,   415,   180,   416,    67,    85,   343,   344,
-     345,   346,   475,   347,   476,   348,   349,   478,   350,   351,
-     352,   481,   679,   353,   482,   354,   355,   356,   485,   686,
-     357,   486,   358,   487,   359,   488,   104,   376,   105,   377,
-     106,   378,   181,   383,    71,    87,   365,   366,   367,   493,
-     368,   107,   375,    69,    86,   360,   361,   182,   417,   827,
-     828,   920,  1030,  1031,  1032,  1033,  1077,  1034,  1075,  1096,
-    1097,  1098,  1105,  1106,  1107,  1112,  1108,  1109,  1110
+      73,   627,    92,    93,    43,    72,    89,    90,   651,   831,
+     926,   927,   716,    45,    74,   101,   102,   103,   376,    47,
+      75,   147,   148,   149,   384,   150,   151,   152,   153,   154,
+     155,   156,   157,   158,   398,   159,   386,    49,    76,   190,
+     191,   192,   424,   193,   160,   387,   161,   388,   162,   389,
+     740,   741,   742,   870,   717,   718,   719,   849,  1049,   720,
+     850,   721,   851,   722,   852,   723,   724,   461,   725,   726,
+     727,   728,   729,   730,   731,   732,   733,   858,   734,   735,
+     861,   736,   862,   737,   863,   163,   409,   774,   775,   776,
+     890,   164,   406,   761,   762,   763,   764,   165,   408,   769,
+     770,   771,   772,   166,   407,   167,   412,   785,   786,   787,
+     899,    65,    84,   325,   326,   327,   474,   328,   475,   168,
+     413,   794,   795,   796,   797,   798,   799,   800,   801,   169,
+     399,   744,   745,   746,   873,    51,    77,   214,   215,   216,
+     430,   217,   431,   218,   432,   219,   436,   220,   435,   170,
+     404,   633,   222,   223,   171,   405,   756,   757,   758,   882,
+     980,   981,   172,   400,    59,    81,   748,   749,   750,   876,
+      61,    82,   290,   291,   292,   293,   294,   295,   296,   460,
+     297,   464,   298,   463,   299,   300,   465,   301,   173,   401,
+     752,   753,   754,   879,    63,    83,   311,   312,   313,   314,
+     315,   469,   316,   317,   318,   319,   225,   428,   833,   834,
+     835,   928,    53,    78,   236,   237,   238,   440,   174,   402,
+     175,   403,   228,   429,   837,   838,   839,   931,    55,    79,
+     252,   253,   254,   443,   255,   256,   445,   257,   258,   176,
+     411,   781,   782,   783,   896,    57,    80,   270,   271,   272,
+     273,   451,   274,   452,   275,   453,   276,   454,   277,   455,
+     278,   456,   279,   450,   230,   437,   842,   843,   934,   177,
+     410,   778,   779,   893,   998,   999,  1000,  1001,  1002,  1064,
+    1003,   178,   414,   811,   812,   813,   910,  1073,   814,   815,
+     911,   816,   817,   179,   180,   416,   823,   824,   825,   917,
+     826,   918,   181,   417,   182,   418,    67,    85,   345,   346,
+     347,   348,   479,   349,   480,   350,   351,   482,   352,   353,
+     354,   485,   683,   355,   486,   356,   357,   358,   489,   690,
+     359,   490,   183,   419,   184,   420,   104,   378,   105,   379,
+     106,   380,   185,   385,    71,    87,   367,   368,   369,   495,
+     370,   107,   377,    69,    86,   362,   363,   186,   421,   829,
+     830,   922,  1032,  1033,  1034,  1035,  1079,  1036,  1077,  1098,
+    1099,  1100,  1107,  1108,  1109,  1114,  1110,  1111,  1112
   };
 
   const unsigned short
   Dhcp6Parser::yytable_[] =
   {
-     100,   144,   185,   202,   228,   242,   262,   203,   284,   303,
-     320,   340,   806,   766,   225,   305,   736,   971,   972,   204,
-     190,   222,   235,   246,   264,   362,   298,   316,   973,   341,
-      40,   977,   983,    94,   229,   243,   285,   304,   306,   205,
-      33,   624,    34,    32,    35,   757,   206,   207,   183,   184,
-    1101,   318,   319,  1102,  1103,  1104,   624,   208,    44,   653,
-     209,   191,   223,   236,   247,   265,   883,   299,   317,   884,
-     342,   659,   660,   661,   220,   231,   245,   263,   217,   886,
-     277,   696,   887,    91,   230,   244,   697,   698,   699,   700,
-     701,   702,   703,   704,   705,   706,   707,   708,   709,   710,
-     711,   712,   713,   892,   126,   127,   893,   114,   115,   116,
-     117,   118,   119,   120,   278,   278,   279,   280,   125,    46,
-     281,   282,   283,    99,   758,    48,   256,    50,   192,   380,
-     193,   126,   127,   838,   381,    52,   126,   127,   194,   195,
-     196,   197,   198,   128,   418,   921,   278,    54,   922,   419,
-     125,   278,   800,   126,   127,   199,   363,   364,   200,   135,
-     422,   701,   125,   126,   127,   423,   201,   434,   126,   127,
-      56,  1099,   435,    95,  1100,   237,   238,   239,   240,   241,
-     126,   127,    96,    97,    98,    58,   108,   109,   989,   990,
-     110,   318,   319,   111,   112,   113,   971,   972,    60,   199,
-      99,    62,   200,   126,   127,   816,   817,   973,    64,    99,
-     977,   983,    36,    37,    38,    39,   677,   678,   114,   115,
-     116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
-     786,   787,   788,   789,   790,   791,    99,    99,    66,   437,
-      68,    99,    70,  1023,   438,  1024,  1025,   126,   127,   801,
-     802,   803,   804,   124,   128,   143,   125,   369,    99,   129,
-     130,   131,   132,   133,   766,   134,   954,   227,    99,   370,
-     135,   444,   472,    99,   126,   127,   445,   473,   489,   136,
-     371,   372,   137,   490,   806,    99,   491,   495,   373,   138,
-     418,   492,   496,   199,   491,   843,   200,   139,   140,   844,
-     495,   141,   142,   379,   422,   845,   100,   388,    99,   846,
-     114,   115,   116,   117,   118,   119,   120,   389,   865,   123,
-     865,   125,   278,   866,   390,   867,   143,   391,   392,   681,
-     682,   683,   684,   278,   300,   279,   280,   301,   302,   126,
-     127,   393,   195,   196,   144,   198,   128,   394,   185,   889,
-     126,   127,    99,   395,   890,   413,   421,   906,   199,   429,
-     202,   200,   907,   228,   203,   685,   190,   430,   913,   201,
-     242,   225,   917,   914,   440,   442,   204,   918,   222,    99,
-     262,   235,   489,   497,   498,   443,   865,   919,   246,   458,
-     284,  1055,   434,   229,  1059,   303,   205,  1056,   264,  1060,
-     243,   305,   453,   206,   207,   472,  1078,   191,   298,   454,
-    1067,  1079,   455,   316,   208,   340,   437,   209,   285,   223,
-     444,  1081,   236,   304,   306,  1082,   462,  1116,   463,   247,
-     362,   220,  1117,   341,   231,   217,   126,   127,   464,   265,
-     125,   245,   466,   230,    99,  1043,  1044,  1045,  1046,   299,
-     244,   263,   467,   468,   317,    99,   469,   499,   126,   127,
-     627,   628,   629,   630,   757,   764,   474,   765,  1068,  1069,
-    1070,   477,   479,   480,   342,   483,   255,   484,   494,   500,
-     501,   502,   256,   257,   258,   259,   260,   261,   503,   504,
-     506,   507,   325,   326,   327,   328,   329,   330,   331,   332,
-     333,   334,   335,   336,   337,   508,   509,   510,   511,   512,
-     513,   514,   338,   339,   515,   611,   612,   613,     1,     2,
-       3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    14,    15,   520,   521,   144,   519,   516,   517,   518,
-     522,    99,   185,   523,   524,   525,   526,   527,   528,   362,
-     529,   530,   531,   532,   533,   534,   535,   536,   538,   539,
-     190,   540,   537,    99,   541,   543,   546,   805,   818,   547,
-     340,   548,   544,   549,   550,   551,   552,   553,   554,   555,
-     557,   559,   561,   560,   565,   807,   819,   562,   341,   563,
-     566,   567,   568,   569,   570,   571,   573,   574,   576,   673,
-     577,   191,   578,   575,   581,   585,   579,   582,   583,   586,
-     588,   589,   590,   592,   591,   593,   595,   594,   596,   599,
-     597,   691,   598,   600,   601,   602,   808,   820,   605,   342,
-     606,   608,   609,   610,   614,   615,   616,   617,   618,   619,
-     620,   621,   622,   623,   870,   632,    34,   626,   633,   634,
-     635,   873,   637,   636,   638,   639,   650,   651,   640,   641,
-     642,   644,   645,   646,   648,   649,   652,   654,   655,   656,
-     657,   658,   662,   663,   664,   665,   666,   667,   680,   690,
-     737,   851,   668,   669,   670,   671,   672,   674,   675,   676,
-     687,   688,   689,   741,   745,   749,   753,   775,   778,   771,
-     782,   826,   830,   834,   852,   853,   854,   855,   857,   858,
-     862,   863,   864,   940,   923,   869,   872,   875,   876,   878,
-     879,   882,   881,   939,   896,   885,   895,   899,   898,   900,
-     901,   902,   903,   904,   905,   910,   911,   912,   928,   942,
-     927,   931,   930,   935,   941,   933,   934,   936,   937,   938,
-     943,   944,   947,   948,   949,   987,  1014,   945,  1015,   946,
-     950,   951,  1020,  1007,   952,  1021,  1036,  1037,   643,  1042,
-    1057,  1058,  1063,  1008,  1064,  1009,  1065,  1010,  1066,  1076,
-    1011,  1012,  1016,  1085,  1017,  1088,  1090,  1095,  1093,  1018,
-    1048,  1113,  1114,  1049,  1050,  1051,  1115,   202,  1118,  1052,
-     284,   203,   692,   303,   763,   542,   962,   842,   225,   305,
-     963,  1089,  1053,   204,   505,   222,   953,   991,   298,  1054,
-     262,   316,   964,   320,   981,   695,   985,   955,   285,   545,
-     988,   304,   306,   205,   970,   994,   974,  1006,   264,   805,
-     206,   207,   965,   818,  1061,   992,  1026,  1072,  1073,   966,
-     967,   208,   228,  1074,   209,   242,   223,   807,  1080,   299,
-     968,   819,   317,   969,  1028,   982,  1013,   986,   220,  1083,
-     235,  1005,   217,   246,  1027,  1120,   995,   980,  1086,   265,
-     587,   976,   229,   957,   556,   243,   975,   956,   993,  1092,
-     984,   263,  1084,   276,  1119,   959,   958,   580,   808,   961,
-    1094,   960,   820,  1039,  1038,  1029,  1040,  1041,   564,   558,
-     584,   236,  1003,  1004,   247,   572,   839,  1002,  1087,  1121,
-    1019,  1022,   694,   231,   607,   825,   245,  1091,   693,  1111,
-    1123,  1122,   230,   603,   604,   244,  1035,     0,     0,     0,
+     100,   146,   189,   206,   232,   246,   266,   207,   288,   307,
+     324,   342,   360,   808,   309,   229,   768,   310,   738,   224,
+     235,   249,   267,   194,   226,   239,   250,   268,   973,   302,
+     320,   208,   343,   974,   361,   975,   979,   209,   364,   985,
+     382,   210,    94,   187,   188,   383,    32,   195,   227,   240,
+     251,   269,   260,   303,   321,   211,   344,   802,    40,   840,
+     212,   289,   308,   213,   125,   282,   703,   233,   247,   626,
+      44,   759,    46,   234,   248,    33,   422,    34,    48,    35,
+     221,   423,   126,   127,   626,   108,   109,   322,   323,   110,
+     126,   127,   111,   112,   113,   322,   323,   281,   657,   126,
+     127,  1103,   991,   992,  1104,  1105,  1106,    50,   126,   127,
+     663,   664,   665,   629,   630,   631,   632,   114,   115,   116,
+     117,   118,   119,   120,   121,   122,   123,   124,   125,   885,
+     426,   282,   886,   283,   284,   427,   438,   285,   286,   287,
+     441,   439,   818,   819,    91,   442,   126,   127,   126,   127,
+     760,   365,   366,   128,   803,   804,   805,   806,   129,   130,
+     131,   132,   133,   448,   134,   681,   682,    99,   449,   135,
+     685,   686,   687,   688,   476,   491,    52,    54,   136,   477,
+     492,   137,    95,   888,   493,   497,   889,    99,   138,   494,
+     498,    96,    97,    98,   422,    99,   139,   140,   493,   845,
+     141,   142,   124,   846,    99,   497,   689,   973,    56,    99,
+     847,   426,   974,    99,   975,   979,   848,   894,   985,    58,
+     895,   698,   143,   144,    60,   145,   699,   700,   701,   702,
+     703,   704,   705,   706,   707,   708,   709,   710,   711,   712,
+     713,   714,   715,  1045,  1046,  1047,  1048,    36,    37,    38,
+      39,    99,    62,    99,   923,   282,   145,   924,   371,   114,
+     115,   116,   117,   118,   119,   120,  1101,   768,   956,  1102,
+     125,   788,   789,   790,   791,   792,   793,    64,    66,   867,
+     196,   867,   197,   125,   868,   808,   869,    68,   126,   127,
+     198,   199,   200,   201,   202,   128,   241,   242,   243,   244,
+     245,   126,   127,   125,   891,    70,   372,   203,   100,   892,
+     204,   135,   908,   374,   231,   373,   375,   909,   205,   915,
+     203,   126,   127,   204,   916,   381,   390,   114,   115,   116,
+     117,   118,   119,   120,   391,   392,   123,   919,   125,   282,
+     203,   491,   920,   204,   867,   438,   921,   393,   146,  1057,
+    1058,   394,   189,  1061,   457,   395,   126,   127,  1062,   199,
+     200,   476,   202,   128,   206,  1080,  1069,   232,   207,   396,
+    1081,   397,   415,   194,   246,   203,   229,    99,   204,   425,
+     224,   458,   441,   235,   266,   226,   205,  1083,   239,   433,
+     249,   448,   208,    99,   288,   250,  1084,   195,   209,   307,
+     267,   434,   210,  1118,   309,   268,    99,   310,  1119,   227,
+     282,   444,   240,   499,   500,   302,   211,   342,   360,   251,
+     320,   212,   759,   766,   213,   767,    99,   126,   127,   269,
+     233,   125,   446,  1070,  1071,  1072,   234,   247,   343,   303,
+     361,   221,   447,   248,   321,   364,   462,   289,   459,   126,
+     127,   466,   308,   282,   304,   283,   284,   305,   306,   467,
+     468,    99,   344,   126,   127,   470,   471,   259,   472,   473,
+     126,   127,   478,   260,   261,   262,   263,   264,   265,     1,
+       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,   481,   483,   484,   487,   488,   496,
+     501,   502,   503,   504,   505,   506,   508,  1025,   509,  1026,
+    1027,   510,   511,   512,   513,   514,   518,   515,   516,   329,
+     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,   341,    99,   519,   517,   522,   520,   146,   521,   143,
+     144,   523,   524,   525,   189,   613,   614,   615,   526,   527,
+     528,   529,   530,   531,    99,   532,   533,   534,   535,   536,
+     537,   538,   539,   540,   364,   194,   541,   542,    99,   807,
+     820,   543,   342,   360,   544,    99,   545,   547,   550,   548,
+     551,   552,   553,   554,   555,   556,   557,   558,   559,   195,
+     809,   821,   561,   343,   563,   361,   564,   565,   566,   567,
+     569,   570,   571,   572,   573,   574,   575,   577,   578,   579,
+     580,   581,   582,   583,   810,   822,   585,   344,   589,   586,
+     590,   587,   593,   592,   594,   596,   595,   597,   598,   599,
+     600,   677,   601,   602,   603,   604,   607,   608,   610,   684,
+     611,   616,   612,   617,   618,   619,   620,   621,   622,   623,
+     624,   693,   625,    34,   628,   634,   635,   636,   637,   647,
+     639,   638,   640,   641,   648,   654,   642,   643,   644,   646,
+     649,   650,   652,   653,   773,   692,   659,   853,   739,   743,
+     655,   747,   656,   658,   751,   755,   777,   780,   660,   661,
+     662,   666,   667,   668,   669,   670,   671,   672,   673,   674,
+     675,   676,   678,   679,   680,   691,   784,   828,   832,   836,
+     854,   855,   856,   857,   859,   860,   864,   865,   866,   872,
+     925,   871,   875,   874,   877,   878,   880,   881,   884,   883,
+     942,   898,   887,   897,   901,   900,   902,   903,   904,   905,
+     906,   907,   912,   913,   914,   930,   941,   929,   933,   932,
+     937,   944,   935,   936,   938,   939,   940,   946,   943,   945,
+     949,   950,   951,   989,   947,   948,  1016,   952,  1017,   953,
+    1022,  1023,   954,  1009,  1038,  1039,  1097,  1044,  1059,  1060,
+    1065,  1067,  1066,  1010,  1078,  1068,  1087,  1011,  1012,  1013,
+    1090,  1014,  1092,  1018,  1095,  1019,  1115,  1020,  1116,   206,
+    1050,  1051,   288,   207,  1052,   307,  1053,  1117,   964,  1120,
+     309,   229,   965,   310,   645,   224,   507,  1054,  1055,   993,
+     226,  1091,   266,   302,   982,   324,   320,   208,  1088,   983,
+     765,   694,   546,   209,  1122,   995,   966,   210,   267,   549,
+     996,   807,   967,   268,   227,   820,   968,   303,  1028,   697,
+     321,   211,  1056,   984,   232,   289,   212,   246,   308,   213,
+     969,   972,   809,  1063,   997,   970,   821,   269,   971,  1030,
+     235,   976,   994,   249,  1074,   239,   221,   977,   250,   844,
+    1075,  1076,  1082,   957,   955,   978,   810,   990,   988,   987,
+     822,  1007,  1008,  1031,   959,   591,  1015,   986,  1085,   240,
+    1086,  1029,   251,   958,   280,   560,   961,  1094,   962,   588,
+     960,  1041,   584,  1040,   562,  1042,   963,   233,   568,  1006,
+     247,  1005,  1089,   234,   841,  1096,   248,  1043,  1024,  1121,
+     576,  1021,  1123,  1004,   827,  1037,   605,  1125,   695,  1093,
+    1124,  1113,   696,   609,     0,     0,     0,   606,     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,   962,     0,     0,     0,   963,
-       0,   991,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   964,     0,   981,  1026,     0,     0,     0,     0,   994,
-       0,     0,     0,   970,     0,   974,     0,     0,     0,   992,
-       0,   965,  1028,     0,     0,     0,     0,     0,   966,   967,
-       0,     0,  1027,     0,     0,     0,     0,     0,     0,   968,
-       0,     0,   969,     0,   982,     0,     0,     0,     0,     0,
-     995,     0,     0,     0,     0,     0,   980,     0,     0,     0,
-     976,     0,   993,  1029,     0,   975
+       0,     0,     0,     0,     0,     0,     0,   964,     0,     0,
+       0,   965,     0,   993,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   982,     0,     0,  1028,     0,   983,   995,
+       0,     0,     0,     0,   996,   966,     0,     0,     0,     0,
+       0,   967,     0,     0,     0,   968,     0,  1030,     0,     0,
+       0,     0,   984,     0,     0,     0,     0,     0,   997,   969,
+     972,     0,     0,     0,   970,     0,   994,   971,     0,     0,
+     976,  1031,     0,     0,     0,     0,   977,     0,     0,  1029,
+       0,     0,     0,     0,   978
   };
 
   const short
   Dhcp6Parser::yycheck_[] =
   {
       74,    75,    76,    77,    78,    79,    80,    77,    82,    83,
-      84,    85,   641,   635,    77,    83,   618,   880,   880,    77,
-      76,    77,    78,    79,    80,    86,    82,    83,   880,    85,
-      17,   880,   880,    10,    78,    79,    82,    83,    83,    77,
-       5,   524,     7,     0,     9,    98,    77,    77,    16,    17,
-     153,   105,   106,   156,   157,   158,   539,    77,     7,   553,
-      77,    76,    77,    78,    79,    80,     3,    82,    83,     6,
-      85,   565,   566,   567,    77,    78,    79,    80,    77,     3,
-      21,    21,     6,   177,    78,    79,    26,    27,    28,    29,
+      84,    85,    85,   643,    83,    77,   637,    83,   620,    77,
+      78,    79,    80,    76,    77,    78,    79,    80,   882,    82,
+      83,    77,    85,   882,    85,   882,   882,    77,    86,   882,
+       3,    77,    10,    16,    17,     8,     0,    76,    77,    78,
+      79,    80,    96,    82,    83,    77,    85,    21,    17,   103,
+      77,    82,    83,    77,    54,    55,    30,    78,    79,   526,
+       7,    98,     7,    78,    79,     5,     3,     7,     7,     9,
+      77,     8,    72,    73,   541,    11,    12,   105,   106,    15,
+      72,    73,    18,    19,    20,   105,   106,    21,   557,    72,
+      73,   153,    92,    93,   156,   157,   158,     7,    72,    73,
+     569,   570,   571,    80,    81,    82,    83,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,     3,
+       3,    55,     6,    57,    58,     8,     3,    61,    62,    63,
+       3,     8,   124,   125,   177,     8,    72,    73,    72,    73,
+     177,    13,    14,    79,   118,   119,   120,   121,    84,    85,
+      86,    87,    88,     3,    90,   141,   142,   177,     8,    95,
+     144,   145,   146,   147,     3,     3,     7,     7,   104,     8,
+       8,   107,   150,     3,     3,     3,     6,   177,   114,     8,
+       8,   159,   160,   161,     3,   177,   122,   123,     3,     8,
+     126,   127,    53,     8,   177,     3,   180,  1061,     7,   177,
+       8,     3,  1061,   177,  1061,  1061,     8,     3,  1061,     7,
+       6,    21,   148,   149,     7,   151,    26,    27,    28,    29,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,     3,    72,    73,     6,    43,    44,    45,
-      46,    47,    48,    49,    55,    55,    57,    58,    54,     7,
-      61,    62,    63,   177,   177,     7,    96,     7,    64,     3,
-      66,    72,    73,   103,     8,     7,    72,    73,    74,    75,
-      76,    77,    78,    79,     3,     3,    55,     7,     6,     8,
-      54,    55,    21,    72,    73,    91,    13,    14,    94,    95,
-       3,    30,    54,    72,    73,     8,   102,     3,    72,    73,
-       7,     3,     8,   150,     6,    67,    68,    69,    70,    71,
-      72,    73,   159,   160,   161,     7,    11,    12,    92,    93,
-      15,   105,   106,    18,    19,    20,  1059,  1059,     7,    91,
-     177,     7,    94,    72,    73,   124,   125,  1059,     7,   177,
-    1059,  1059,   177,   178,   179,   180,   141,   142,    43,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-     108,   109,   110,   111,   112,   113,   177,   177,     7,     3,
-       7,   177,     7,   152,     8,   154,   155,    72,    73,   118,
-     119,   120,   121,    53,    79,   151,    54,     6,   177,    84,
-      85,    86,    87,    88,   886,    90,   868,    65,   177,     3,
-      95,     3,     3,   177,    72,    73,     8,     8,     3,   104,
-       4,     8,   107,     8,   913,   177,     3,     3,     3,   114,
-       3,     8,     8,    91,     3,     8,    94,   122,   123,     8,
-       3,   126,   127,     4,     3,     8,   380,     4,   177,     8,
-      43,    44,    45,    46,    47,    48,    49,     4,     3,    52,
-       3,    54,    55,     8,     4,     8,   151,     4,     4,   144,
-     145,   146,   147,    55,    56,    57,    58,    59,    60,    72,
-      73,     4,    75,    76,   418,    78,    79,     4,   422,     3,
-      72,    73,   177,     4,     8,     4,     4,     3,    91,     4,
-     434,    94,     8,   437,   434,   180,   422,     4,     3,   102,
-     444,   434,     3,     8,     4,     4,   434,     8,   434,   177,
-     454,   437,     3,   370,   371,     4,     3,     8,   444,     4,
-     464,     8,     3,   437,     3,   469,   434,     8,   454,     8,
-     444,   469,     8,   434,   434,     3,     3,   422,   464,     3,
-       8,     8,     8,   469,   434,   489,     3,   434,   464,   434,
-       3,     8,   437,   469,   469,     8,     4,     3,     8,   444,
-     491,   434,     8,   489,   437,   434,    72,    73,     3,   454,
-      54,   444,     4,   437,   177,    22,    23,    24,    25,   464,
-     444,   454,     4,     8,   469,   177,     3,   177,    72,    73,
-      80,    81,    82,    83,    98,    99,     4,   101,   115,   116,
-     117,     4,     4,     4,   489,     4,    90,     4,     4,     4,
-       4,     4,    96,    97,    98,    99,   100,   101,     4,     4,
-       4,     4,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,     4,     4,     4,     4,   178,
-     178,   178,   148,   149,   178,   502,   503,   504,   162,   163,
-     164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-     174,   175,   176,     4,     4,   609,   178,   180,   179,   179,
-       4,   177,   616,     4,     4,     4,     4,     4,     4,   610,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     616,     4,   178,   177,     4,     4,     4,   641,   642,     4,
-     644,     4,   180,     4,     4,   178,   180,     4,     4,     4,
-       4,     4,     4,   178,     4,   641,   642,   178,   644,   178,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,   586,
-       4,   616,     4,   178,     4,     4,   180,   180,   180,     4,
-     180,     4,     4,     4,   178,   178,     4,   178,     4,     4,
-     180,   608,   180,     4,     4,     4,   641,   642,     4,   644,
-     178,     4,     7,     7,   177,     7,     7,     7,     7,     5,
-     177,     5,     5,     5,     3,     5,     7,   177,     5,     5,
-       5,     3,     5,     7,     5,     5,   177,   177,     7,     7,
-       7,     7,     5,     5,     5,     5,   177,   177,     7,   177,
-     177,   177,   177,   177,   177,   177,   177,   177,   143,     5,
-       7,     4,   177,   177,   177,   177,   177,   177,   177,   177,
-     177,   177,   177,     7,     7,     7,     7,     7,     7,    89,
-       7,     7,     7,     7,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,   180,   177,     6,     6,     6,     3,     6,
-       3,     3,     6,   178,     3,     6,     6,     3,     6,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     3,   180,
-       6,     3,     6,     4,   178,     8,     6,     4,     4,     4,
-     178,     4,     4,     4,     4,     4,     4,   178,     4,   178,
-     178,   178,     4,   178,   180,     4,     6,     3,   539,     4,
-       8,     8,     4,   178,     8,   178,     3,   178,     8,     4,
-     178,   178,   178,     4,   178,     4,     4,     7,     5,   178,
-     177,     4,     4,   177,   177,   177,     4,   871,     4,   177,
-     874,   871,   609,   877,   634,   418,   880,   690,   871,   877,
-     880,   178,   177,   871,   380,   871,   865,   891,   874,   177,
-     894,   877,   880,   897,   880,   616,   883,   870,   874,   422,
-     889,   877,   877,   871,   880,   891,   880,   899,   894,   913,
-     871,   871,   880,   917,   177,   891,   920,   177,   177,   880,
-     880,   871,   926,   177,   871,   929,   871,   913,   177,   874,
-     880,   917,   877,   880,   920,   880,   906,   886,   871,   177,
-     926,   897,   871,   929,   920,   178,   891,   880,   180,   894,
-     472,   880,   926,   873,   434,   929,   880,   871,   891,   177,
-     882,   894,  1059,    81,   180,   876,   874,   464,   913,   879,
-     177,   877,   917,   928,   926,   920,   929,   931,   444,   437,
-     469,   926,   894,   896,   929,   454,   655,   892,  1065,   178,
-     913,   917,   615,   926,   495,   644,   929,  1078,   610,  1099,
-     177,  1116,   926,   489,   491,   929,   921,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      40,    41,    42,    22,    23,    24,    25,   177,   178,   179,
+     180,   177,     7,   177,     3,    55,   151,     6,     6,    43,
+      44,    45,    46,    47,    48,    49,     3,   888,   870,     6,
+      54,   108,   109,   110,   111,   112,   113,     7,     7,     3,
+      64,     3,    66,    54,     8,   915,     8,     7,    72,    73,
+      74,    75,    76,    77,    78,    79,    67,    68,    69,    70,
+      71,    72,    73,    54,     3,     7,     3,    91,   382,     8,
+      94,    95,     3,     8,    65,     4,     3,     8,   102,     3,
+      91,    72,    73,    94,     8,     4,     4,    43,    44,    45,
+      46,    47,    48,    49,     4,     4,    52,     3,    54,    55,
+      91,     3,     8,    94,     3,     3,     8,     4,   422,     8,
+       8,     4,   426,     3,     8,     4,    72,    73,     8,    75,
+      76,     3,    78,    79,   438,     3,     8,   441,   438,     4,
+       8,     4,     4,   426,   448,    91,   438,   177,    94,     4,
+     438,     3,     3,   441,   458,   438,   102,     8,   441,     4,
+     448,     3,   438,   177,   468,   448,     8,   426,   438,   473,
+     458,     4,   438,     3,   473,   458,   177,   473,     8,   438,
+      55,     4,   441,   372,   373,   468,   438,   491,   491,   448,
+     473,   438,    98,    99,   438,   101,   177,    72,    73,   458,
+     441,    54,     4,   115,   116,   117,   441,   448,   491,   468,
+     491,   438,     4,   448,   473,   493,     4,   468,     8,    72,
+      73,     4,   473,    55,    56,    57,    58,    59,    60,     8,
+       3,   177,   491,    72,    73,     4,     4,    90,     8,     3,
+      72,    73,     4,    96,    97,    98,    99,   100,   101,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+     173,   174,   175,   176,     4,     4,     4,     4,     4,     4,
+     177,     4,     4,     4,     4,     4,     4,   152,     4,   154,
+     155,     4,     4,     4,     4,   178,   180,   178,   178,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   177,   179,   178,     4,   179,   611,   178,   148,
+     149,     4,     4,     4,   618,   504,   505,   506,     4,     4,
+       4,     4,     4,     4,   177,     4,     4,     4,     4,     4,
+       4,     4,   178,     4,   612,   618,     4,     4,   177,   643,
+     644,     4,   646,   646,     4,   177,     4,     4,     4,   180,
+       4,     4,     4,     4,   178,   180,     4,     4,     4,   618,
+     643,   644,     4,   646,     4,   646,   178,     4,   178,   178,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,   178,
+       4,     4,     4,   180,   643,   644,     4,   646,     4,   180,
+       4,   180,     4,   180,     4,     4,   178,   178,   178,     4,
+       4,   590,   180,   180,     4,     4,     4,   178,     4,   143,
+       7,   177,     7,     7,     7,     7,     7,     5,   177,     5,
+       5,   610,     5,     7,   177,     5,     5,     5,     5,   177,
+       5,     7,     5,     5,   177,   177,     7,     7,     7,     7,
+       5,     5,     5,     5,    89,     5,     7,     4,     7,     7,
+     177,     7,   177,   177,     7,     7,     7,     7,   177,   177,
+     177,   177,   177,   177,   177,   177,   177,   177,   177,   177,
+     177,   177,   177,   177,   177,   177,     7,     7,     7,     7,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     3,
+     177,     6,     3,     6,     6,     3,     6,     3,     3,     6,
+     180,     3,     6,     6,     3,     6,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     3,   178,     6,     3,     6,
+       4,   180,     8,     6,     4,     4,     4,     4,   178,   178,
+       4,     4,     4,     4,   178,   178,     4,   178,     4,   178,
+       4,     4,   180,   178,     6,     3,     7,     4,     8,     8,
+       4,     3,     8,   178,     4,     8,     4,   178,   178,   178,
+       4,   178,     4,   178,     5,   178,     4,   178,     4,   873,
+     177,   177,   876,   873,   177,   879,   177,     4,   882,     4,
+     879,   873,   882,   879,   541,   873,   382,   177,   177,   893,
+     873,   178,   896,   876,   882,   899,   879,   873,   180,   882,
+     636,   611,   422,   873,   178,   893,   882,   873,   896,   426,
+     893,   915,   882,   896,   873,   919,   882,   876,   922,   618,
+     879,   873,   177,   882,   928,   876,   873,   931,   879,   873,
+     882,   882,   915,   177,   893,   882,   919,   896,   882,   922,
+     928,   882,   893,   931,   177,   928,   873,   882,   931,   692,
+     177,   177,   177,   872,   867,   882,   915,   891,   888,   885,
+     919,   899,   901,   922,   875,   476,   908,   884,   177,   928,
+    1061,   922,   931,   873,    81,   438,   878,   177,   879,   473,
+     876,   930,   468,   928,   441,   931,   881,   928,   448,   898,
+     931,   896,  1067,   928,   659,   177,   931,   933,   919,   180,
+     458,   915,   178,   894,   646,   923,   491,   177,   612,  1080,
+    1118,  1101,   617,   497,    -1,    -1,    -1,   493,    -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,  1059,    -1,    -1,    -1,  1059,
-      -1,  1065,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  1059,    -1,  1059,  1078,    -1,    -1,    -1,    -1,  1065,
-      -1,    -1,    -1,  1059,    -1,  1059,    -1,    -1,    -1,  1065,
-      -1,  1059,  1078,    -1,    -1,    -1,    -1,    -1,  1059,  1059,
-      -1,    -1,  1078,    -1,    -1,    -1,    -1,    -1,    -1,  1059,
-      -1,    -1,  1059,    -1,  1059,    -1,    -1,    -1,    -1,    -1,
-    1065,    -1,    -1,    -1,    -1,    -1,  1059,    -1,    -1,    -1,
-    1059,    -1,  1065,  1078,    -1,  1059
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  1061,    -1,    -1,
+      -1,  1061,    -1,  1067,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  1061,    -1,    -1,  1080,    -1,  1061,  1067,
+      -1,    -1,    -1,    -1,  1067,  1061,    -1,    -1,    -1,    -1,
+      -1,  1061,    -1,    -1,    -1,  1061,    -1,  1080,    -1,    -1,
+      -1,    -1,  1061,    -1,    -1,    -1,    -1,    -1,  1067,  1061,
+    1061,    -1,    -1,    -1,  1061,    -1,  1067,  1061,    -1,    -1,
+    1061,  1080,    -1,    -1,    -1,    -1,  1061,    -1,    -1,  1080,
+      -1,    -1,    -1,    -1,  1061
   };
 
   const unsigned short
@@ -4680,105 +4682,105 @@ namespace isc { namespace dhcp {
       15,    18,    19,    20,    43,    44,    45,    46,    47,    48,
       49,    50,    51,    52,    53,    54,    72,    73,    79,    84,
       85,    86,    87,    88,    90,    95,   104,   107,   114,   122,
-     123,   126,   127,   151,   213,   222,   223,   224,   226,   227,
-     228,   229,   230,   231,   232,   233,   234,   236,   245,   247,
-     249,   286,   292,   298,   304,   306,   320,   330,   350,   355,
-     363,   389,   419,   421,   440,   470,   482,   494,   495,   503,
-     505,   543,   558,    16,    17,   213,   240,   241,   242,   244,
-     419,   421,    64,    66,    74,    75,    76,    77,    78,    91,
-      94,   102,   213,   226,   227,   228,   229,   230,   231,   232,
-     338,   339,   340,   342,   344,   346,   348,   350,   353,   354,
-     389,   407,   419,   421,   423,   440,   465,    65,   213,   346,
-     348,   389,   415,   416,   417,   419,   421,    67,    68,    69,
-      70,    71,   213,   346,   348,   389,   419,   421,   431,   432,
-     433,   435,   436,   438,   439,    90,    96,    97,    98,    99,
-     100,   101,   213,   389,   419,   421,   448,   449,   450,   451,
-     453,   455,   457,   459,   461,   463,   363,    21,    55,    57,
-      58,    61,    62,    63,   213,   267,   373,   374,   375,   376,
-     377,   378,   379,   381,   383,   385,   386,   388,   419,   421,
-      56,    59,    60,   213,   267,   377,   383,   397,   398,   399,
-     400,   401,   403,   404,   405,   406,   419,   421,   105,   106,
-     213,   314,   315,   316,   318,   128,   129,   130,   131,   132,
-     133,   134,   135,   136,   137,   138,   139,   140,   148,   149,
-     213,   419,   421,   509,   510,   511,   512,   514,   516,   517,
-     519,   520,   521,   524,   526,   527,   528,   531,   533,   535,
-     556,   557,   558,    13,    14,   547,   548,   549,   551,     6,
-       3,     4,     8,     3,   219,   553,   538,   540,   542,     4,
-       3,     8,   225,   544,   237,   246,   248,   250,     4,     4,
-       4,     4,     4,     4,     4,     4,   235,   331,   364,   390,
-     420,   422,   351,   356,   293,   305,   299,   287,   471,   441,
-     307,   321,   483,     4,   496,   504,   506,   559,     3,     8,
-     243,     4,     3,     8,   408,   424,   341,   343,   345,     4,
-       4,   349,   347,   466,     3,     8,   418,     3,     8,   434,
-       4,   437,     4,     4,     3,     8,   464,   452,   454,   456,
-     458,   460,   462,     8,     3,     8,   380,   268,     4,   384,
-     382,   387,     4,     8,     3,   402,     4,     4,     8,     3,
-     317,   319,     3,     8,     4,   513,   515,     4,   518,     4,
-       4,   522,   525,     4,     4,   529,   532,   534,   536,     3,
-       8,     3,     8,   550,     4,     3,     8,   198,   198,   177,
-       4,     4,     4,     4,     4,   217,     4,     4,     4,     4,
-       4,     4,   178,   178,   178,   178,   180,   179,   179,   178,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,   178,     4,     4,
-       4,     4,   223,     4,   180,   241,     4,     4,     4,     4,
-       4,   178,   180,     4,     4,     4,   339,     4,   416,     4,
-     178,     4,   178,   178,   432,     4,     4,     4,     4,     4,
-       4,     4,   450,     4,     4,   178,     4,     4,     4,   180,
-     375,     4,   180,   180,   399,     4,     4,   315,   180,     4,
-       4,   178,     4,   178,   178,     4,     4,   180,   180,     4,
-       4,     4,     4,   510,   557,     4,   178,   548,     4,     7,
-       7,   198,   198,   198,   177,     7,     7,     7,     7,     5,
-     177,     5,     5,     5,   200,   202,   177,    80,    81,    82,
-      83,   352,     5,     5,     5,     5,     7,     5,     5,     5,
-       7,     7,     7,   202,     7,     5,     5,   209,     5,     5,
-     177,   177,   177,   209,   177,     7,   177,   177,   177,   209,
-     209,   209,   177,   177,   177,   177,   177,   177,   177,   177,
-     177,   177,   177,   198,   177,   177,   177,   141,   142,   523,
-     143,   144,   145,   146,   147,   180,   530,   177,   177,   177,
-       5,   198,   222,   556,   547,   240,    21,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
-      39,    40,    41,    42,   213,   255,   256,   257,   260,   262,
-     264,   266,   267,   269,   270,   271,   272,   273,   274,   275,
-     276,   277,   279,   280,   282,   284,   255,     7,   251,   252,
-     253,     7,   332,   333,   334,     7,   367,   368,   369,     7,
-     391,   392,   393,     7,   357,   358,   359,    98,   177,   294,
-     295,   296,   297,   207,    99,   101,   296,   300,   301,   302,
-     303,    89,   288,   289,   290,     7,   472,   473,     7,   442,
-     443,   444,     7,   308,   309,   310,   108,   109,   110,   111,
-     112,   113,   322,   323,   324,   325,   326,   327,   328,   329,
-      21,   118,   119,   120,   121,   213,   269,   419,   421,   484,
-     485,   486,   489,   490,   492,   493,   124,   125,   213,   419,
-     421,   497,   498,   499,   501,   509,     7,   560,   561,   210,
-       7,   409,   410,   411,     7,   425,   426,   427,   103,   451,
-     467,   468,   251,     8,     8,     8,     8,   258,   261,   263,
-     265,     4,     4,     4,     4,     4,   278,     4,     4,   281,
-     283,   285,     4,     4,     4,     3,     8,     8,   254,     6,
-       3,   335,     6,     3,   370,     6,     3,   394,     6,     3,
-     360,     6,     3,     3,     6,     6,     3,     6,   291,     3,
-       8,   474,     3,     6,   445,     6,     3,   311,     6,     3,
-       4,     4,     4,     4,     4,     4,     3,     8,   487,   491,
-       4,     4,     4,     3,     8,   500,   502,     3,     8,     8,
-     562,     3,     6,   177,   211,   212,   412,     6,     3,   428,
-       6,     3,   469,     8,     6,     4,     4,     4,     4,   178,
-     180,   178,   180,   178,     4,   178,   178,     4,     4,     4,
-     178,   178,   180,   256,   255,   253,   338,   334,   373,   369,
-     397,   393,   213,   226,   227,   228,   229,   230,   231,   232,
-     267,   330,   342,   344,   346,   348,   350,   354,   361,   362,
-     389,   419,   421,   465,   359,   295,   301,     4,   289,    92,
-      93,   213,   267,   389,   419,   421,   475,   476,   477,   478,
-     479,   481,   473,   448,   444,   314,   310,   178,   178,   178,
-     178,   178,   178,   323,     4,     4,   178,   178,   178,   485,
-       4,     4,   498,   152,   154,   155,   213,   267,   419,   421,
-     563,   564,   565,   566,   568,   561,     6,     3,   415,   411,
-     431,   427,     4,    22,    23,    24,    25,   259,   177,   177,
-     177,   177,   177,   177,   177,     8,     8,     8,     8,     3,
-       8,   177,   480,     4,     8,     3,     8,     8,   115,   116,
-     117,   488,   177,   177,   177,   569,     4,   567,     3,     8,
-     177,     8,     8,   177,   362,     4,   180,   477,     4,   178,
-       4,   564,   177,     5,   177,     7,   570,   571,   572,     3,
-       6,   153,   156,   157,   158,   573,   574,   575,   577,   578,
-     579,   571,   576,     4,     4,     4,     3,     8,     4,   180,
-     178,   178,   574,   177
+     123,   126,   127,   148,   149,   151,   213,   222,   223,   224,
+     226,   227,   228,   229,   230,   231,   232,   233,   234,   236,
+     245,   247,   249,   286,   292,   298,   304,   306,   320,   330,
+     350,   355,   363,   389,   419,   421,   440,   470,   482,   494,
+     495,   503,   505,   533,   535,   543,   558,    16,    17,   213,
+     240,   241,   242,   244,   419,   421,    64,    66,    74,    75,
+      76,    77,    78,    91,    94,   102,   213,   226,   227,   228,
+     229,   230,   231,   232,   338,   339,   340,   342,   344,   346,
+     348,   350,   353,   354,   389,   407,   419,   421,   423,   440,
+     465,    65,   213,   346,   348,   389,   415,   416,   417,   419,
+     421,    67,    68,    69,    70,    71,   213,   346,   348,   389,
+     419,   421,   431,   432,   433,   435,   436,   438,   439,    90,
+      96,    97,    98,    99,   100,   101,   213,   389,   419,   421,
+     448,   449,   450,   451,   453,   455,   457,   459,   461,   463,
+     363,    21,    55,    57,    58,    61,    62,    63,   213,   267,
+     373,   374,   375,   376,   377,   378,   379,   381,   383,   385,
+     386,   388,   419,   421,    56,    59,    60,   213,   267,   377,
+     383,   397,   398,   399,   400,   401,   403,   404,   405,   406,
+     419,   421,   105,   106,   213,   314,   315,   316,   318,   128,
+     129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   213,   419,   421,   509,   510,   511,   512,   514,
+     516,   517,   519,   520,   521,   524,   526,   527,   528,   531,
+     533,   535,   556,   557,   558,    13,    14,   547,   548,   549,
+     551,     6,     3,     4,     8,     3,   219,   553,   538,   540,
+     542,     4,     3,     8,   225,   544,   237,   246,   248,   250,
+       4,     4,     4,     4,     4,     4,     4,     4,   235,   331,
+     364,   390,   420,   422,   351,   356,   293,   305,   299,   287,
+     471,   441,   307,   321,   483,     4,   496,   504,   506,   534,
+     536,   559,     3,     8,   243,     4,     3,     8,   408,   424,
+     341,   343,   345,     4,     4,   349,   347,   466,     3,     8,
+     418,     3,     8,   434,     4,   437,     4,     4,     3,     8,
+     464,   452,   454,   456,   458,   460,   462,     8,     3,     8,
+     380,   268,     4,   384,   382,   387,     4,     8,     3,   402,
+       4,     4,     8,     3,   317,   319,     3,     8,     4,   513,
+     515,     4,   518,     4,     4,   522,   525,     4,     4,   529,
+     532,     3,     8,     3,     8,   550,     4,     3,     8,   198,
+     198,   177,     4,     4,     4,     4,     4,   217,     4,     4,
+       4,     4,     4,     4,   178,   178,   178,   178,   180,   179,
+     179,   178,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,   178,
+       4,     4,     4,     4,     4,     4,   223,     4,   180,   241,
+       4,     4,     4,     4,     4,   178,   180,     4,     4,     4,
+     339,     4,   416,     4,   178,     4,   178,   178,   432,     4,
+       4,     4,     4,     4,     4,     4,   450,     4,     4,   178,
+       4,     4,     4,   180,   375,     4,   180,   180,   399,     4,
+       4,   315,   180,     4,     4,   178,     4,   178,   178,     4,
+       4,   180,   180,     4,     4,   510,   557,     4,   178,   548,
+       4,     7,     7,   198,   198,   198,   177,     7,     7,     7,
+       7,     5,   177,     5,     5,     5,   200,   202,   177,    80,
+      81,    82,    83,   352,     5,     5,     5,     5,     7,     5,
+       5,     5,     7,     7,     7,   202,     7,   177,   177,     5,
+       5,   209,     5,     5,   177,   177,   177,   209,   177,     7,
+     177,   177,   177,   209,   209,   209,   177,   177,   177,   177,
+     177,   177,   177,   177,   177,   177,   177,   198,   177,   177,
+     177,   141,   142,   523,   143,   144,   145,   146,   147,   180,
+     530,   177,     5,   198,   222,   556,   547,   240,    21,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,    39,    40,    41,    42,   213,   255,   256,   257,
+     260,   262,   264,   266,   267,   269,   270,   271,   272,   273,
+     274,   275,   276,   277,   279,   280,   282,   284,   255,     7,
+     251,   252,   253,     7,   332,   333,   334,     7,   367,   368,
+     369,     7,   391,   392,   393,     7,   357,   358,   359,    98,
+     177,   294,   295,   296,   297,   207,    99,   101,   296,   300,
+     301,   302,   303,    89,   288,   289,   290,     7,   472,   473,
+       7,   442,   443,   444,     7,   308,   309,   310,   108,   109,
+     110,   111,   112,   113,   322,   323,   324,   325,   326,   327,
+     328,   329,    21,   118,   119,   120,   121,   213,   269,   419,
+     421,   484,   485,   486,   489,   490,   492,   493,   124,   125,
+     213,   419,   421,   497,   498,   499,   501,   509,     7,   560,
+     561,   210,     7,   409,   410,   411,     7,   425,   426,   427,
+     103,   451,   467,   468,   251,     8,     8,     8,     8,   258,
+     261,   263,   265,     4,     4,     4,     4,     4,   278,     4,
+       4,   281,   283,   285,     4,     4,     4,     3,     8,     8,
+     254,     6,     3,   335,     6,     3,   370,     6,     3,   394,
+       6,     3,   360,     6,     3,     3,     6,     6,     3,     6,
+     291,     3,     8,   474,     3,     6,   445,     6,     3,   311,
+       6,     3,     4,     4,     4,     4,     4,     4,     3,     8,
+     487,   491,     4,     4,     4,     3,     8,   500,   502,     3,
+       8,     8,   562,     3,     6,   177,   211,   212,   412,     6,
+       3,   428,     6,     3,   469,     8,     6,     4,     4,     4,
+       4,   178,   180,   178,   180,   178,     4,   178,   178,     4,
+       4,     4,   178,   178,   180,   256,   255,   253,   338,   334,
+     373,   369,   397,   393,   213,   226,   227,   228,   229,   230,
+     231,   232,   267,   330,   342,   344,   346,   348,   350,   354,
+     361,   362,   389,   419,   421,   465,   359,   295,   301,     4,
+     289,    92,    93,   213,   267,   389,   419,   421,   475,   476,
+     477,   478,   479,   481,   473,   448,   444,   314,   310,   178,
+     178,   178,   178,   178,   178,   323,     4,     4,   178,   178,
+     178,   485,     4,     4,   498,   152,   154,   155,   213,   267,
+     419,   421,   563,   564,   565,   566,   568,   561,     6,     3,
+     415,   411,   431,   427,     4,    22,    23,    24,    25,   259,
+     177,   177,   177,   177,   177,   177,   177,     8,     8,     8,
+       8,     3,     8,   177,   480,     4,     8,     3,     8,     8,
+     115,   116,   117,   488,   177,   177,   177,   569,     4,   567,
+       3,     8,   177,     8,     8,   177,   362,     4,   180,   477,
+       4,   178,     4,   564,   177,     5,   177,     7,   570,   571,
+     572,     3,     6,   153,   156,   157,   158,   573,   574,   575,
+     577,   578,   579,   571,   576,     4,     4,     4,     3,     8,
+       4,   180,   178,   178,   574,   177
   };
 
   const unsigned short
@@ -4795,65 +4797,65 @@ namespace isc { namespace dhcp {
      223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
      223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
      223,   223,   223,   223,   223,   223,   223,   223,   223,   223,
-     223,   223,   223,   225,   224,   226,   227,   228,   229,   230,
-     231,   232,   233,   235,   234,   237,   236,   239,   238,   240,
-     240,   241,   241,   241,   241,   241,   243,   242,   244,   246,
-     245,   248,   247,   250,   249,   251,   251,   252,   252,   254,
-     253,   255,   255,   256,   256,   256,   256,   256,   256,   256,
+     223,   223,   223,   223,   223,   225,   224,   226,   227,   228,
+     229,   230,   231,   232,   233,   235,   234,   237,   236,   239,
+     238,   240,   240,   241,   241,   241,   241,   241,   243,   242,
+     244,   246,   245,   248,   247,   250,   249,   251,   251,   252,
+     252,   254,   253,   255,   255,   256,   256,   256,   256,   256,
      256,   256,   256,   256,   256,   256,   256,   256,   256,   256,
-     256,   256,   256,   258,   257,   259,   259,   259,   259,   261,
-     260,   263,   262,   265,   264,   266,   268,   267,   269,   270,
-     271,   272,   273,   274,   275,   276,   278,   277,   279,   281,
-     280,   283,   282,   285,   284,   287,   286,   288,   288,   289,
-     291,   290,   293,   292,   294,   294,   295,   295,   296,   297,
-     299,   298,   300,   300,   301,   301,   301,   302,   303,   305,
-     304,   307,   306,   308,   308,   309,   309,   311,   310,   313,
-     312,   314,   314,   314,   315,   315,   317,   316,   319,   318,
-     321,   320,   322,   322,   323,   323,   323,   323,   323,   323,
-     324,   325,   326,   327,   328,   329,   331,   330,   332,   332,
-     333,   333,   335,   334,   337,   336,   338,   338,   339,   339,
+     256,   256,   256,   256,   256,   258,   257,   259,   259,   259,
+     259,   261,   260,   263,   262,   265,   264,   266,   268,   267,
+     269,   270,   271,   272,   273,   274,   275,   276,   278,   277,
+     279,   281,   280,   283,   282,   285,   284,   287,   286,   288,
+     288,   289,   291,   290,   293,   292,   294,   294,   295,   295,
+     296,   297,   299,   298,   300,   300,   301,   301,   301,   302,
+     303,   305,   304,   307,   306,   308,   308,   309,   309,   311,
+     310,   313,   312,   314,   314,   314,   315,   315,   317,   316,
+     319,   318,   321,   320,   322,   322,   323,   323,   323,   323,
+     323,   323,   324,   325,   326,   327,   328,   329,   331,   330,
+     332,   332,   333,   333,   335,   334,   337,   336,   338,   338,
      339,   339,   339,   339,   339,   339,   339,   339,   339,   339,
      339,   339,   339,   339,   339,   339,   339,   339,   339,   339,
-     339,   341,   340,   343,   342,   345,   344,   347,   346,   349,
-     348,   351,   350,   352,   352,   352,   352,   353,   354,   356,
-     355,   357,   357,   358,   358,   360,   359,   361,   361,   362,
+     339,   339,   339,   341,   340,   343,   342,   345,   344,   347,
+     346,   349,   348,   351,   350,   352,   352,   352,   352,   353,
+     354,   356,   355,   357,   357,   358,   358,   360,   359,   361,
+     361,   362,   362,   362,   362,   362,   362,   362,   362,   362,
      362,   362,   362,   362,   362,   362,   362,   362,   362,   362,
-     362,   362,   362,   362,   362,   362,   362,   362,   362,   364,
-     363,   366,   365,   367,   367,   368,   368,   370,   369,   372,
-     371,   373,   373,   374,   374,   375,   375,   375,   375,   375,
-     375,   375,   375,   375,   375,   376,   377,   378,   380,   379,
-     382,   381,   384,   383,   385,   387,   386,   388,   390,   389,
-     391,   391,   392,   392,   394,   393,   396,   395,   397,   397,
-     398,   398,   399,   399,   399,   399,   399,   399,   399,   399,
-     399,   400,   402,   401,   403,   404,   405,   406,   408,   407,
-     409,   409,   410,   410,   412,   411,   414,   413,   415,   415,
-     416,   416,   416,   416,   416,   416,   416,   418,   417,   420,
-     419,   422,   421,   424,   423,   425,   425,   426,   426,   428,
-     427,   430,   429,   431,   431,   432,   432,   432,   432,   432,
-     432,   432,   432,   432,   432,   432,   434,   433,   435,   437,
-     436,   438,   439,   441,   440,   442,   442,   443,   443,   445,
-     444,   447,   446,   448,   448,   449,   449,   450,   450,   450,
-     450,   450,   450,   450,   450,   450,   450,   450,   452,   451,
-     454,   453,   456,   455,   458,   457,   460,   459,   462,   461,
-     464,   463,   466,   465,   467,   467,   469,   468,   471,   470,
-     472,   472,   474,   473,   475,   475,   476,   476,   477,   477,
-     477,   477,   477,   477,   477,   478,   480,   479,   481,   483,
-     482,   484,   484,   485,   485,   485,   485,   485,   485,   485,
-     485,   485,   487,   486,   488,   488,   488,   489,   491,   490,
-     492,   493,   494,   496,   495,   497,   497,   498,   498,   498,
-     498,   498,   500,   499,   502,   501,   504,   503,   506,   505,
-     508,   507,   509,   509,   510,   510,   510,   510,   510,   510,
+     362,   364,   363,   366,   365,   367,   367,   368,   368,   370,
+     369,   372,   371,   373,   373,   374,   374,   375,   375,   375,
+     375,   375,   375,   375,   375,   375,   375,   376,   377,   378,
+     380,   379,   382,   381,   384,   383,   385,   387,   386,   388,
+     390,   389,   391,   391,   392,   392,   394,   393,   396,   395,
+     397,   397,   398,   398,   399,   399,   399,   399,   399,   399,
+     399,   399,   399,   400,   402,   401,   403,   404,   405,   406,
+     408,   407,   409,   409,   410,   410,   412,   411,   414,   413,
+     415,   415,   416,   416,   416,   416,   416,   416,   416,   418,
+     417,   420,   419,   422,   421,   424,   423,   425,   425,   426,
+     426,   428,   427,   430,   429,   431,   431,   432,   432,   432,
+     432,   432,   432,   432,   432,   432,   432,   432,   434,   433,
+     435,   437,   436,   438,   439,   441,   440,   442,   442,   443,
+     443,   445,   444,   447,   446,   448,   448,   449,   449,   450,
+     450,   450,   450,   450,   450,   450,   450,   450,   450,   450,
+     452,   451,   454,   453,   456,   455,   458,   457,   460,   459,
+     462,   461,   464,   463,   466,   465,   467,   467,   469,   468,
+     471,   470,   472,   472,   474,   473,   475,   475,   476,   476,
+     477,   477,   477,   477,   477,   477,   477,   478,   480,   479,
+     481,   483,   482,   484,   484,   485,   485,   485,   485,   485,
+     485,   485,   485,   485,   487,   486,   488,   488,   488,   489,
+     491,   490,   492,   493,   494,   496,   495,   497,   497,   498,
+     498,   498,   498,   498,   500,   499,   502,   501,   504,   503,
+     506,   505,   508,   507,   509,   509,   510,   510,   510,   510,
      510,   510,   510,   510,   510,   510,   510,   510,   510,   510,
-     510,   510,   511,   513,   512,   515,   514,   516,   518,   517,
-     519,   520,   522,   521,   523,   523,   525,   524,   526,   527,
-     529,   528,   530,   530,   530,   530,   530,   532,   531,   534,
-     533,   536,   535,   538,   537,   540,   539,   542,   541,   544,
-     543,   546,   545,   547,   547,   548,   548,   550,   549,   551,
-     553,   552,   555,   554,   556,   556,   557,   559,   558,   560,
-     560,   562,   561,   563,   563,   564,   564,   564,   564,   564,
-     564,   564,   565,   567,   566,   569,   568,   570,   570,   572,
-     571,   573,   573,   574,   574,   574,   574,   576,   575,   577,
-     578,   579
+     510,   510,   510,   510,   511,   513,   512,   515,   514,   516,
+     518,   517,   519,   520,   522,   521,   523,   523,   525,   524,
+     526,   527,   529,   528,   530,   530,   530,   530,   530,   532,
+     531,   534,   533,   536,   535,   538,   537,   540,   539,   542,
+     541,   544,   543,   546,   545,   547,   547,   548,   548,   550,
+     549,   551,   553,   552,   555,   554,   556,   556,   557,   559,
+     558,   560,   560,   562,   561,   563,   563,   564,   564,   564,
+     564,   564,   564,   564,   565,   567,   566,   569,   568,   570,
+     570,   572,   571,   573,   573,   574,   574,   574,   574,   576,
+     575,   577,   578,   579
   };
 
   const unsigned char
@@ -4870,65 +4872,65 @@ namespace isc { namespace dhcp {
        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,     0,     4,     3,     3,     3,     3,     3,
-       3,     3,     3,     0,     4,     0,     6,     0,     4,     1,
-       3,     1,     1,     1,     1,     1,     0,     4,     3,     0,
-       6,     0,     6,     0,     6,     0,     1,     1,     3,     0,
-       4,     1,     3,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     0,     4,     3,     3,     3,
+       3,     3,     3,     3,     3,     0,     4,     0,     6,     0,
+       4,     1,     3,     1,     1,     1,     1,     1,     0,     4,
+       3,     0,     6,     0,     6,     0,     6,     0,     1,     1,
+       3,     0,     4,     1,     3,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     0,     4,     1,     1,     1,     1,     0,
-       4,     0,     4,     0,     4,     3,     0,     4,     3,     3,
-       3,     3,     3,     3,     3,     3,     0,     4,     3,     0,
-       4,     0,     4,     0,     4,     0,     6,     1,     3,     1,
+       1,     1,     1,     1,     1,     0,     4,     1,     1,     1,
+       1,     0,     4,     0,     4,     0,     4,     3,     0,     4,
+       3,     3,     3,     3,     3,     3,     3,     3,     0,     4,
+       3,     0,     4,     0,     4,     0,     4,     0,     6,     1,
+       3,     1,     0,     4,     0,     6,     1,     3,     1,     1,
+       1,     1,     0,     6,     1,     3,     1,     1,     1,     1,
+       1,     0,     6,     0,     6,     0,     1,     1,     3,     0,
+       4,     0,     4,     1,     3,     1,     1,     1,     0,     4,
        0,     4,     0,     6,     1,     3,     1,     1,     1,     1,
-       0,     6,     1,     3,     1,     1,     1,     1,     1,     0,
-       6,     0,     6,     0,     1,     1,     3,     0,     4,     0,
-       4,     1,     3,     1,     1,     1,     0,     4,     0,     4,
-       0,     6,     1,     3,     1,     1,     1,     1,     1,     1,
-       3,     3,     3,     3,     3,     3,     0,     6,     0,     1,
-       1,     3,     0,     4,     0,     4,     1,     3,     1,     1,
+       1,     1,     3,     3,     3,     3,     3,     3,     0,     6,
+       0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     0,     4,     0,     4,     0,     4,     0,     4,     0,
-       4,     0,     4,     1,     1,     1,     1,     3,     3,     0,
-       6,     0,     1,     1,     3,     0,     4,     1,     3,     1,
+       1,     1,     1,     0,     4,     0,     4,     0,     4,     0,
+       4,     0,     4,     0,     4,     1,     1,     1,     1,     3,
+       3,     0,     6,     0,     1,     1,     3,     0,     4,     1,
+       3,     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,     0,
-       6,     0,     4,     0,     1,     1,     3,     0,     4,     0,
-       4,     0,     1,     1,     3,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     3,     1,     0,     4,
-       0,     4,     0,     4,     1,     0,     4,     3,     0,     6,
-       0,     1,     1,     3,     0,     4,     0,     4,     0,     1,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     0,     4,     1,     1,     3,     3,     0,     6,
-       0,     1,     1,     3,     0,     4,     0,     4,     1,     3,
-       1,     1,     1,     1,     1,     1,     1,     0,     4,     0,
-       4,     0,     4,     0,     6,     0,     1,     1,     3,     0,
-       4,     0,     4,     1,     3,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     0,     4,     3,     0,
-       4,     3,     3,     0,     6,     0,     1,     1,     3,     0,
+       1,     0,     6,     0,     4,     0,     1,     1,     3,     0,
        4,     0,     4,     0,     1,     1,     3,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     3,     1,
+       0,     4,     0,     4,     0,     4,     1,     0,     4,     3,
+       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
+       0,     1,     1,     3,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     0,     4,     1,     1,     3,     3,
+       0,     6,     0,     1,     1,     3,     0,     4,     0,     4,
+       1,     3,     1,     1,     1,     1,     1,     1,     1,     0,
+       4,     0,     4,     0,     4,     0,     6,     0,     1,     1,
+       3,     0,     4,     0,     4,     1,     3,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
+       3,     0,     4,     3,     3,     0,     6,     0,     1,     1,
+       3,     0,     4,     0,     4,     0,     1,     1,     3,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
-       0,     4,     0,     6,     1,     1,     0,     4,     0,     6,
-       1,     3,     0,     4,     0,     1,     1,     3,     1,     1,
-       1,     1,     1,     1,     1,     1,     0,     4,     3,     0,
-       6,     1,     3,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     0,     4,     1,     1,     1,     3,     0,     4,
-       3,     3,     3,     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,
+       0,     4,     0,     4,     0,     6,     1,     1,     0,     4,
+       0,     6,     1,     3,     0,     4,     0,     1,     1,     3,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
+       3,     0,     6,     1,     3,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     0,     4,     1,     1,     1,     3,
+       0,     4,     3,     3,     3,     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,     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,
+       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,
-       6,     0,     4,     1,     3,     1,     1,     0,     6,     3,
-       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
+       4,     0,     6,     0,     4,     1,     3,     1,     1,     0,
+       6,     3,     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
   };
 
 
@@ -5100,65 +5102,65 @@ namespace isc { namespace dhcp {
      450,   451,   452,   453,   454,   455,   456,   457,   458,   459,
      460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
      470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
-     480,   481,   482,   485,   485,   493,   498,   503,   508,   513,
-     518,   523,   528,   533,   533,   541,   541,   552,   552,   561,
-     562,   565,   566,   567,   568,   569,   572,   572,   582,   588,
-     588,   600,   600,   612,   612,   622,   623,   626,   627,   630,
-     630,   640,   641,   644,   645,   646,   647,   648,   649,   650,
+     480,   481,   482,   483,   484,   487,   487,   495,   500,   505,
+     510,   515,   520,   525,   530,   535,   535,   543,   543,   554,
+     554,   563,   564,   567,   568,   569,   570,   571,   574,   574,
+     584,   590,   590,   602,   602,   614,   614,   624,   625,   628,
+     629,   632,   632,   642,   643,   646,   647,   648,   649,   650,
      651,   652,   653,   654,   655,   656,   657,   658,   659,   660,
-     661,   662,   663,   666,   666,   673,   674,   675,   676,   679,
-     679,   687,   687,   695,   695,   703,   708,   708,   716,   721,
-     726,   731,   736,   741,   746,   751,   756,   756,   764,   769,
-     769,   777,   777,   785,   785,   793,   793,   803,   804,   806,
-     808,   808,   826,   826,   836,   837,   840,   841,   844,   849,
-     854,   854,   864,   865,   868,   869,   870,   873,   878,   885,
-     885,   895,   895,   905,   906,   909,   910,   913,   913,   923,
-     923,   933,   934,   935,   938,   939,   942,   942,   950,   950,
-     958,   958,   969,   970,   973,   974,   975,   976,   977,   978,
-     981,   986,   991,   996,  1001,  1006,  1014,  1014,  1027,  1028,
-    1031,  1032,  1039,  1039,  1065,  1065,  1076,  1077,  1081,  1082,
+     661,   662,   663,   664,   665,   668,   668,   675,   676,   677,
+     678,   681,   681,   689,   689,   697,   697,   705,   710,   710,
+     718,   723,   728,   733,   738,   743,   748,   753,   758,   758,
+     766,   771,   771,   779,   779,   787,   787,   795,   795,   805,
+     806,   808,   810,   810,   828,   828,   838,   839,   842,   843,
+     846,   851,   856,   856,   866,   867,   870,   871,   872,   875,
+     880,   887,   887,   897,   897,   907,   908,   911,   912,   915,
+     915,   925,   925,   935,   936,   937,   940,   941,   944,   944,
+     952,   952,   960,   960,   971,   972,   975,   976,   977,   978,
+     979,   980,   983,   988,   993,   998,  1003,  1008,  1016,  1016,
+    1029,  1030,  1033,  1034,  1041,  1041,  1067,  1067,  1078,  1079,
     1083,  1084,  1085,  1086,  1087,  1088,  1089,  1090,  1091,  1092,
     1093,  1094,  1095,  1096,  1097,  1098,  1099,  1100,  1101,  1102,
-    1103,  1106,  1106,  1114,  1114,  1122,  1122,  1130,  1130,  1138,
-    1138,  1148,  1148,  1155,  1156,  1157,  1158,  1161,  1166,  1174,
-    1174,  1185,  1186,  1190,  1191,  1194,  1194,  1202,  1203,  1206,
-    1207,  1208,  1209,  1210,  1211,  1212,  1213,  1214,  1215,  1216,
-    1217,  1218,  1219,  1220,  1221,  1222,  1223,  1224,  1225,  1232,
-    1232,  1245,  1245,  1254,  1255,  1258,  1259,  1264,  1264,  1279,
-    1279,  1293,  1294,  1297,  1298,  1301,  1302,  1303,  1304,  1305,
-    1306,  1307,  1308,  1309,  1310,  1313,  1315,  1320,  1322,  1322,
-    1330,  1330,  1338,  1338,  1346,  1348,  1348,  1356,  1365,  1365,
-    1377,  1378,  1383,  1384,  1389,  1389,  1401,  1401,  1413,  1414,
-    1419,  1420,  1425,  1426,  1427,  1428,  1429,  1430,  1431,  1432,
-    1433,  1436,  1438,  1438,  1446,  1448,  1450,  1455,  1463,  1463,
-    1475,  1476,  1479,  1480,  1483,  1483,  1493,  1493,  1502,  1503,
-    1506,  1507,  1508,  1509,  1510,  1511,  1512,  1515,  1515,  1523,
-    1523,  1548,  1548,  1578,  1578,  1590,  1591,  1594,  1595,  1598,
-    1598,  1610,  1610,  1622,  1623,  1626,  1627,  1628,  1629,  1630,
-    1631,  1632,  1633,  1634,  1635,  1636,  1639,  1639,  1647,  1652,
-    1652,  1660,  1665,  1673,  1673,  1683,  1684,  1687,  1688,  1691,
-    1691,  1700,  1700,  1709,  1710,  1713,  1714,  1718,  1719,  1720,
-    1721,  1722,  1723,  1724,  1725,  1726,  1727,  1728,  1731,  1731,
-    1741,  1741,  1751,  1751,  1759,  1759,  1767,  1767,  1775,  1775,
-    1783,  1783,  1796,  1796,  1806,  1807,  1810,  1810,  1821,  1821,
-    1831,  1832,  1835,  1835,  1845,  1846,  1849,  1850,  1853,  1854,
-    1855,  1856,  1857,  1858,  1859,  1862,  1864,  1864,  1872,  1880,
-    1880,  1892,  1893,  1896,  1897,  1898,  1899,  1900,  1901,  1902,
-    1903,  1904,  1907,  1907,  1914,  1915,  1916,  1919,  1924,  1924,
-    1932,  1937,  1944,  1951,  1951,  1961,  1962,  1965,  1966,  1967,
-    1968,  1969,  1972,  1972,  1980,  1980,  1990,  1990,  2030,  2030,
-    2042,  2042,  2052,  2053,  2056,  2057,  2058,  2059,  2060,  2061,
+    1103,  1104,  1105,  1108,  1108,  1116,  1116,  1124,  1124,  1132,
+    1132,  1140,  1140,  1150,  1150,  1157,  1158,  1159,  1160,  1163,
+    1168,  1176,  1176,  1187,  1188,  1192,  1193,  1196,  1196,  1204,
+    1205,  1208,  1209,  1210,  1211,  1212,  1213,  1214,  1215,  1216,
+    1217,  1218,  1219,  1220,  1221,  1222,  1223,  1224,  1225,  1226,
+    1227,  1234,  1234,  1247,  1247,  1256,  1257,  1260,  1261,  1266,
+    1266,  1281,  1281,  1295,  1296,  1299,  1300,  1303,  1304,  1305,
+    1306,  1307,  1308,  1309,  1310,  1311,  1312,  1315,  1317,  1322,
+    1324,  1324,  1332,  1332,  1340,  1340,  1348,  1350,  1350,  1358,
+    1367,  1367,  1379,  1380,  1385,  1386,  1391,  1391,  1403,  1403,
+    1415,  1416,  1421,  1422,  1427,  1428,  1429,  1430,  1431,  1432,
+    1433,  1434,  1435,  1438,  1440,  1440,  1448,  1450,  1452,  1457,
+    1465,  1465,  1477,  1478,  1481,  1482,  1485,  1485,  1495,  1495,
+    1504,  1505,  1508,  1509,  1510,  1511,  1512,  1513,  1514,  1517,
+    1517,  1525,  1525,  1550,  1550,  1580,  1580,  1592,  1593,  1596,
+    1597,  1600,  1600,  1612,  1612,  1624,  1625,  1628,  1629,  1630,
+    1631,  1632,  1633,  1634,  1635,  1636,  1637,  1638,  1641,  1641,
+    1649,  1654,  1654,  1662,  1667,  1675,  1675,  1685,  1686,  1689,
+    1690,  1693,  1693,  1702,  1702,  1711,  1712,  1715,  1716,  1720,
+    1721,  1722,  1723,  1724,  1725,  1726,  1727,  1728,  1729,  1730,
+    1733,  1733,  1743,  1743,  1753,  1753,  1761,  1761,  1769,  1769,
+    1777,  1777,  1785,  1785,  1798,  1798,  1808,  1809,  1812,  1812,
+    1823,  1823,  1833,  1834,  1837,  1837,  1847,  1848,  1851,  1852,
+    1855,  1856,  1857,  1858,  1859,  1860,  1861,  1864,  1866,  1866,
+    1874,  1882,  1882,  1894,  1895,  1898,  1899,  1900,  1901,  1902,
+    1903,  1904,  1905,  1906,  1909,  1909,  1916,  1917,  1918,  1921,
+    1926,  1926,  1934,  1939,  1946,  1953,  1953,  1963,  1964,  1967,
+    1968,  1969,  1970,  1971,  1974,  1974,  1982,  1982,  1992,  1992,
+    2032,  2032,  2044,  2044,  2054,  2055,  2058,  2059,  2060,  2061,
     2062,  2063,  2064,  2065,  2066,  2067,  2068,  2069,  2070,  2071,
-    2072,  2073,  2076,  2081,  2081,  2089,  2089,  2097,  2102,  2102,
-    2110,  2115,  2120,  2120,  2128,  2129,  2132,  2132,  2140,  2145,
-    2150,  2150,  2158,  2161,  2164,  2167,  2170,  2176,  2176,  2184,
-    2184,  2192,  2192,  2202,  2202,  2209,  2209,  2216,  2216,  2225,
-    2225,  2236,  2236,  2246,  2247,  2251,  2252,  2255,  2255,  2265,
-    2275,  2275,  2285,  2285,  2296,  2297,  2301,  2305,  2305,  2317,
-    2318,  2322,  2322,  2330,  2331,  2334,  2335,  2336,  2337,  2338,
-    2339,  2340,  2343,  2348,  2348,  2356,  2356,  2366,  2367,  2370,
-    2370,  2378,  2379,  2382,  2383,  2384,  2385,  2388,  2388,  2396,
-    2401,  2406
+    2072,  2073,  2074,  2075,  2078,  2083,  2083,  2091,  2091,  2099,
+    2104,  2104,  2112,  2117,  2122,  2122,  2130,  2131,  2134,  2134,
+    2142,  2147,  2152,  2152,  2160,  2163,  2166,  2169,  2172,  2178,
+    2178,  2186,  2186,  2194,  2194,  2204,  2204,  2211,  2211,  2218,
+    2218,  2227,  2227,  2238,  2238,  2248,  2249,  2253,  2254,  2257,
+    2257,  2267,  2277,  2277,  2287,  2287,  2298,  2299,  2303,  2307,
+    2307,  2319,  2320,  2324,  2324,  2332,  2333,  2336,  2337,  2338,
+    2339,  2340,  2341,  2342,  2345,  2350,  2350,  2358,  2358,  2368,
+    2369,  2372,  2372,  2380,  2381,  2384,  2385,  2386,  2387,  2390,
+    2390,  2398,  2403,  2408
   };
 
   // Print the state stack on the debug stream.
@@ -5191,10 +5193,11 @@ namespace isc { namespace dhcp {
 #endif // PARSER6_DEBUG
 
 
-#line 14 "dhcp6_parser.yy" // lalr1.cc:1242
+#line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 5197 "dhcp6_parser.cc" // lalr1.cc:1242
-#line 2411 "dhcp6_parser.yy" // lalr1.cc:1243
+#line 5199 "dhcp6_parser.cc"
+
+#line 2413 "dhcp6_parser.yy"
 
 
 void
index ffbcb760efa613a87df254e7abc11498d082b56f..6b224c4b6beb01397e4d3d4e8fe2155a3fe14de3 100644 (file)
@@ -1,4 +1,4 @@
-// A Bison parser, made by GNU Bison 3.3.2.
+// A Bison parser, made by GNU Bison 3.4.1.
 
 // Skeleton interface for Bison LALR(1) parsers in C++
 
@@ -44,7 +44,7 @@
 #ifndef YY_PARSER6_DHCP6_PARSER_H_INCLUDED
 # define YY_PARSER6_DHCP6_PARSER_H_INCLUDED
 // //                    "%code requires" blocks.
-#line 17 "dhcp6_parser.yy" // lalr1.cc:401
+#line 17 "dhcp6_parser.yy"
 
 #include <string>
 #include <cc/data.h>
@@ -56,7 +56,7 @@ using namespace isc::dhcp;
 using namespace isc::data;
 using namespace std;
 
-#line 60 "dhcp6_parser.h" // lalr1.cc:401
+#line 60 "dhcp6_parser.h"
 
 # include <cassert>
 # include <cstdlib> // std::abort
@@ -178,9 +178,10 @@ using namespace std;
 # endif /* ! defined YYDEBUG */
 #endif  /* ! defined PARSER6_DEBUG */
 
-#line 14 "dhcp6_parser.yy" // lalr1.cc:401
+#line 14 "dhcp6_parser.yy"
 namespace isc { namespace dhcp {
-#line 184 "dhcp6_parser.h" // lalr1.cc:401
+#line 184 "dhcp6_parser.h"
+
 
 
 
@@ -3964,7 +3965,7 @@ switch (yytype)
     enum
     {
       yyeof_ = 0,
-      yylast_ = 1065,     ///< Last index in yytable_.
+      yylast_ = 1064,     ///< Last index in yytable_.
       yynnts_ = 399,  ///< Number of nonterminal symbols.
       yyfinal_ = 32, ///< Termination state number.
       yyterror_ = 1,
@@ -4255,9 +4256,10 @@ switch (yytype)
     return token_type (yytoken_number_[type]);
   }
 
-#line 14 "dhcp6_parser.yy" // lalr1.cc:401
+#line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 4261 "dhcp6_parser.h" // lalr1.cc:401
+#line 4262 "dhcp6_parser.h"
+
 
 
 
index 46a3c9fcc78607f10a0bd626d5224f6782835cd9..f60c610d0d5851d94671474594b0e4ba7cec4f71 100644 (file)
@@ -1,8 +1,5 @@
-// Generated 201906101912
-// Generated 201906101912
-// Generated 201906101912
-// Generated 201905221354
-// A Bison parser, made by GNU Bison 3.3.2.
+// Generated 201906110013
+// A Bison parser, made by GNU Bison 3.4.1.
 
 // Locations for Bison parsers in C++
 
 #  endif
 # endif
 
-#line 14 "dhcp6_parser.yy" // location.cc:339
+#line 14 "dhcp6_parser.yy"
 namespace isc { namespace dhcp {
-#line 60 "location.hh" // location.cc:339
+#line 60 "location.hh"
+
   /// A point in a source file.
   class position
   {
@@ -320,7 +318,8 @@ namespace isc { namespace dhcp {
     return ostr;
   }
 
-#line 14 "dhcp6_parser.yy" // location.cc:339
+#line 14 "dhcp6_parser.yy"
 } } // isc::dhcp
-#line 322 "location.hh" // location.cc:339
+#line 323 "location.hh"
+
 #endif // !YY_PARSER6_LOCATION_HH_INCLUDED
index 4c3fffaabf929ce5453cd29b87560d3abed22712..62237de497efd67d6f17aab010c43f79ec89ddcc 100644 (file)
@@ -1,8 +1,5 @@
-// Generated 201906101912
-// Generated 201906101912
-// Generated 201906101912
-// Generated 201905221354
-// A Bison parser, made by GNU Bison 3.3.2.
+// Generated 201906110013
+// A Bison parser, made by GNU Bison 3.4.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it
 // used to define is now defined in "location.hh".
index 008e119a1744600b1ad6c91e1af98f6ac20bddf7..5c0b9bdb0ef661bf4e554f5306e1913f6abea490 100644 (file)
@@ -1,8 +1,5 @@
-// Generated 201906101912
-// Generated 201906101912
-// Generated 201906101912
-// Generated 201905221354
-// A Bison parser, made by GNU Bison 3.3.2.
+// Generated 201906110013
+// A Bison parser, made by GNU Bison 3.4.1.
 
 // Starting with Bison 3.2, this file is useless: the structure it
 // used to define is now defined with the parser itself.