]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[trac5351] regen flex/bison
authorFrancis Dupont <fdupont@isc.org>
Sun, 3 Dec 2017 12:45:12 +0000 (12:45 +0000)
committerFrancis Dupont <fdupont@isc.org>
Sun, 3 Dec 2017 12:45:12 +0000 (12:45 +0000)
12 files changed:
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/location.hh
src/bin/dhcp4/position.hh
src/bin/dhcp4/stack.hh
src/bin/dhcp6/dhcp6_lexer.cc
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 457bc577486576ef03f999b1a0e157bf56acf4f8..1cee63d7eea53ede25054d8342e96acbb1d5aaa9 100644 (file)
@@ -1583,23 +1583,23 @@ int yy_flex_debug = 1;
 
 static const flex_int16_t yy_rule_linenum[159] =
     {   0,
-      143,  145,  147,  152,  153,  158,  159,  160,  172,  175,
-      180,  187,  196,  205,  214,  223,  233,  242,  251,  260,
-      269,  278,  287,  296,  305,  316,  325,  334,  343,  352,
-      362,  372,  382,  392,  402,  412,  422,  432,  442,  453,
-      464,  475,  484,  494,  503,  513,  528,  544,  553,  562,
-      571,  580,  602,  624,  633,  643,  652,  661,  670,  680,
-      689,  698,  707,  716,  726,  735,  744,  753,  762,  771,
-      780,  789,  798,  807,  816,  826,  837,  847,  856,  866,
-      876,  886,  896,  906,  915,  925,  934,  943,  952,  961,
-      971,  981,  991, 1000, 1009, 1018, 1027, 1036, 1045, 1054,
-
-     1063, 1072, 1081, 1090, 1099, 1108, 1117, 1126, 1135, 1144,
-     1153, 1162, 1171, 1180, 1189, 1198, 1207, 1216, 1225, 1234,
-     1243, 1253, 1263, 1273, 1283, 1293, 1303, 1313, 1323, 1333,
-     1342, 1351, 1360, 1369, 1378, 1387, 1396, 1407, 1420, 1433,
-     1448, 1546, 1551, 1556, 1561, 1562, 1563, 1564, 1565, 1566,
-     1568, 1586, 1599, 1604, 1608, 1610, 1612, 1614
+      145,  147,  149,  154,  155,  160,  161,  162,  174,  177,
+      182,  189,  198,  207,  216,  225,  235,  244,  253,  262,
+      271,  280,  289,  298,  307,  318,  327,  336,  345,  354,
+      364,  374,  384,  394,  404,  414,  424,  434,  444,  455,
+      466,  477,  486,  496,  505,  515,  530,  546,  555,  564,
+      573,  582,  602,  622,  631,  641,  650,  659,  668,  678,
+      687,  696,  705,  714,  724,  733,  742,  751,  760,  769,
+      778,  787,  796,  805,  814,  824,  835,  845,  854,  864,
+      874,  884,  894,  904,  913,  923,  932,  941,  950,  959,
+      969,  979,  989,  998, 1007, 1016, 1025, 1034, 1043, 1052,
+
+     1061, 1070, 1079, 1088, 1097, 1106, 1115, 1124, 1133, 1142,
+     1151, 1160, 1169, 1178, 1187, 1196, 1205, 1214, 1223, 1232,
+     1241, 1251, 1261, 1271, 1281, 1291, 1301, 1311, 1321, 1331,
+     1340, 1349, 1358, 1367, 1376, 1385, 1394, 1405, 1418, 1431,
+     1446, 1544, 1549, 1554, 1559, 1560, 1561, 1562, 1563, 1564,
+     1566, 1584, 1597, 1602, 1606, 1608, 1610, 1612
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -2001,11 +2001,13 @@ YY_DECL
             return isc::dhcp::Dhcp4Parser::make_SUB_HOOKS_LIBRARY(driver.loc_);
         case Parser4Context::PARSER_DHCP_DDNS:
             return isc::dhcp::Dhcp4Parser::make_SUB_DHCP_DDNS(driver.loc_);
+        case Parser4Context::PARSER_LOGGING:
+            return isc::dhcp::Dhcp4Parser::make_SUB_LOGGING(driver.loc_);
         }
     }
 
 
-#line 2008 "dhcp4_lexer.cc"
+#line 2010 "dhcp4_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2083,17 +2085,17 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 143 "dhcp4_lexer.ll"
+#line 145 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 145 "dhcp4_lexer.ll"
+#line 147 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 147 "dhcp4_lexer.ll"
+#line 149 "dhcp4_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -2101,33 +2103,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 152 "dhcp4_lexer.ll"
+#line 154 "dhcp4_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 153 "dhcp4_lexer.ll"
+#line 155 "dhcp4_lexer.ll"
 ;
        YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 154 "dhcp4_lexer.ll"
+#line 156 "dhcp4_lexer.ll"
 {
     isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 158 "dhcp4_lexer.ll"
+#line 160 "dhcp4_lexer.ll"
 BEGIN(DIR_ENTER);
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 159 "dhcp4_lexer.ll"
+#line 161 "dhcp4_lexer.ll"
 BEGIN(DIR_INCLUDE);
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 160 "dhcp4_lexer.ll"
+#line 162 "dhcp4_lexer.ll"
 {
     /* Include directive. */
 
@@ -2141,19 +2143,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 169 "dhcp4_lexer.ll"
+#line 171 "dhcp4_lexer.ll"
 {
     isc_throw(Dhcp4ParseError, "Directive not closed.");
 }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 172 "dhcp4_lexer.ll"
+#line 174 "dhcp4_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 175 "dhcp4_lexer.ll"
+#line 177 "dhcp4_lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
@@ -2162,7 +2164,7 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 180 "dhcp4_lexer.ll"
+#line 182 "dhcp4_lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
     driver.loc_.lines(yyleng);
@@ -2171,7 +2173,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 187 "dhcp4_lexer.ll"
+#line 189 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2183,7 +2185,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 196 "dhcp4_lexer.ll"
+#line 198 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2195,7 +2197,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 205 "dhcp4_lexer.ll"
+#line 207 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2207,7 +2209,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 214 "dhcp4_lexer.ll"
+#line 216 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE:
@@ -2219,7 +2221,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 223 "dhcp4_lexer.ll"
+#line 225 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE:
@@ -2232,7 +2234,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 233 "dhcp4_lexer.ll"
+#line 235 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::INTERFACES_CONFIG:
@@ -2244,7 +2246,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 242 "dhcp4_lexer.ll"
+#line 244 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::OUTBOUND_INTERFACE:
@@ -2256,7 +2258,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 251 "dhcp4_lexer.ll"
+#line 253 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case Parser4Context::OUTBOUND_INTERFACE:
@@ -2268,7 +2270,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 260 "dhcp4_lexer.ll"
+#line 262 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2280,7 +2282,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 269 "dhcp4_lexer.ll"
+#line 271 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
@@ -2292,7 +2294,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 278 "dhcp4_lexer.ll"
+#line 280 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2304,7 +2306,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 287 "dhcp4_lexer.ll"
+#line 289 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2316,7 +2318,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 296 "dhcp4_lexer.ll"
+#line 298 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOSTS_DATABASE:
@@ -2328,7 +2330,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 305 "dhcp4_lexer.ll"
+#line 307 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2342,7 +2344,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 316 "dhcp4_lexer.ll"
+#line 318 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2354,7 +2356,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 325 "dhcp4_lexer.ll"
+#line 327 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2366,7 +2368,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 334 "dhcp4_lexer.ll"
+#line 336 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2378,7 +2380,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 343 "dhcp4_lexer.ll"
+#line 345 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DATABASE_TYPE:
@@ -2390,7 +2392,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 352 "dhcp4_lexer.ll"
+#line 354 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2403,7 +2405,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 362 "dhcp4_lexer.ll"
+#line 364 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2416,7 +2418,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 372 "dhcp4_lexer.ll"
+#line 374 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2429,7 +2431,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 382 "dhcp4_lexer.ll"
+#line 384 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2442,7 +2444,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 392 "dhcp4_lexer.ll"
+#line 394 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2455,7 +2457,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 402 "dhcp4_lexer.ll"
+#line 404 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2468,7 +2470,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 412 "dhcp4_lexer.ll"
+#line 414 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2481,7 +2483,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 422 "dhcp4_lexer.ll"
+#line 424 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2494,7 +2496,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 432 "dhcp4_lexer.ll"
+#line 434 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2507,7 +2509,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 442 "dhcp4_lexer.ll"
+#line 444 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2521,7 +2523,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 453 "dhcp4_lexer.ll"
+#line 455 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2535,7 +2537,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 464 "dhcp4_lexer.ll"
+#line 466 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2549,7 +2551,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 475 "dhcp4_lexer.ll"
+#line 477 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2561,7 +2563,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 484 "dhcp4_lexer.ll"
+#line 486 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2574,7 +2576,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 494 "dhcp4_lexer.ll"
+#line 496 "dhcp4_lexer.ll"
 {
     switch (driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2586,7 +2588,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 503 "dhcp4_lexer.ll"
+#line 505 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2599,7 +2601,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 513 "dhcp4_lexer.ll"
+#line 515 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2617,7 +2619,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 528 "dhcp4_lexer.ll"
+#line 530 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LEASE_DATABASE:
@@ -2636,7 +2638,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 544 "dhcp4_lexer.ll"
+#line 546 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -2648,7 +2650,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 553 "dhcp4_lexer.ll"
+#line 555 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -2660,7 +2662,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 562 "dhcp4_lexer.ll"
+#line 564 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2672,7 +2674,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 571 "dhcp4_lexer.ll"
+#line 573 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::POOLS:
@@ -2684,13 +2686,11 @@ YY_RULE_SETUP
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 580 "dhcp4_lexer.ll"
+#line 582 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
-    case isc::dhcp::Parser4Context::LEASE_DATABASE:
-    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::POOLS:
     case isc::dhcp::Parser4Context::SHARED_NETWORK:
@@ -2714,8 +2714,6 @@ YY_RULE_SETUP
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
-    case isc::dhcp::Parser4Context::LEASE_DATABASE:
-    case isc::dhcp::Parser4Context::HOSTS_DATABASE:
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::POOLS:
     case isc::dhcp::Parser4Context::SHARED_NETWORK:
@@ -2734,7 +2732,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 624 "dhcp4_lexer.ll"
+#line 622 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2746,7 +2744,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 633 "dhcp4_lexer.ll"
+#line 631 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2759,7 +2757,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 643 "dhcp4_lexer.ll"
+#line 641 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2771,7 +2769,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 652 "dhcp4_lexer.ll"
+#line 650 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2783,7 +2781,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 661 "dhcp4_lexer.ll"
+#line 659 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2795,7 +2793,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 670 "dhcp4_lexer.ll"
+#line 668 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2808,7 +2806,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 680 "dhcp4_lexer.ll"
+#line 678 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2820,7 +2818,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 689 "dhcp4_lexer.ll"
+#line 687 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2832,7 +2830,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 698 "dhcp4_lexer.ll"
+#line 696 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2844,7 +2842,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 707 "dhcp4_lexer.ll"
+#line 705 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2856,7 +2854,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 716 "dhcp4_lexer.ll"
+#line 714 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -2869,7 +2867,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 726 "dhcp4_lexer.ll"
+#line 724 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2881,7 +2879,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 735 "dhcp4_lexer.ll"
+#line 733 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2893,7 +2891,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 744 "dhcp4_lexer.ll"
+#line 742 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGING:
@@ -2905,7 +2903,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 753 "dhcp4_lexer.ll"
+#line 751 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2917,7 +2915,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 762 "dhcp4_lexer.ll"
+#line 760 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2929,7 +2927,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 771 "dhcp4_lexer.ll"
+#line 769 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2941,7 +2939,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 780 "dhcp4_lexer.ll"
+#line 778 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2953,7 +2951,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 789 "dhcp4_lexer.ll"
+#line 787 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2965,7 +2963,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 798 "dhcp4_lexer.ll"
+#line 796 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2977,7 +2975,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 807 "dhcp4_lexer.ll"
+#line 805 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2989,7 +2987,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 816 "dhcp4_lexer.ll"
+#line 814 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3002,7 +3000,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 826 "dhcp4_lexer.ll"
+#line 824 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3016,7 +3014,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 837 "dhcp4_lexer.ll"
+#line 835 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3029,7 +3027,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 847 "dhcp4_lexer.ll"
+#line 845 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3041,7 +3039,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 856 "dhcp4_lexer.ll"
+#line 854 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3054,7 +3052,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 866 "dhcp4_lexer.ll"
+#line 864 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3067,7 +3065,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 876 "dhcp4_lexer.ll"
+#line 874 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3080,7 +3078,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 886 "dhcp4_lexer.ll"
+#line 884 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3093,7 +3091,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 896 "dhcp4_lexer.ll"
+#line 894 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3106,7 +3104,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 906 "dhcp4_lexer.ll"
+#line 904 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -3118,7 +3116,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 915 "dhcp4_lexer.ll"
+#line 913 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3131,7 +3129,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 925 "dhcp4_lexer.ll"
+#line 923 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3143,7 +3141,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 934 "dhcp4_lexer.ll"
+#line 932 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3155,7 +3153,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 943 "dhcp4_lexer.ll"
+#line 941 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3167,7 +3165,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 952 "dhcp4_lexer.ll"
+#line 950 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3179,7 +3177,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 961 "dhcp4_lexer.ll"
+#line 959 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3192,7 +3190,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 971 "dhcp4_lexer.ll"
+#line 969 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3205,7 +3203,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 981 "dhcp4_lexer.ll"
+#line 979 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3217,7 +3215,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 991 "dhcp4_lexer.ll"
+#line 989 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3229,7 +3227,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 1000 "dhcp4_lexer.ll"
+#line 998 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3241,7 +3239,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 1009 "dhcp4_lexer.ll"
+#line 1007 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3253,7 +3251,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 1018 "dhcp4_lexer.ll"
+#line 1016 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3265,7 +3263,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1027 "dhcp4_lexer.ll"
+#line 1025 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3277,7 +3275,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1036 "dhcp4_lexer.ll"
+#line 1034 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3289,7 +3287,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 1045 "dhcp4_lexer.ll"
+#line 1043 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3301,7 +3299,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1054 "dhcp4_lexer.ll"
+#line 1052 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3313,7 +3311,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1063 "dhcp4_lexer.ll"
+#line 1061 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3325,7 +3323,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 1072 "dhcp4_lexer.ll"
+#line 1070 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3337,7 +3335,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1081 "dhcp4_lexer.ll"
+#line 1079 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3349,7 +3347,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1090 "dhcp4_lexer.ll"
+#line 1088 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3361,7 +3359,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 1099 "dhcp4_lexer.ll"
+#line 1097 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3373,7 +3371,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 1108 "dhcp4_lexer.ll"
+#line 1106 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3385,7 +3383,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 1117 "dhcp4_lexer.ll"
+#line 1115 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3397,7 +3395,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 1126 "dhcp4_lexer.ll"
+#line 1124 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3409,7 +3407,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 1135 "dhcp4_lexer.ll"
+#line 1133 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3421,7 +3419,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 1144 "dhcp4_lexer.ll"
+#line 1142 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3433,7 +3431,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 1153 "dhcp4_lexer.ll"
+#line 1151 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3445,7 +3443,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 1162 "dhcp4_lexer.ll"
+#line 1160 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3457,7 +3455,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 1171 "dhcp4_lexer.ll"
+#line 1169 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3469,7 +3467,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 1180 "dhcp4_lexer.ll"
+#line 1178 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3481,7 +3479,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 1189 "dhcp4_lexer.ll"
+#line 1187 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3493,7 +3491,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1198 "dhcp4_lexer.ll"
+#line 1196 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3505,7 +3503,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 1207 "dhcp4_lexer.ll"
+#line 1205 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3517,7 +3515,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 1216 "dhcp4_lexer.ll"
+#line 1214 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3529,7 +3527,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 1225 "dhcp4_lexer.ll"
+#line 1223 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3541,7 +3539,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 1234 "dhcp4_lexer.ll"
+#line 1232 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3553,7 +3551,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 1243 "dhcp4_lexer.ll"
+#line 1241 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -3566,7 +3564,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 1253 "dhcp4_lexer.ll"
+#line 1251 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -3579,7 +3577,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 1263 "dhcp4_lexer.ll"
+#line 1261 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -3592,7 +3590,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 1273 "dhcp4_lexer.ll"
+#line 1271 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3605,7 +3603,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 1283 "dhcp4_lexer.ll"
+#line 1281 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3618,7 +3616,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 1293 "dhcp4_lexer.ll"
+#line 1291 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3631,7 +3629,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 1303 "dhcp4_lexer.ll"
+#line 1301 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3644,7 +3642,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 1313 "dhcp4_lexer.ll"
+#line 1311 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3657,7 +3655,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 1323 "dhcp4_lexer.ll"
+#line 1321 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3670,7 +3668,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 1333 "dhcp4_lexer.ll"
+#line 1331 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3682,7 +3680,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 1342 "dhcp4_lexer.ll"
+#line 1340 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3694,7 +3692,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 1351 "dhcp4_lexer.ll"
+#line 1349 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3706,7 +3704,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 1360 "dhcp4_lexer.ll"
+#line 1358 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3718,7 +3716,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 1369 "dhcp4_lexer.ll"
+#line 1367 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3730,7 +3728,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 1378 "dhcp4_lexer.ll"
+#line 1376 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3742,7 +3740,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 1387 "dhcp4_lexer.ll"
+#line 1385 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3754,7 +3752,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 1396 "dhcp4_lexer.ll"
+#line 1394 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3768,7 +3766,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 1407 "dhcp4_lexer.ll"
+#line 1405 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3784,7 +3782,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 1420 "dhcp4_lexer.ll"
+#line 1418 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3800,7 +3798,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 1433 "dhcp4_lexer.ll"
+#line 1431 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3816,7 +3814,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 1448 "dhcp4_lexer.ll"
+#line 1446 "dhcp4_lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -3918,7 +3916,7 @@ YY_RULE_SETUP
 case 142:
 /* rule 142 can match eol */
 YY_RULE_SETUP
-#line 1546 "dhcp4_lexer.ll"
+#line 1544 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -3927,7 +3925,7 @@ YY_RULE_SETUP
 case 143:
 /* rule 143 can match eol */
 YY_RULE_SETUP
-#line 1551 "dhcp4_lexer.ll"
+#line 1549 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -3935,7 +3933,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 1556 "dhcp4_lexer.ll"
+#line 1554 "dhcp4_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -3943,37 +3941,37 @@ YY_RULE_SETUP
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 1561 "dhcp4_lexer.ll"
+#line 1559 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 1562 "dhcp4_lexer.ll"
+#line 1560 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 1563 "dhcp4_lexer.ll"
+#line 1561 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 1564 "dhcp4_lexer.ll"
+#line 1562 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 1565 "dhcp4_lexer.ll"
+#line 1563 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 1566 "dhcp4_lexer.ll"
+#line 1564 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 1568 "dhcp4_lexer.ll"
+#line 1566 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -3994,7 +3992,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 1586 "dhcp4_lexer.ll"
+#line 1584 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4010,7 +4008,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 1599 "dhcp4_lexer.ll"
+#line 1597 "dhcp4_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -4018,33 +4016,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 1604 "dhcp4_lexer.ll"
+#line 1602 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 1608 "dhcp4_lexer.ll"
+#line 1606 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 1610 "dhcp4_lexer.ll"
+#line 1608 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 1612 "dhcp4_lexer.ll"
+#line 1610 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 1614 "dhcp4_lexer.ll"
+#line 1612 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1616 "dhcp4_lexer.ll"
+#line 1614 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -4070,10 +4068,10 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 1639 "dhcp4_lexer.ll"
+#line 1637 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4076 "dhcp4_lexer.cc"
+#line 4074 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5178,7 +5176,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1639 "dhcp4_lexer.ll"
+#line 1637 "dhcp4_lexer.ll"
 
 
 using namespace isc::dhcp;
index 003aec56b2a0be94729bdbd6f3b2a4678c4dd866..ba0bda0fb6a7f7008fea962b7716abc31470aca9 100644 (file)
@@ -253,30 +253,30 @@ namespace isc { namespace dhcp {
   {
       switch (that.type_get ())
     {
-      case 165: // value
-      case 169: // map_value
-      case 207: // socket_type
-      case 210: // outbound_interface_value
-      case 220: // db_type
-      case 297: // hr_mode
-      case 445: // ncr_protocol_value
-      case 453: // replace_client_name_value
+      case 167: // value
+      case 171: // map_value
+      case 209: // socket_type
+      case 212: // outbound_interface_value
+      case 222: // db_type
+      case 299: // hr_mode
+      case 447: // ncr_protocol_value
+      case 455: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 150: // "boolean"
+      case 151: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 149: // "floating point"
+      case 150: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 148: // "integer"
+      case 149: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 147: // "constant string"
+      case 148: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -295,30 +295,30 @@ namespace isc { namespace dhcp {
     state = that.state;
       switch (that.type_get ())
     {
-      case 165: // value
-      case 169: // map_value
-      case 207: // socket_type
-      case 210: // outbound_interface_value
-      case 220: // db_type
-      case 297: // hr_mode
-      case 445: // ncr_protocol_value
-      case 453: // replace_client_name_value
+      case 167: // value
+      case 171: // map_value
+      case 209: // socket_type
+      case 212: // outbound_interface_value
+      case 222: // db_type
+      case 299: // hr_mode
+      case 447: // ncr_protocol_value
+      case 455: // replace_client_name_value
         value.copy< ElementPtr > (that.value);
         break;
 
-      case 150: // "boolean"
+      case 151: // "boolean"
         value.copy< bool > (that.value);
         break;
 
-      case 149: // "floating point"
+      case 150: // "floating point"
         value.copy< double > (that.value);
         break;
 
-      case 148: // "integer"
+      case 149: // "integer"
         value.copy< int64_t > (that.value);
         break;
 
-      case 147: // "constant string"
+      case 148: // "constant string"
         value.copy< std::string > (that.value);
         break;
 
@@ -358,86 +358,86 @@ namespace isc { namespace dhcp {
         << yysym.location << ": ";
     switch (yytype)
     {
-            case 147: // "constant string"
+            case 148: // "constant string"
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< std::string > (); }
 #line 366 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 148: // "integer"
+      case 149: // "integer"
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< int64_t > (); }
 #line 373 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 149: // "floating point"
+      case 150: // "floating point"
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< double > (); }
 #line 380 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 150: // "boolean"
+      case 151: // "boolean"
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< bool > (); }
 #line 387 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 165: // value
+      case 167: // value
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 394 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 169: // map_value
+      case 171: // map_value
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 401 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 207: // socket_type
+      case 209: // socket_type
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 408 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 210: // outbound_interface_value
+      case 212: // outbound_interface_value
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 415 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 220: // db_type
+      case 222: // db_type
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 422 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 297: // hr_mode
+      case 299: // hr_mode
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 429 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 445: // ncr_protocol_value
+      case 447: // ncr_protocol_value
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 436 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 453: // replace_client_name_value
+      case 455: // replace_client_name_value
 
-#line 225 "dhcp4_parser.yy" // lalr1.cc:636
+#line 226 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 443 "dhcp4_parser.cc" // lalr1.cc:636
         break;
@@ -639,30 +639,30 @@ namespace isc { namespace dhcp {
          when using variants.  */
         switch (yyr1_[yyn])
     {
-      case 165: // value
-      case 169: // map_value
-      case 207: // socket_type
-      case 210: // outbound_interface_value
-      case 220: // db_type
-      case 297: // hr_mode
-      case 445: // ncr_protocol_value
-      case 453: // replace_client_name_value
+      case 167: // value
+      case 171: // map_value
+      case 209: // socket_type
+      case 212: // outbound_interface_value
+      case 222: // db_type
+      case 299: // hr_mode
+      case 447: // ncr_protocol_value
+      case 455: // replace_client_name_value
         yylhs.value.build< ElementPtr > ();
         break;
 
-      case 150: // "boolean"
+      case 151: // "boolean"
         yylhs.value.build< bool > ();
         break;
 
-      case 149: // "floating point"
+      case 150: // "floating point"
         yylhs.value.build< double > ();
         break;
 
-      case 148: // "integer"
+      case 149: // "integer"
         yylhs.value.build< int64_t > ();
         break;
 
-      case 147: // "constant string"
+      case 148: // "constant string"
         yylhs.value.build< std::string > ();
         break;
 
@@ -684,268 +684,274 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 234 "dhcp4_parser.yy" // lalr1.cc:859
+#line 235 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 690 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 4:
-#line 235 "dhcp4_parser.yy" // lalr1.cc:859
+#line 236 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.CONFIG; }
 #line 696 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 6:
-#line 236 "dhcp4_parser.yy" // lalr1.cc:859
+#line 237 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.DHCP4; }
 #line 702 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 8:
-#line 237 "dhcp4_parser.yy" // lalr1.cc:859
+#line 238 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 708 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 10:
-#line 238 "dhcp4_parser.yy" // lalr1.cc:859
+#line 239 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.SUBNET4; }
 #line 714 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 12:
-#line 239 "dhcp4_parser.yy" // lalr1.cc:859
+#line 240 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.POOLS; }
 #line 720 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 14:
-#line 240 "dhcp4_parser.yy" // lalr1.cc:859
+#line 241 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 726 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 16:
-#line 241 "dhcp4_parser.yy" // lalr1.cc:859
+#line 242 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.DHCP4; }
 #line 732 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 18:
-#line 242 "dhcp4_parser.yy" // lalr1.cc:859
+#line 243 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 738 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 20:
-#line 243 "dhcp4_parser.yy" // lalr1.cc:859
+#line 244 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 744 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 22:
-#line 244 "dhcp4_parser.yy" // lalr1.cc:859
+#line 245 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 750 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 24:
-#line 245 "dhcp4_parser.yy" // lalr1.cc:859
+#line 246 "dhcp4_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 756 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 26:
-#line 253 "dhcp4_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
+#line 247 "dhcp4_parser.yy" // lalr1.cc:859
+    { ctx.ctx_ = ctx.LOGGING; }
 #line 762 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 27:
-#line 254 "dhcp4_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 768 "dhcp4_parser.cc" // lalr1.cc:859
-    break;
-
   case 28:
 #line 255 "dhcp4_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 774 "dhcp4_parser.cc" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
+#line 768 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 29:
 #line 256 "dhcp4_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 780 "dhcp4_parser.cc" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
+#line 774 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 30:
 #line 257 "dhcp4_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 786 "dhcp4_parser.cc" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
+#line 780 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 31:
 #line 258 "dhcp4_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 792 "dhcp4_parser.cc" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
+#line 786 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 32:
 #line 259 "dhcp4_parser.yy" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
+#line 792 "dhcp4_parser.cc" // lalr1.cc:859
+    break;
+
+  case 33:
+#line 260 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 798 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 33:
-#line 262 "dhcp4_parser.yy" // lalr1.cc:859
+  case 34:
+#line 261 "dhcp4_parser.yy" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 804 "dhcp4_parser.cc" // lalr1.cc:859
+    break;
+
+  case 35:
+#line 264 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
 }
-#line 807 "dhcp4_parser.cc" // lalr1.cc:859
+#line 813 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 34:
-#line 267 "dhcp4_parser.yy" // lalr1.cc:859
+  case 36:
+#line 269 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // 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 818 "dhcp4_parser.cc" // lalr1.cc:859
+#line 824 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 35:
-#line 272 "dhcp4_parser.yy" // lalr1.cc:859
+  case 37:
+#line 274 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // 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 828 "dhcp4_parser.cc" // lalr1.cc:859
+#line 834 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 36:
-#line 278 "dhcp4_parser.yy" // lalr1.cc:859
+  case 38:
+#line 280 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 834 "dhcp4_parser.cc" // lalr1.cc:859
+#line 840 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 39:
-#line 285 "dhcp4_parser.yy" // lalr1.cc:859
+  case 41:
+#line 287 "dhcp4_parser.yy" // lalr1.cc:859
     {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
                   }
-#line 843 "dhcp4_parser.cc" // lalr1.cc:859
+#line 849 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 40:
-#line 289 "dhcp4_parser.yy" // lalr1.cc:859
+  case 42:
+#line 291 "dhcp4_parser.yy" // lalr1.cc:859
     {
                   // 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 853 "dhcp4_parser.cc" // lalr1.cc:859
+#line 859 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 41:
-#line 296 "dhcp4_parser.yy" // lalr1.cc:859
+  case 43:
+#line 298 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
 }
-#line 862 "dhcp4_parser.cc" // lalr1.cc:859
+#line 868 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 42:
-#line 299 "dhcp4_parser.yy" // lalr1.cc:859
+  case 44:
+#line 301 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // list parsing complete. Put any sanity checking here
 }
-#line 870 "dhcp4_parser.cc" // lalr1.cc:859
+#line 876 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 45:
-#line 307 "dhcp4_parser.yy" // lalr1.cc:859
+  case 47:
+#line 309 "dhcp4_parser.yy" // lalr1.cc:859
     {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
                   }
-#line 879 "dhcp4_parser.cc" // lalr1.cc:859
+#line 885 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 46:
-#line 311 "dhcp4_parser.yy" // lalr1.cc:859
+  case 48:
+#line 313 "dhcp4_parser.yy" // lalr1.cc:859
     {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
                   }
-#line 888 "dhcp4_parser.cc" // lalr1.cc:859
+#line 894 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 47:
-#line 318 "dhcp4_parser.yy" // lalr1.cc:859
+  case 49:
+#line 320 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // List parsing about to start
 }
-#line 896 "dhcp4_parser.cc" // lalr1.cc:859
+#line 902 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 48:
-#line 320 "dhcp4_parser.yy" // lalr1.cc:859
+  case 50:
+#line 322 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
 }
-#line 905 "dhcp4_parser.cc" // lalr1.cc:859
+#line 911 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 51:
-#line 329 "dhcp4_parser.yy" // lalr1.cc:859
+  case 53:
+#line 331 "dhcp4_parser.yy" // lalr1.cc:859
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 914 "dhcp4_parser.cc" // lalr1.cc:859
+#line 920 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 52:
-#line 333 "dhcp4_parser.yy" // lalr1.cc:859
+  case 54:
+#line 335 "dhcp4_parser.yy" // lalr1.cc:859
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 923 "dhcp4_parser.cc" // lalr1.cc:859
+#line 929 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 53:
-#line 344 "dhcp4_parser.yy" // lalr1.cc:859
+  case 55:
+#line 346 "dhcp4_parser.yy" // lalr1.cc:859
     {
     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 934 "dhcp4_parser.cc" // lalr1.cc:859
+#line 940 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 54:
-#line 354 "dhcp4_parser.yy" // lalr1.cc:859
+  case 56:
+#line 356 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // 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 945 "dhcp4_parser.cc" // lalr1.cc:859
+#line 951 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 55:
-#line 359 "dhcp4_parser.yy" // lalr1.cc:859
+  case 57:
+#line 361 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -954,11 +960,11 @@ namespace isc { namespace dhcp {
     // Dhcp4 is required
     ctx.require("Dhcp4", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 958 "dhcp4_parser.cc" // lalr1.cc:859
+#line 964 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 64:
-#line 383 "dhcp4_parser.yy" // lalr1.cc:859
+  case 66:
+#line 385 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -967,265 +973,265 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP4);
 }
-#line 971 "dhcp4_parser.cc" // lalr1.cc:859
+#line 977 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 65:
-#line 390 "dhcp4_parser.yy" // lalr1.cc:859
+  case 67:
+#line 392 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // No global parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 981 "dhcp4_parser.cc" // lalr1.cc:859
+#line 987 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 66:
-#line 398 "dhcp4_parser.yy" // lalr1.cc:859
+  case 68:
+#line 400 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // Parse the Dhcp4 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 991 "dhcp4_parser.cc" // lalr1.cc:859
+#line 997 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 67:
-#line 402 "dhcp4_parser.yy" // lalr1.cc:859
+  case 69:
+#line 404 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // No global parameter is required
     // parsing completed
 }
-#line 1000 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1006 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 96:
-#line 441 "dhcp4_parser.yy" // lalr1.cc:859
+  case 98:
+#line 443 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("valid-lifetime", prf);
 }
-#line 1009 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1015 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 97:
-#line 446 "dhcp4_parser.yy" // lalr1.cc:859
+  case 99:
+#line 448 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("renew-timer", prf);
 }
-#line 1018 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1024 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 98:
-#line 451 "dhcp4_parser.yy" // lalr1.cc:859
+  case 100:
+#line 453 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rebind-timer", prf);
 }
-#line 1027 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1033 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 99:
-#line 456 "dhcp4_parser.yy" // lalr1.cc:859
+  case 101:
+#line 458 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("decline-probation-period", dpp);
 }
-#line 1036 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1042 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 100:
-#line 461 "dhcp4_parser.yy" // lalr1.cc:859
+  case 102:
+#line 463 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr echo(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("echo-client-id", echo);
 }
-#line 1045 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1051 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 101:
-#line 466 "dhcp4_parser.yy" // lalr1.cc:859
+  case 103:
+#line 468 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr match(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("match-client-id", match);
 }
-#line 1054 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1060 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 102:
-#line 472 "dhcp4_parser.yy" // lalr1.cc:859
+  case 104:
+#line 474 "dhcp4_parser.yy" // lalr1.cc:859
     {
     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 1065 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1071 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 103:
-#line 477 "dhcp4_parser.yy" // lalr1.cc:859
+  case 105:
+#line 479 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1075 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1081 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 113:
-#line 496 "dhcp4_parser.yy" // lalr1.cc:859
+  case 115:
+#line 498 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1085 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1091 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 114:
-#line 500 "dhcp4_parser.yy" // lalr1.cc:859
+  case 116:
+#line 502 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // No interfaces config param is required
     // parsing completed
 }
-#line 1094 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1100 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 115:
-#line 505 "dhcp4_parser.yy" // lalr1.cc:859
+  case 117:
+#line 507 "dhcp4_parser.yy" // lalr1.cc:859
     {
     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 1105 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1111 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 116:
-#line 510 "dhcp4_parser.yy" // lalr1.cc:859
+  case 118:
+#line 512 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1114 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1120 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 117:
-#line 515 "dhcp4_parser.yy" // lalr1.cc:859
+  case 119:
+#line 517 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.DHCP_SOCKET_TYPE);
 }
-#line 1122 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1128 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 118:
-#line 517 "dhcp4_parser.yy" // lalr1.cc:859
+  case 120:
+#line 519 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("dhcp-socket-type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 1131 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1137 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 119:
-#line 522 "dhcp4_parser.yy" // lalr1.cc:859
+  case 121:
+#line 524 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("raw", ctx.loc2pos(yystack_[0].location))); }
-#line 1137 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1143 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 120:
-#line 523 "dhcp4_parser.yy" // lalr1.cc:859
+  case 122:
+#line 525 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("udp", ctx.loc2pos(yystack_[0].location))); }
-#line 1143 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1149 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 121:
-#line 526 "dhcp4_parser.yy" // lalr1.cc:859
+  case 123:
+#line 528 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.OUTBOUND_INTERFACE);
 }
-#line 1151 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1157 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 122:
-#line 528 "dhcp4_parser.yy" // lalr1.cc:859
+  case 124:
+#line 530 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("outbound-interface", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 1160 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1166 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 123:
-#line 533 "dhcp4_parser.yy" // lalr1.cc:859
+  case 125:
+#line 535 "dhcp4_parser.yy" // lalr1.cc:859
     {
     yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("same-as-inbound", ctx.loc2pos(yystack_[0].location)));
 }
-#line 1168 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1174 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 124:
-#line 535 "dhcp4_parser.yy" // lalr1.cc:859
+  case 126:
+#line 537 "dhcp4_parser.yy" // lalr1.cc:859
     {
     yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("use-routing", ctx.loc2pos(yystack_[0].location)));
     }
-#line 1176 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1182 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 125:
-#line 539 "dhcp4_parser.yy" // lalr1.cc:859
+  case 127:
+#line 541 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
 }
-#line 1185 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1191 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 126:
-#line 545 "dhcp4_parser.yy" // lalr1.cc:859
+  case 128:
+#line 547 "dhcp4_parser.yy" // lalr1.cc:859
     {
     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 1196 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1202 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 127:
-#line 550 "dhcp4_parser.yy" // lalr1.cc:859
+  case 129:
+#line 552 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // 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 1207 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1213 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 128:
-#line 557 "dhcp4_parser.yy" // lalr1.cc:859
+  case 130:
+#line 559 "dhcp4_parser.yy" // lalr1.cc:859
     {
     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 1218 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1224 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 129:
-#line 562 "dhcp4_parser.yy" // lalr1.cc:859
+  case 131:
+#line 564 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // 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 1229 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1235 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 147:
@@ -1233,7 +1239,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
-#line 1237 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1243 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 148:
@@ -1242,31 +1248,31 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 1246 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1252 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 149:
 #line 597 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1252 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1258 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 150:
 #line 598 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1258 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1264 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 151:
 #line 599 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1264 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1270 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 152:
 #line 600 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1270 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1276 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 153:
@@ -1274,7 +1280,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1278 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1284 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 154:
@@ -1284,7 +1290,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("user", user);
     ctx.leave();
 }
-#line 1288 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1294 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 155:
@@ -1292,7 +1298,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1296 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1302 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 156:
@@ -1302,7 +1308,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("password", pwd);
     ctx.leave();
 }
-#line 1306 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1312 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 157:
@@ -1310,7 +1316,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1314 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1320 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 158:
@@ -1320,7 +1326,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("host", h);
     ctx.leave();
 }
-#line 1324 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1330 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 159:
@@ -1329,7 +1335,7 @@ namespace isc { namespace dhcp {
     ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
 }
-#line 1333 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1339 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 160:
@@ -1337,7 +1343,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1341 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1347 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 161:
@@ -1347,7 +1353,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("name", name);
     ctx.leave();
 }
-#line 1351 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1357 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 162:
@@ -1356,7 +1362,7 @@ namespace isc { namespace dhcp {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
 }
-#line 1360 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1366 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 163:
@@ -1365,7 +1371,7 @@ namespace isc { namespace dhcp {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
 }
-#line 1369 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1375 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 164:
@@ -1374,7 +1380,7 @@ namespace isc { namespace dhcp {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
 }
-#line 1378 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1384 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 165:
@@ -1383,7 +1389,7 @@ namespace isc { namespace dhcp {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
 }
-#line 1387 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1393 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 166:
@@ -1391,7 +1397,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1395 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1401 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 167:
@@ -1401,7 +1407,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("contact-points", cp);
     ctx.leave();
 }
-#line 1405 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1411 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 168:
@@ -1409,7 +1415,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1413 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1419 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 169:
@@ -1419,7 +1425,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("keyspace", ks);
     ctx.leave();
 }
-#line 1423 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1429 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 170:
@@ -1430,7 +1436,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
 }
-#line 1434 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1440 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 171:
@@ -1439,7 +1445,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1443 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1449 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 179:
@@ -1448,7 +1454,7 @@ namespace isc { namespace dhcp {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1452 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1458 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 180:
@@ -1457,7 +1463,7 @@ namespace isc { namespace dhcp {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
 }
-#line 1461 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1467 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 181:
@@ -1466,7 +1472,7 @@ namespace isc { namespace dhcp {
     ElementPtr circuit(new StringElement("circuit-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(circuit);
 }
-#line 1470 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1476 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 182:
@@ -1475,7 +1481,7 @@ namespace isc { namespace dhcp {
     ElementPtr client(new StringElement("client-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(client);
 }
-#line 1479 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1485 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 183:
@@ -1484,7 +1490,7 @@ namespace isc { namespace dhcp {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
 }
-#line 1488 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1494 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 184:
@@ -1495,7 +1501,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOOKS_LIBRARIES);
 }
-#line 1499 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1505 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 185:
@@ -1504,7 +1510,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1508 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1514 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 190:
@@ -1514,7 +1520,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1518 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1524 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 191:
@@ -1524,7 +1530,7 @@ namespace isc { namespace dhcp {
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1528 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1534 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 192:
@@ -1534,7 +1540,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1538 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1544 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 193:
@@ -1544,7 +1550,7 @@ namespace isc { namespace dhcp {
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1548 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1554 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 199:
@@ -1552,7 +1558,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1556 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1562 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 200:
@@ -1562,7 +1568,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("library", lib);
     ctx.leave();
 }
-#line 1566 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1572 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 201:
@@ -1570,7 +1576,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1574 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1580 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 202:
@@ -1579,7 +1585,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 1583 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1589 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 203:
@@ -1590,7 +1596,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
 }
-#line 1594 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1600 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 204:
@@ -1600,7 +1606,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1604 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1610 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 213:
@@ -1609,7 +1615,7 @@ namespace isc { namespace dhcp {
     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 1613 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1619 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 214:
@@ -1618,7 +1624,7 @@ namespace isc { namespace dhcp {
     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 1622 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1628 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 215:
@@ -1627,7 +1633,7 @@ namespace isc { namespace dhcp {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
 }
-#line 1631 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1637 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 216:
@@ -1636,7 +1642,7 @@ namespace isc { namespace dhcp {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
 }
-#line 1640 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1646 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 217:
@@ -1645,7 +1651,7 @@ namespace isc { namespace dhcp {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
 }
-#line 1649 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1655 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 218:
@@ -1654,7 +1660,7 @@ namespace isc { namespace dhcp {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
 }
-#line 1658 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1664 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 219:
@@ -1665,7 +1671,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SUBNET4);
 }
-#line 1669 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1675 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 220:
@@ -1674,7 +1680,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1678 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1684 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 225:
@@ -1684,7 +1690,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1688 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1694 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 226:
@@ -1710,7 +1716,7 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1714 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1720 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 227:
@@ -1720,7 +1726,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1724 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1730 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 228:
@@ -1730,7 +1736,7 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1734 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1740 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 255:
@@ -1738,7 +1744,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1742 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1748 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 256:
@@ -1748,7 +1754,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("subnet", subnet);
     ctx.leave();
 }
-#line 1752 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1758 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 257:
@@ -1756,7 +1762,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1760 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1766 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 258:
@@ -1766,7 +1772,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("4o6-interface", iface);
     ctx.leave();
 }
-#line 1770 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1776 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 259:
@@ -1774,7 +1780,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1778 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1784 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 260:
@@ -1784,7 +1790,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("4o6-interface-id", iface);
     ctx.leave();
 }
-#line 1788 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1794 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 261:
@@ -1792,7 +1798,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1796 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1802 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 262:
@@ -1802,7 +1808,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("4o6-subnet", iface);
     ctx.leave();
 }
-#line 1806 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1812 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 263:
@@ -1810,7 +1816,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1814 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1820 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 264:
@@ -1820,7 +1826,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("interface", iface);
     ctx.leave();
 }
-#line 1824 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1830 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 265:
@@ -1828,7 +1834,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1832 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1838 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 266:
@@ -1838,7 +1844,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("interface-id", iface);
     ctx.leave();
 }
-#line 1842 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1848 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 267:
@@ -1846,7 +1852,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.CLIENT_CLASS);
 }
-#line 1850 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1856 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 268:
@@ -1856,7 +1862,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("client-class", cls);
     ctx.leave();
 }
-#line 1860 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1866 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 269:
@@ -1864,7 +1870,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
-#line 1868 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1874 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 270:
@@ -1873,25 +1879,25 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 1877 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1883 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 271:
 #line 998 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 1883 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1889 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 272:
 #line 999 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 1889 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1895 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 273:
 #line 1000 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 1895 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1901 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 274:
@@ -1900,7 +1906,7 @@ namespace isc { namespace dhcp {
     ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
 }
-#line 1904 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1910 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 275:
@@ -1909,7 +1915,7 @@ namespace isc { namespace dhcp {
     ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rapid-commit", rc);
 }
-#line 1913 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1919 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 276:
@@ -1920,7 +1926,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SHARED_NETWORK);
 }
-#line 1924 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1930 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 277:
@@ -1929,7 +1935,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1933 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1939 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 282:
@@ -1939,7 +1945,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1943 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1949 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 283:
@@ -1947,7 +1953,7 @@ namespace isc { namespace dhcp {
     {
     ctx.stack_.pop_back();
 }
-#line 1951 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1957 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 303:
@@ -1958,7 +1964,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DEF);
 }
-#line 1962 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1968 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 304:
@@ -1967,7 +1973,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1971 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1977 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 305:
@@ -1976,7 +1982,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1980 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1986 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 306:
@@ -1984,7 +1990,7 @@ namespace isc { namespace dhcp {
     {
     // parsing completed
 }
-#line 1988 "dhcp4_parser.cc" // lalr1.cc:859
+#line 1994 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 311:
@@ -1994,7 +2000,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1998 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2004 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 312:
@@ -2006,7 +2012,7 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2010 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2016 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 313:
@@ -2016,7 +2022,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2020 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2026 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 314:
@@ -2028,7 +2034,7 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2032 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2038 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 330:
@@ -2037,7 +2043,7 @@ namespace isc { namespace dhcp {
     ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
 }
-#line 2041 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2047 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 332:
@@ -2045,7 +2051,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2049 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2055 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 333:
@@ -2055,7 +2061,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("type", prf);
     ctx.leave();
 }
-#line 2059 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2065 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 334:
@@ -2063,7 +2069,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2067 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2073 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 335:
@@ -2073,7 +2079,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("record-types", rtypes);
     ctx.leave();
 }
-#line 2077 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2083 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 336:
@@ -2081,7 +2087,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2085 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2091 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 337:
@@ -2091,7 +2097,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("space", space);
     ctx.leave();
 }
-#line 2095 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2101 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 339:
@@ -2099,7 +2105,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2103 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2109 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 340:
@@ -2109,7 +2115,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("encapsulate", encap);
     ctx.leave();
 }
-#line 2113 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2119 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 341:
@@ -2118,7 +2124,7 @@ namespace isc { namespace dhcp {
     ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
 }
-#line 2122 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2128 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 342:
@@ -2129,7 +2135,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DATA);
 }
-#line 2133 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2139 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 343:
@@ -2138,7 +2144,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2142 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2148 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 348:
@@ -2148,7 +2154,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2152 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2158 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 349:
@@ -2157,7 +2163,7 @@ namespace isc { namespace dhcp {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
 }
-#line 2161 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2167 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 350:
@@ -2167,7 +2173,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2171 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2177 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 351:
@@ -2176,7 +2182,7 @@ namespace isc { namespace dhcp {
     /// @todo: the code or name parameters are required.
     // parsing completed
 }
-#line 2180 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2186 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 366:
@@ -2184,7 +2190,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2188 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2194 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 367:
@@ -2194,7 +2200,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("data", data);
     ctx.leave();
 }
-#line 2198 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2204 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 370:
@@ -2203,7 +2209,7 @@ namespace isc { namespace dhcp {
     ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
 }
-#line 2207 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2213 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 371:
@@ -2212,7 +2218,7 @@ namespace isc { namespace dhcp {
     ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
 }
-#line 2216 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2222 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 372:
@@ -2223,7 +2229,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.POOLS);
 }
-#line 2227 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2233 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 373:
@@ -2232,7 +2238,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2236 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2242 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 378:
@@ -2242,7 +2248,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2246 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2252 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 379:
@@ -2252,7 +2258,7 @@ namespace isc { namespace dhcp {
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2256 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2262 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 380:
@@ -2262,7 +2268,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2266 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2272 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 381:
@@ -2272,7 +2278,7 @@ namespace isc { namespace dhcp {
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2276 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2282 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 389:
@@ -2280,7 +2286,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2284 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2290 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 390:
@@ -2290,7 +2296,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("pool", pool);
     ctx.leave();
 }
-#line 2294 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2300 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 391:
@@ -2298,7 +2304,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2302 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2308 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 392:
@@ -2307,7 +2313,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->combine_set("user-context", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2311 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2317 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 393:
@@ -2315,7 +2321,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2319 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2325 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 394:
@@ -2326,7 +2332,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->combine_set("user-context", e);
     ctx.leave();
 }
-#line 2330 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2336 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 395:
@@ -2337,7 +2343,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.RESERVATIONS);
 }
-#line 2341 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2347 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 396:
@@ -2346,7 +2352,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2350 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2356 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 401:
@@ -2356,7 +2362,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2360 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2366 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 402:
@@ -2365,7 +2371,7 @@ namespace isc { namespace dhcp {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 2369 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2375 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 403:
@@ -2375,7 +2381,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2379 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2385 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 404:
@@ -2384,7 +2390,7 @@ namespace isc { namespace dhcp {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 2388 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2394 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 424:
@@ -2392,7 +2398,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2396 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2402 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 425:
@@ -2402,7 +2408,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("next-server", next_server);
     ctx.leave();
 }
-#line 2406 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2412 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 426:
@@ -2410,7 +2416,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2414 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2420 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 427:
@@ -2420,7 +2426,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("server-hostname", srv);
     ctx.leave();
 }
-#line 2424 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2430 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 428:
@@ -2428,7 +2434,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2432 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2438 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 429:
@@ -2438,7 +2444,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("boot-file-name", bootfile);
     ctx.leave();
 }
-#line 2442 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2448 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 430:
@@ -2446,7 +2452,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2450 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2456 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 431:
@@ -2456,7 +2462,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("ip-address", addr);
     ctx.leave();
 }
-#line 2460 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2466 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 432:
@@ -2464,7 +2470,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2468 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2474 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 433:
@@ -2474,7 +2480,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("duid", d);
     ctx.leave();
 }
-#line 2478 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2484 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 434:
@@ -2482,7 +2488,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2486 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2492 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 435:
@@ -2492,7 +2498,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("hw-address", hw);
     ctx.leave();
 }
-#line 2496 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2502 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 436:
@@ -2500,7 +2506,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2504 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2510 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 437:
@@ -2510,7 +2516,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("client-id", hw);
     ctx.leave();
 }
-#line 2514 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2520 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 438:
@@ -2518,7 +2524,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2522 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2528 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 439:
@@ -2528,7 +2534,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("circuit-id", hw);
     ctx.leave();
 }
-#line 2532 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2538 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 440:
@@ -2536,7 +2542,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2540 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2546 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 441:
@@ -2546,7 +2552,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("flex-id", hw);
     ctx.leave();
 }
-#line 2550 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2556 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 442:
@@ -2554,7 +2560,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2558 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2564 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 443:
@@ -2564,7 +2570,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("hostname", host);
     ctx.leave();
 }
-#line 2568 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2574 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 444:
@@ -2575,7 +2581,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2579 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2585 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 445:
@@ -2584,7 +2590,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2588 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2594 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 446:
@@ -2595,7 +2601,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.RELAY);
 }
-#line 2599 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2605 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 447:
@@ -2604,7 +2610,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2608 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2614 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 448:
@@ -2612,7 +2618,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2616 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2622 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 449:
@@ -2622,7 +2628,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("ip-address", ip);
     ctx.leave();
 }
-#line 2626 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2632 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 450:
@@ -2633,7 +2639,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CLIENT_CLASSES);
 }
-#line 2637 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2643 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 451:
@@ -2642,7 +2648,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2646 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2652 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 454:
@@ -2652,7 +2658,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2656 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2662 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 455:
@@ -2662,7 +2668,7 @@ namespace isc { namespace dhcp {
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2666 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2672 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 471:
@@ -2670,7 +2676,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2674 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2680 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 472:
@@ -2680,7 +2686,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("test", test);
     ctx.leave();
 }
-#line 2684 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2690 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 473:
@@ -2689,7 +2695,7 @@ namespace isc { namespace dhcp {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
 }
-#line 2693 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2699 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 474:
@@ -2700,7 +2706,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.CONTROL_SOCKET);
 }
-#line 2704 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2710 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 475:
@@ -2709,7 +2715,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2713 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2719 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 483:
@@ -2717,7 +2723,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2721 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2727 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 484:
@@ -2727,7 +2733,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("socket-type", stype);
     ctx.leave();
 }
-#line 2731 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2737 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 485:
@@ -2735,7 +2741,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2739 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2745 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 486:
@@ -2745,7 +2751,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("socket-name", name);
     ctx.leave();
 }
-#line 2749 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2755 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 488:
@@ -2753,7 +2759,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2757 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2763 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 489:
@@ -2762,7 +2768,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->combine_set("comment", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2766 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2772 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 490:
@@ -2773,7 +2779,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 2777 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2783 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 491:
@@ -2784,7 +2790,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2788 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2794 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 492:
@@ -2794,7 +2800,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2798 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2804 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 493:
@@ -2804,7 +2810,7 @@ namespace isc { namespace dhcp {
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2808 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2814 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 513:
@@ -2813,7 +2819,7 @@ namespace isc { namespace dhcp {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 2817 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2823 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 514:
@@ -2821,7 +2827,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2825 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2831 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 515:
@@ -2831,7 +2837,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 2835 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2841 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 516:
@@ -2839,7 +2845,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2843 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2849 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 517:
@@ -2849,7 +2855,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("server-ip", s);
     ctx.leave();
 }
-#line 2853 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2859 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 518:
@@ -2858,7 +2864,7 @@ namespace isc { namespace dhcp {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 2862 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2868 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 519:
@@ -2866,7 +2872,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2870 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2876 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 520:
@@ -2876,7 +2882,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("sender-ip", s);
     ctx.leave();
 }
-#line 2880 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2886 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 521:
@@ -2885,7 +2891,7 @@ namespace isc { namespace dhcp {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 2889 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2895 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 522:
@@ -2894,7 +2900,7 @@ namespace isc { namespace dhcp {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 2898 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2904 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 523:
@@ -2902,7 +2908,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 2906 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2912 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 524:
@@ -2911,19 +2917,19 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2915 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2921 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 525:
 #line 1765 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 2921 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2927 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 526:
 #line 1766 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 2927 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2933 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 527:
@@ -2931,7 +2937,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 2935 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2941 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 528:
@@ -2941,7 +2947,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 2945 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2951 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 529:
@@ -2950,7 +2956,7 @@ namespace isc { namespace dhcp {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-include-fqdn", b);
 }
-#line 2954 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2960 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 530:
@@ -2959,7 +2965,7 @@ namespace isc { namespace dhcp {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 2963 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2969 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 531:
@@ -2968,7 +2974,7 @@ namespace isc { namespace dhcp {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 2972 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2978 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 532:
@@ -2976,7 +2982,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 2980 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2986 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 533:
@@ -2985,7 +2991,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2989 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2995 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 534:
@@ -2993,7 +2999,7 @@ namespace isc { namespace dhcp {
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); 
       }
-#line 2997 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3003 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 535:
@@ -3001,7 +3007,7 @@ namespace isc { namespace dhcp {
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3005 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3011 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 536:
@@ -3009,7 +3015,7 @@ namespace isc { namespace dhcp {
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3013 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3019 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 537:
@@ -3017,7 +3023,7 @@ namespace isc { namespace dhcp {
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3021 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3027 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 538:
@@ -3026,7 +3032,7 @@ namespace isc { namespace dhcp {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3030 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3036 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 539:
@@ -3034,7 +3040,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3038 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3044 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 540:
@@ -3044,7 +3050,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3048 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3054 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 541:
@@ -3052,7 +3058,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3056 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3062 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 542:
@@ -3061,7 +3067,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3065 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3071 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 543:
@@ -3069,7 +3075,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3073 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3079 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 544:
@@ -3078,7 +3084,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3082 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3088 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 545:
@@ -3086,7 +3092,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3090 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3096 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 546:
@@ -3095,7 +3101,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3099 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3105 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 547:
@@ -3106,7 +3112,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.LOGGING);
 }
-#line 3110 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3116 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
   case 548:
@@ -3115,159 +3121,177 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3119 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3125 "dhcp4_parser.cc" // lalr1.cc:859
+    break;
+
+  case 549:
+#line 1864 "dhcp4_parser.yy" // lalr1.cc:859
+    {
+    // Parse the Logging map
+    ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.push_back(m);
+}
+#line 3135 "dhcp4_parser.cc" // lalr1.cc:859
+    break;
+
+  case 550:
+#line 1868 "dhcp4_parser.yy" // lalr1.cc:859
+    {
+    // parsing completed
+}
+#line 3143 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 552:
-#line 1876 "dhcp4_parser.yy" // lalr1.cc:859
+  case 554:
+#line 1884 "dhcp4_parser.yy" // lalr1.cc:859
     {
     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 3130 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3154 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 553:
-#line 1881 "dhcp4_parser.yy" // lalr1.cc:859
+  case 555:
+#line 1889 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3139 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3163 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 556:
-#line 1893 "dhcp4_parser.yy" // lalr1.cc:859
+  case 558:
+#line 1901 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3149 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3173 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 557:
-#line 1897 "dhcp4_parser.yy" // lalr1.cc:859
+  case 559:
+#line 1905 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
-#line 3157 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3181 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 567:
-#line 1914 "dhcp4_parser.yy" // lalr1.cc:859
+  case 569:
+#line 1922 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 3166 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3190 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 568:
-#line 1919 "dhcp4_parser.yy" // lalr1.cc:859
+  case 570:
+#line 1927 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3174 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3198 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 569:
-#line 1921 "dhcp4_parser.yy" // lalr1.cc:859
+  case 571:
+#line 1929 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
     ctx.leave();
 }
-#line 3184 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3208 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 570:
-#line 1927 "dhcp4_parser.yy" // lalr1.cc:859
+  case 572:
+#line 1935 "dhcp4_parser.yy" // lalr1.cc:859
     {
     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 3195 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3219 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 571:
-#line 1932 "dhcp4_parser.yy" // lalr1.cc:859
+  case 573:
+#line 1940 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3204 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3228 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 574:
-#line 1941 "dhcp4_parser.yy" // lalr1.cc:859
+  case 576:
+#line 1949 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3214 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3238 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 575:
-#line 1945 "dhcp4_parser.yy" // lalr1.cc:859
+  case 577:
+#line 1953 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
-#line 3222 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3246 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 582:
-#line 1959 "dhcp4_parser.yy" // lalr1.cc:859
+  case 584:
+#line 1967 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3230 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3254 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 583:
-#line 1961 "dhcp4_parser.yy" // lalr1.cc:859
+  case 585:
+#line 1969 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
     ctx.leave();
 }
-#line 3240 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3264 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 584:
-#line 1967 "dhcp4_parser.yy" // lalr1.cc:859
+  case 586:
+#line 1975 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3249 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3273 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 585:
-#line 1972 "dhcp4_parser.yy" // lalr1.cc:859
+  case 587:
+#line 1980 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 3258 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3282 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 586:
-#line 1977 "dhcp4_parser.yy" // lalr1.cc:859
+  case 588:
+#line 1985 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 3267 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3291 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
 
-#line 3271 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3295 "dhcp4_parser.cc" // lalr1.cc:859
             default:
               break;
             }
@@ -3522,176 +3546,177 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short int Dhcp4Parser::yypact_ninf_ = -721;
+  const short int Dhcp4Parser::yypact_ninf_ = -745;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short int
   Dhcp4Parser::yypact_[] =
   {
-     315,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,    38,    12,    33,    41,    44,    52,    56,
-      58,    60,    62,    64,    75,    84,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-      12,   -86,    10,   161,    74,    32,   165,   348,    82,    61,
-     191,   -17,   333,  -721,    89,   111,   137,   143,   155,  -721,
-    -721,  -721,  -721,  -721,   188,  -721,    23,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,   205,   209,  -721,  -721,  -721,  -721,
-    -721,   220,   223,   227,   237,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,   238,  -721,  -721,  -721,    54,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,   246,
-    -721,    81,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,   257,   264,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,   109,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,   132,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,   186,
-     255,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,   303,  -721,  -721,   268,  -721,  -721,  -721,
-     314,  -721,  -721,   313,   327,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,   328,   330,
-    -721,  -721,  -721,  -721,   335,   341,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,   230,  -721,
-    -721,  -721,   346,  -721,  -721,   349,  -721,   352,   361,  -721,
-    -721,   362,   363,   369,  -721,  -721,  -721,  -721,  -721,   231,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,    12,    12,  -721,   229,
-     373,   379,   396,   397,   398,  -721,    10,  -721,   403,   258,
-     259,   406,   407,   410,   411,   412,   204,   239,   269,   270,
-     415,   416,   417,   418,   419,   422,   423,   430,   458,   459,
-     316,   461,   462,   161,  -721,   463,   464,   465,   320,    74,
-    -721,   124,   467,   468,   469,   470,   471,   474,   477,   334,
-     336,   481,   483,   484,   485,    32,  -721,   486,   165,  -721,
-     487,   489,   490,   494,   496,   498,   501,   502,  -721,   348,
-    -721,   503,   506,   364,   507,   510,   511,   368,  -721,    61,
-     515,   370,   374,  -721,   191,   518,   519,   -12,  -721,   377,
-     525,   526,   384,   527,   385,   386,   531,   532,   387,   388,
-     391,   538,   539,   333,  -721,  -721,  -721,   540,   541,   542,
-      12,    12,    12,  -721,   544,  -721,  -721,   399,   400,   405,
-     546,   547,  -721,  -721,  -721,  -721,   550,   551,   552,   553,
-     554,    12,   555,   557,   559,   558,  -721,   560,   561,  -721,
-     565,    90,   151,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,   537,   556,  -721,  -721,  -721,
-     424,   425,   427,   570,   429,   431,   432,  -721,  -721,    50,
-     433,   572,   574,  -721,   435,  -721,   565,   436,   437,   438,
-     439,   440,   441,   442,  -721,   443,   444,  -721,   445,   446,
-     447,  -721,  -721,   448,  -721,  -721,  -721,   449,    12,  -721,
-    -721,   450,   451,  -721,   452,  -721,  -721,    17,   482,  -721,
-    -721,  -721,    45,   454,  -721,    12,   161,   478,  -721,  -721,
-    -721,    74,  -721,  -721,  -721,   242,   242,   596,   597,   598,
-     599,  -721,  -721,  -721,   117,     7,   600,   192,   202,   333,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,   562,  -721,
-     124,  -721,  -721,  -721,   601,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,   602,   523,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,   232,  -721,   254,
-    -721,  -721,   262,  -721,  -721,  -721,  -721,   607,   608,   609,
-     610,   611,  -721,  -721,  -721,   290,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,   292,  -721,   612,   613,  -721,  -721,   614,   616,  -721,
-    -721,   615,   619,  -721,  -721,   617,   621,  -721,  -721,  -721,
-    -721,  -721,  -721,   167,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,   174,  -721,   620,   622,  -721,   623,   624,   625,   626,
-     627,   628,   293,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,   302,  -721,  -721,  -721,  -721,
-    -721,   306,   488,   491,  -721,  -721,   630,   631,  -721,  -721,
-     633,   634,  -721,  -721,   632,  -721,   629,   478,  -721,  -721,
-     637,   638,   639,   640,   497,   499,   500,   504,   505,   642,
-     643,   242,  -721,  -721,    32,  -721,   596,    61,  -721,   597,
-     191,  -721,   598,    85,  -721,   599,   117,  -721,     7,  -721,
-     -17,  -721,   600,   508,   509,   512,   513,   514,   516,   192,
-    -721,   646,   647,   648,   202,  -721,  -721,  -721,   649,   655,
-    -721,   165,  -721,   601,   348,  -721,   602,   659,  -721,   654,
-    -721,   365,   520,   521,   522,  -721,  -721,  -721,  -721,  -721,
-     524,   528,  -721,   312,  -721,   657,  -721,   658,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,   321,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,   343,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-      12,   529,   530,  -721,  -721,   533,   372,  -721,   662,  -721,
-     536,   666,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,    85,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,   190,  -721,  -721,   126,
-     666,  -721,  -721,   670,  -721,  -721,  -721,  -721,  -721,   382,
-    -721,  -721,  -721,  -721,  -721,   674,   545,   683,   126,  -721,
-     684,  -721,   543,  -721,   689,  -721,  -721,   217,  -721,    88,
-     689,  -721,  -721,   696,   703,   706,   383,  -721,  -721,  -721,
-    -721,  -721,  -721,   709,   566,   567,   569,    88,  -721,   571,
-    -721,  -721,  -721,  -721,  -721
+     305,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,    16,    36,    47,    61,    79,    82,
+     106,   117,   132,   159,   182,   184,   188,   195,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,    36,    20,     9,   183,    72,    52,
+      14,   213,   142,   356,    -4,    -8,   323,    86,  -745,   224,
+     229,   234,   238,   247,  -745,  -745,  -745,  -745,  -745,   259,
+    -745,    55,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   266,
+     269,  -745,  -745,  -745,  -745,  -745,   286,   287,   295,   299,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+     303,  -745,  -745,  -745,    63,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,   309,  -745,    84,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,   313,   315,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,    90,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,    94,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,   253,   277,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   301,  -745,
+    -745,   325,  -745,  -745,  -745,   342,  -745,  -745,   319,   341,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,   345,   350,  -745,  -745,  -745,  -745,   347,
+     362,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,   125,  -745,  -745,  -745,   365,  -745,  -745,
+     371,  -745,   372,   374,  -745,  -745,   376,   377,   385,  -745,
+    -745,  -745,  -745,  -745,   185,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,   208,  -745,  -745,  -745,    36,    36,  -745,   242,   391,
+     393,   402,   403,   405,  -745,     9,  -745,   408,   267,   268,
+     413,   418,   419,   420,   421,   304,   306,   307,   310,   450,
+     453,   454,   456,   457,   458,   459,   460,   461,   462,   318,
+     464,   465,   183,  -745,   466,   468,   469,   324,    72,  -745,
+     191,   470,   472,   473,   474,   475,   477,   478,   334,   333,
+     481,   482,   483,   484,    52,  -745,   486,    14,  -745,   487,
+     488,   491,   492,   496,   497,   498,   499,  -745,   213,  -745,
+     501,   504,   361,   507,   508,   509,   363,  -745,   356,   511,
+     366,   368,  -745,    -4,   512,   516,   -43,  -745,   373,   519,
+     524,   380,   526,   382,   383,   529,   530,   384,   386,   389,
+     532,   537,   323,  -745,   538,    86,  -745,  -745,  -745,   539,
+     540,   541,    36,    36,    36,  -745,   542,  -745,  -745,   396,
+     397,   398,   544,   545,  -745,  -745,  -745,  -745,   548,   549,
+     550,   551,   552,    36,   553,   555,   556,   557,  -745,   558,
+     559,  -745,   562,   166,   135,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,   554,   560,  -745,
+    -745,  -745,   409,   423,   424,   563,   425,   426,   427,  -745,
+    -745,   285,   428,   564,   571,  -745,   431,  -745,   562,   432,
+     433,   435,   436,   438,   439,   440,  -745,   441,   442,  -745,
+     443,   444,   445,  -745,  -745,   446,  -745,  -745,  -745,   447,
+      36,  -745,  -745,   448,   449,  -745,   451,  -745,  -745,    -9,
+     480,  -745,  -745,  -745,   102,   452,  -745,   596,  -745,    36,
+     183,    86,  -745,  -745,  -745,    72,  -745,  -745,  -745,   138,
+     138,   595,   597,   598,   599,  -745,  -745,  -745,   116,    37,
+     600,   308,   118,   323,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,   604,  -745,   191,  -745,  -745,  -745,   602,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,   603,   525,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+     606,  -745,   237,   246,   254,  -745,  -745,  -745,  -745,   607,
+     610,   611,   612,   613,  -745,  -745,  -745,   257,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,   264,  -745,   614,   615,  -745,  -745,   616,   618,  -745,
+    -745,   617,   621,  -745,  -745,   619,   623,  -745,  -745,  -745,
+    -745,  -745,  -745,    26,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,    77,  -745,   622,   624,  -745,   625,   626,   627,   628,
+     629,   630,   276,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,   280,  -745,  -745,  -745,  -745,
+    -745,   284,   455,   471,  -745,  -745,   631,   632,  -745,  -745,
+     633,   635,  -745,  -745,   634,  -745,   143,  -745,  -745,  -745,
+    -745,   636,   637,   639,   640,   500,   485,   502,   494,   503,
+     642,   643,   138,  -745,  -745,    52,  -745,   595,   356,  -745,
+     597,    -4,  -745,   598,    83,  -745,   599,   116,  -745,    37,
+    -745,    -8,  -745,   600,   505,   506,   510,   513,   514,   515,
+     308,  -745,   644,   646,   649,   118,  -745,  -745,  -745,   650,
+     654,  -745,    14,  -745,   602,   213,  -745,   603,   656,  -745,
+     187,   606,  -745,    81,   517,   518,   520,  -745,  -745,  -745,
+    -745,  -745,   521,   522,  -745,   298,  -745,   653,  -745,   659,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,   302,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,   317,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,    36,   523,   527,  -745,  -745,   528,   320,  -745,
+     664,  -745,   531,  -745,   669,  -745,  -745,  -745,  -745,  -745,
+     337,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    83,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   670,
+     533,   673,   187,  -745,  -745,   675,  -745,   535,  -745,   651,
+    -745,  -745,   161,  -745,    29,   651,  -745,  -745,   674,   677,
+     680,   340,  -745,  -745,  -745,  -745,  -745,  -745,   681,   543,
+     565,   567,    29,  -745,   569,  -745,  -745,  -745,  -745,  -745
   };
 
   const unsigned short int
   Dhcp4Parser::yydefact_[] =
   {
        0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
-      20,    22,    24,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     1,    41,    34,    30,
-      29,    26,    27,    28,    33,     3,    31,    32,    54,     5,
-      66,     7,   113,     9,   227,    11,   380,    13,   403,    15,
-     305,    17,   313,    19,   350,    21,   192,    23,   492,    25,
-      43,    37,     0,     0,     0,     0,     0,   405,     0,   315,
-     352,     0,     0,    45,     0,    44,     0,     0,    38,    64,
-     547,   541,   543,   545,     0,    63,     0,    56,    58,    60,
-      61,    62,    59,   102,     0,     0,   424,   426,   428,   126,
-     128,     0,     0,     0,     0,   219,   303,   342,   276,   391,
-     393,   170,   450,   184,   203,     0,   474,   490,    95,     0,
-      68,    70,    71,    72,    73,    88,    89,    76,    77,    78,
-      79,    83,    84,    74,    75,    81,    82,    93,    94,    90,
-      91,    92,    80,    85,    86,    87,   115,   117,   121,     0,
-     112,     0,   104,   106,   107,   108,   109,   110,   111,   454,
-     257,   259,   261,   372,   255,   263,   265,     0,     0,   269,
-     267,   395,   446,   254,   231,   232,   233,   245,     0,   229,
-     236,   249,   250,   251,   237,   238,   241,   243,   239,   240,
-     234,   235,   252,   253,   242,   246,   247,   248,   244,   389,
-     388,   385,     0,   382,   384,   386,   387,   444,   432,   434,
-     438,   436,   442,   440,   430,   423,   417,   421,   422,     0,
-     406,   407,   418,   419,   420,   414,   409,   415,   411,   412,
-     413,   416,   410,     0,   332,   160,     0,   336,   334,   339,
-       0,   328,   329,     0,   316,   317,   319,   331,   320,   321,
-     322,   338,   323,   324,   325,   326,   327,   366,     0,     0,
-     364,   365,   368,   369,     0,   353,   354,   356,   357,   358,
-     359,   360,   361,   362,   363,   199,   201,   196,     0,   194,
-     197,   198,     0,   514,   516,     0,   519,     0,     0,   523,
-     527,     0,     0,     0,   532,   539,   512,   510,   511,     0,
-     494,   496,   497,   498,   499,   500,   501,   502,   503,   504,
-     505,   506,   507,   508,   509,    42,     0,     0,    35,     0,
-       0,     0,     0,     0,     0,    53,     0,    55,     0,     0,
+      20,    22,    24,    26,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     1,    43,
+      36,    32,    31,    28,    29,    30,    35,     3,    33,    34,
+      56,     5,    68,     7,   115,     9,   227,    11,   380,    13,
+     403,    15,   305,    17,   313,    19,   350,    21,   192,    23,
+     492,    25,   549,    27,    45,    39,     0,     0,     0,     0,
+       0,   405,     0,   315,   352,     0,     0,     0,    47,     0,
+      46,     0,     0,    40,    66,   547,   541,   543,   545,     0,
+      65,     0,    58,    60,    62,    63,    64,    61,   104,     0,
+       0,   424,   426,   428,   128,   130,     0,     0,     0,     0,
+     219,   303,   342,   276,   391,   393,   170,   450,   184,   203,
+       0,   474,   490,    97,     0,    70,    72,    73,    74,    75,
+      90,    91,    78,    79,    80,    81,    85,    86,    76,    77,
+      83,    84,    95,    96,    92,    93,    94,    82,    87,    88,
+      89,   117,   119,   123,     0,   114,     0,   106,   108,   109,
+     110,   111,   112,   113,   454,   257,   259,   261,   372,   255,
+     263,   265,     0,     0,   269,   267,   395,   446,   254,   231,
+     232,   233,   245,     0,   229,   236,   249,   250,   251,   237,
+     238,   241,   243,   239,   240,   234,   235,   252,   253,   242,
+     246,   247,   248,   244,   389,   388,   385,     0,   382,   384,
+     386,   387,   444,   432,   434,   438,   436,   442,   440,   430,
+     423,   417,   421,   422,     0,   406,   407,   418,   419,   420,
+     414,   409,   415,   411,   412,   413,   416,   410,     0,   332,
+     160,     0,   336,   334,   339,     0,   328,   329,     0,   316,
+     317,   319,   331,   320,   321,   322,   338,   323,   324,   325,
+     326,   327,   366,     0,     0,   364,   365,   368,   369,     0,
+     353,   354,   356,   357,   358,   359,   360,   361,   362,   363,
+     199,   201,   196,     0,   194,   197,   198,     0,   514,   516,
+       0,   519,     0,     0,   523,   527,     0,     0,     0,   532,
+     539,   512,   510,   511,     0,   494,   496,   497,   498,   499,
+     500,   501,   502,   503,   504,   505,   506,   507,   508,   509,
+     554,     0,   551,   553,    44,     0,     0,    37,     0,     0,
+       0,     0,     0,     0,    55,     0,    57,     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,    67,     0,     0,     0,     0,     0,
-     114,   456,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   228,     0,     0,   381,
-       0,     0,     0,     0,     0,     0,     0,     0,   404,     0,
-     306,     0,     0,     0,     0,     0,     0,     0,   314,     0,
-       0,     0,     0,   351,     0,     0,     0,     0,   193,     0,
+       0,     0,     0,    69,     0,     0,     0,     0,     0,   116,
+     456,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   228,     0,     0,   381,     0,
+       0,     0,     0,     0,     0,     0,     0,   404,     0,   306,
+       0,     0,     0,     0,     0,     0,     0,   314,     0,     0,
+       0,     0,   351,     0,     0,     0,     0,   193,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   493,    46,    39,     0,     0,     0,
-       0,     0,     0,    57,     0,   100,   101,     0,     0,     0,
-       0,     0,    96,    97,    98,    99,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   473,     0,     0,    69,
-       0,     0,     0,   125,   105,   471,   469,   470,   462,   463,
-     467,   468,   464,   465,   466,     0,   457,   458,   460,   461,
-       0,     0,     0,     0,     0,     0,     0,   274,   275,     0,
-       0,     0,     0,   230,     0,   383,     0,     0,     0,     0,
-       0,     0,     0,     0,   408,     0,     0,   330,     0,     0,
-       0,   341,   318,     0,   370,   371,   355,     0,     0,   195,
-     513,     0,     0,   518,     0,   521,   522,     0,     0,   529,
-     530,   531,     0,     0,   495,     0,     0,     0,   542,   544,
-     546,     0,   425,   427,   429,     0,     0,   221,   307,   344,
-     278,    36,   392,   394,     0,     0,   186,     0,     0,     0,
-      47,   116,   119,   120,   118,   123,   124,   122,     0,   455,
-       0,   258,   260,   262,   374,   256,   264,   266,   271,   272,
-     273,   270,   268,   397,     0,   390,   445,   433,   435,   439,
-     437,   443,   441,   431,   333,   161,   337,   335,   340,   367,
-     200,   202,   515,   517,   520,   525,   526,   524,   528,   534,
-     535,   536,   537,   538,   533,   540,    40,     0,   552,     0,
-     549,   551,     0,   147,   153,   155,   157,     0,     0,     0,
-       0,     0,   166,   168,   146,     0,   130,   132,   133,   134,
+       0,     0,     0,   493,     0,     0,   550,    48,    41,     0,
+       0,     0,     0,     0,     0,    59,     0,   102,   103,     0,
+       0,     0,     0,     0,    98,    99,   100,   101,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   473,     0,
+       0,    71,     0,     0,     0,   127,   107,   471,   469,   470,
+     462,   463,   467,   468,   464,   465,   466,     0,   457,   458,
+     460,   461,     0,     0,     0,     0,     0,     0,     0,   274,
+     275,     0,     0,     0,     0,   230,     0,   383,     0,     0,
+       0,     0,     0,     0,     0,     0,   408,     0,     0,   330,
+       0,     0,     0,   341,   318,     0,   370,   371,   355,     0,
+       0,   195,   513,     0,     0,   518,     0,   521,   522,     0,
+       0,   529,   530,   531,     0,     0,   495,     0,   552,     0,
+       0,     0,   542,   544,   546,     0,   425,   427,   429,     0,
+       0,   221,   307,   344,   278,    38,   392,   394,     0,     0,
+     186,     0,     0,     0,    49,   118,   121,   122,   120,   125,
+     126,   124,     0,   455,     0,   258,   260,   262,   374,   256,
+     264,   266,   271,   272,   273,   270,   268,   397,     0,   390,
+     445,   433,   435,   439,   437,   443,   441,   431,   333,   161,
+     337,   335,   340,   367,   200,   202,   515,   517,   520,   525,
+     526,   524,   528,   534,   535,   536,   537,   538,   533,   540,
+       0,    42,     0,     0,     0,   147,   153,   155,   157,     0,
+       0,     0,     0,     0,   166,   168,   146,     0,   132,   134,
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,     0,   225,     0,   222,   223,   311,     0,   308,   309,
      348,     0,   345,   346,   282,     0,   279,   280,   179,   180,
@@ -3699,456 +3724,459 @@ namespace isc { namespace dhcp {
      452,     0,   190,     0,   187,   188,     0,     0,     0,     0,
        0,     0,     0,   205,   207,   208,   209,   210,   211,   212,
      488,   483,   485,   482,   487,     0,   476,   478,   479,   480,
-     481,     0,    49,     0,   459,   378,     0,   375,   376,   401,
-       0,   398,   399,   448,     0,    65,     0,     0,   548,   103,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   127,   129,     0,   220,     0,   315,   304,     0,
-     352,   343,     0,     0,   277,     0,     0,   171,     0,   451,
-       0,   185,     0,     0,     0,     0,     0,     0,     0,     0,
-     204,     0,     0,     0,     0,   475,   491,    51,     0,    50,
-     472,     0,   373,     0,   405,   396,     0,     0,   447,     0,
-     550,     0,     0,     0,     0,   159,   162,   163,   164,   165,
-       0,     0,   131,     0,   224,     0,   310,     0,   347,   302,
-     299,   289,   290,   292,   286,   287,   288,   298,   297,     0,
-     284,   291,   300,   301,   293,   294,   295,   296,   281,   173,
-     453,     0,   189,   213,   214,   215,   216,   217,   218,   206,
-       0,     0,     0,   477,    48,     0,     0,   377,     0,   400,
-       0,     0,   149,   150,   151,   152,   148,   154,   156,   158,
-     167,   169,   226,   312,   349,     0,   283,   191,   489,   484,
-     486,    52,   379,   402,   449,   556,     0,   554,   285,     0,
-       0,   553,   570,     0,   568,   566,   560,   564,   565,     0,
-     558,   562,   563,   561,   555,     0,     0,     0,     0,   557,
-       0,   567,     0,   559,     0,   569,   574,     0,   572,     0,
-       0,   571,   582,     0,     0,     0,     0,   576,   578,   579,
-     580,   581,   573,     0,     0,     0,     0,     0,   575,     0,
-     584,   585,   586,   577,   583
+     481,     0,    51,     0,   459,   378,     0,   375,   376,   401,
+       0,   398,   399,   448,     0,   558,     0,   556,    67,   548,
+     105,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   129,   131,     0,   220,     0,   315,   304,
+       0,   352,   343,     0,     0,   277,     0,     0,   171,     0,
+     451,     0,   185,     0,     0,     0,     0,     0,     0,     0,
+       0,   204,     0,     0,     0,     0,   475,   491,    53,     0,
+      52,   472,     0,   373,     0,   405,   396,     0,     0,   447,
+       0,     0,   555,     0,     0,     0,     0,   159,   162,   163,
+     164,   165,     0,     0,   133,     0,   224,     0,   310,     0,
+     347,   302,   299,   289,   290,   292,   286,   287,   288,   298,
+     297,     0,   284,   291,   300,   301,   293,   294,   295,   296,
+     281,   173,   453,     0,   189,   213,   214,   215,   216,   217,
+     218,   206,     0,     0,     0,   477,    50,     0,     0,   377,
+       0,   400,     0,   572,     0,   570,   568,   562,   566,   567,
+       0,   560,   564,   565,   563,   557,   149,   150,   151,   152,
+     148,   154,   156,   158,   167,   169,   226,   312,   349,     0,
+     283,   191,   489,   484,   486,    54,   379,   402,   449,     0,
+       0,     0,     0,   559,   285,     0,   569,     0,   561,     0,
+     571,   576,     0,   574,     0,     0,   573,   584,     0,     0,
+       0,     0,   578,   580,   581,   582,   583,   575,     0,     0,
+       0,     0,     0,   577,     0,   586,   587,   588,   579,   585
   };
 
   const short int
   Dhcp4Parser::yypgoto_[] =
   {
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,   -26,  -721,   275,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,   121,  -721,  -721,  -721,   -62,
-    -721,  -721,  -721,   394,  -721,  -721,  -721,  -721,   193,   375,
-     -52,   -50,   -49,  -721,  -721,   -47,  -721,  -721,   185,   376,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,   194,   -10,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,   -69,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-     -22,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-     -24,  -721,  -721,  -721,   -19,   329,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,   -25,  -721,  -721,  -721,  -721,  -721,  -721,
-    -720,  -721,  -721,  -721,     2,  -721,  -721,  -721,     1,   378,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -712,  -721,
-    -721,  -721,  -543,  -721,  -711,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,    -6,  -721,  -721,  -115,   -57,  -721,  -721,
-    -721,  -721,  -721,     6,  -721,  -721,  -721,    11,  -721,   358,
-    -721,   -64,  -721,  -721,  -721,  -721,  -721,   -41,  -721,  -721,
-    -721,  -721,  -721,   -30,  -721,  -721,  -721,     8,  -721,  -721,
-    -721,     9,  -721,   359,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,   -21,  -721,  -721,  -721,   -16,
-     389,  -721,  -721,   -42,  -721,   -20,  -721,  -721,  -721,  -721,
-    -721,   -18,  -721,  -721,  -721,   -15,  -721,   381,    -7,  -721,
-      -1,  -721,     3,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -710,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-     196,  -721,  -721,  -721,  -721,  -721,  -721,  -721,    -3,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-     213,   350,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,  -721,
-    -721,  -721,  -721,  -721,    47,  -721,  -721,  -721,  -105,  -721,
-    -721,  -122,  -721,  -721,  -721,  -721,  -721,  -721,  -132,  -721,
-    -721,  -148,  -721,  -721,  -721,  -721,  -721
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,   -50,  -745,   226,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,   192,  -745,  -745,  -745,
+     -66,  -745,  -745,  -745,   358,  -745,  -745,  -745,  -745,   141,
+     349,   -68,   -58,   -54,  -745,  -745,   -51,  -745,  -745,   148,
+     339,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,   162,   -29,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   -62,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,   -42,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,   -45,  -745,  -745,  -745,   -40,   316,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,   -47,  -745,  -745,  -745,  -745,  -745,
+    -745,  -744,  -745,  -745,  -745,   -22,  -745,  -745,  -745,   -19,
+     353,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -738,
+    -745,  -745,  -745,  -552,  -745,  -733,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,   -26,  -745,  -745,  -147,   -59,  -745,
+    -745,  -745,  -745,  -745,   -17,  -745,  -745,  -745,   -13,  -745,
+     336,  -745,   -53,  -745,  -745,  -745,  -745,  -745,   -41,  -745,
+    -745,  -745,  -745,  -745,   -14,  -745,  -745,  -745,   -16,  -745,
+    -745,  -745,   -10,  -745,   346,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,   -39,  -745,  -745,  -745,
+     -32,   381,  -745,  -745,   -46,  -745,   -34,  -745,  -745,  -745,
+    -745,  -745,   -33,  -745,  -745,  -745,   -28,  -745,   354,    -7,
+    -745,    -2,  -745,     1,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -726,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,   179,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   -15,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,   196,   343,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
+    -745,  -745,  -745,  -745,  -745,  -745,   220,   338,  -745,  -745,
+    -745,   -27,  -745,  -745,  -130,  -745,  -745,  -745,  -745,  -745,
+    -745,  -139,  -745,  -745,  -155,  -745,  -745,  -745,  -745,  -745
   };
 
   const short int
   Dhcp4Parser::yydefgoto_[] =
   {
-      -1,    13,    14,    15,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    34,    35,    36,    61,   552,    77,
-      78,    37,    60,    74,    75,   561,   712,   778,   779,   118,
-      39,    62,    86,    87,    88,   320,    41,    63,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   328,   151,   152,
-      43,    64,   153,   355,   154,   356,   564,   155,   357,   567,
-     156,   128,   334,   129,   335,   635,   636,   637,   730,   856,
-     638,   731,   639,   732,   640,   733,   641,   242,   392,   643,
-     644,   645,   646,   647,   739,   648,   740,   130,   346,   673,
-     674,   675,   676,   677,   678,   679,   131,   348,   683,   684,
-     685,   760,    57,    71,   278,   279,   280,   405,   281,   406,
-     132,   349,   692,   693,   694,   695,   696,   697,   698,   699,
-     133,   340,   653,   654,   655,   744,    45,    65,   178,   179,
-     180,   366,   181,   362,   182,   363,   183,   364,   184,   367,
-     185,   368,   186,   372,   187,   371,   581,   188,   189,   134,
-     343,   665,   666,   667,   753,   819,   820,   135,   341,    51,
-      68,   657,   658,   659,   747,    53,    69,   243,   244,   245,
-     246,   247,   248,   249,   391,   250,   395,   251,   394,   252,
-     253,   396,   254,   136,   342,   661,   662,   663,   750,    55,
-      70,   264,   265,   266,   267,   268,   400,   269,   270,   271,
-     272,   191,   365,   716,   717,   718,   781,    47,    66,   202,
-     203,   204,   377,   137,   344,   138,   345,   194,   373,   720,
-     721,   722,   784,    49,    67,   219,   220,   221,   139,   331,
-     140,   332,   141,   333,   225,   387,   226,   381,   227,   382,
-     228,   384,   229,   383,   230,   386,   231,   385,   232,   380,
-     198,   374,   724,   787,   142,   347,   681,   361,   475,   476,
-     477,   478,   479,   568,   143,   144,   351,   705,   706,   707,
-     772,   708,   773,   709,   710,   771,   145,   352,    59,    72,
-     299,   300,   301,   302,   410,   303,   411,   304,   305,   413,
-     306,   307,   308,   416,   607,   309,   417,   310,   311,   312,
-     313,   421,   614,   314,   422,    89,   322,    90,   323,    91,
-     324,    92,   321,   619,   620,   621,   726,   876,   877,   879,
-     889,   890,   891,   892,   897,   893,   895,   907,   908,   909,
-     916,   917,   918,   923,   919,   920,   921
+      -1,    14,    15,    16,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    36,    37,    38,    65,   566,
+      82,    83,    39,    64,    79,    80,   575,   722,   789,   790,
+     123,    41,    66,    91,    92,    93,   329,    43,    67,   124,
+     125,   126,   127,   128,   129,   130,   131,   132,   337,   156,
+     157,    45,    68,   158,   364,   159,   365,   578,   160,   366,
+     581,   161,   133,   343,   134,   344,   647,   648,   649,   741,
+     880,   650,   742,   651,   743,   652,   744,   653,   247,   401,
+     655,   656,   657,   658,   659,   750,   660,   751,   135,   355,
+     683,   684,   685,   686,   687,   688,   689,   136,   357,   693,
+     694,   695,   771,    59,    75,   283,   284,   285,   414,   286,
+     415,   137,   358,   702,   703,   704,   705,   706,   707,   708,
+     709,   138,   349,   663,   664,   665,   755,    47,    69,   183,
+     184,   185,   375,   186,   371,   187,   372,   188,   373,   189,
+     376,   190,   377,   191,   381,   192,   380,   595,   193,   194,
+     139,   352,   675,   676,   677,   764,   831,   832,   140,   350,
+      53,    72,   667,   668,   669,   758,    55,    73,   248,   249,
+     250,   251,   252,   253,   254,   400,   255,   404,   256,   403,
+     257,   258,   405,   259,   141,   351,   671,   672,   673,   761,
+      57,    74,   269,   270,   271,   272,   273,   409,   274,   275,
+     276,   277,   196,   374,   726,   727,   728,   792,    49,    70,
+     207,   208,   209,   386,   142,   353,   143,   354,   199,   382,
+     730,   731,   732,   795,    51,    71,   224,   225,   226,   144,
+     340,   145,   341,   146,   342,   230,   396,   231,   390,   232,
+     391,   233,   393,   234,   392,   235,   395,   236,   394,   237,
+     389,   203,   383,   734,   798,   147,   356,   691,   370,   487,
+     488,   489,   490,   491,   582,   148,   149,   360,   715,   716,
+     717,   783,   718,   784,   719,   720,   782,   150,   361,    61,
+      76,   304,   305,   306,   307,   419,   308,   420,   309,   310,
+     422,   311,   312,   313,   425,   621,   314,   426,   315,   316,
+     317,   318,   430,   628,   319,   431,    94,   331,    95,   332,
+      96,   333,    97,   330,    63,    77,   321,   322,   323,   434,
+     736,   737,   800,   870,   871,   872,   873,   901,   874,   899,
+     912,   913,   914,   921,   922,   923,   928,   924,   925,   926
   };
 
   const unsigned short int
   Dhcp4Parser::yytable_[] =
   {
-      85,   261,   150,   173,   200,   215,   262,   241,   260,   277,
-     296,   233,   680,   174,   159,   175,   176,    27,   177,    28,
-      79,    29,   157,   192,   205,   217,   326,   255,   273,   263,
-     297,   327,   605,   815,    73,   190,   201,   216,    26,   159,
-      38,   816,   818,   827,   158,   193,   206,   218,    40,   256,
-     274,    42,   298,    95,    96,    97,    98,   353,   195,    44,
-     222,    76,   354,    46,   196,    48,   223,    50,   197,    52,
-     224,    54,   275,   276,   101,   102,   103,   275,   276,   160,
-     161,   162,    56,   107,   359,   170,   146,   147,   234,   360,
-     148,    58,   159,   149,   163,   315,   109,   110,   164,   165,
-     166,   167,   168,   169,   562,   563,    95,    96,    97,    98,
-     170,   171,   375,   235,   316,   236,   237,   376,   172,   238,
-     239,   240,   578,   579,   580,   109,   110,   101,   102,   103,
-      84,   105,   106,    80,   606,   378,   107,   235,   109,   110,
-     379,   317,    81,    82,    83,   815,    96,    97,    98,   109,
-     110,   318,   165,   816,   818,   827,   169,    84,   319,    30,
-      31,    32,    33,   170,   609,   610,   611,   612,   565,   566,
-     756,   172,    93,   757,   106,   107,   235,   758,   235,    84,
-     759,    94,    95,    96,    97,    98,    99,   100,   109,   110,
-     109,   110,   325,   880,   388,   613,   881,   668,   669,   670,
-     671,   465,   672,   101,   102,   103,   104,   105,    84,   329,
-     817,   106,   107,   330,   912,   830,   107,   913,   914,   915,
-     910,    84,   108,   911,   336,   109,   110,   337,   199,   109,
-     110,   338,    84,   407,   423,   353,   111,   112,   408,   424,
-     725,   339,   350,   235,   257,   236,   237,   258,   259,   113,
-     358,   882,   114,   883,   884,   109,   110,   727,   389,   115,
-     116,   369,   728,   117,    85,   359,   109,   700,   370,   623,
-     729,    84,   393,    84,   624,   625,   626,   627,   628,   629,
-     630,   631,   632,   633,   686,   687,   688,   689,   690,   691,
-     425,   426,   467,   741,   235,   741,   769,   150,   742,   466,
-     743,   770,   701,   702,   468,   774,   109,   110,    84,   423,
-     775,   390,    84,   173,   776,   375,   200,   157,   397,   470,
-     862,   398,   817,   174,   865,   175,   176,   215,   177,   866,
-     399,   469,   401,   192,   402,   261,   205,   241,    84,   158,
-     262,   471,   260,   403,   404,   190,   407,   217,   201,    84,
-     409,   867,   442,   412,   472,   193,   414,   255,   206,   216,
-     473,   296,   273,   263,   474,   415,   418,   419,   195,   218,
-      96,    97,    98,   420,   196,   378,   427,   428,   197,   256,
-     872,   297,   222,   429,   274,   898,   927,   443,   223,    84,
-     899,   928,   224,   852,   853,   854,   855,   109,   110,   107,
-     430,   431,   432,   298,   538,   539,   540,   434,   435,   436,
-     437,   438,   109,   110,   439,   440,   441,   444,   445,   446,
-     447,   448,   449,   450,   207,   553,   451,   452,   208,   209,
-     210,   211,   212,   213,   453,   214,   282,   283,   284,   285,
-     286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+      90,   179,   155,   178,   205,   220,   619,   246,   265,   282,
+     301,   180,   266,   238,    78,   181,    28,   690,   182,    84,
+     827,   267,   162,   197,   210,   222,   828,   260,   278,   767,
+     302,   830,   768,   268,   163,   198,   211,   223,   839,   261,
+     279,    29,   303,    30,   164,    31,   280,   281,   240,   262,
+     241,   242,   263,   264,    40,   195,   206,   221,   335,   164,
+     114,   115,   200,   336,   227,   112,   362,   201,    42,   228,
+     202,   363,   229,   100,   101,   102,   103,   204,   114,   115,
+     769,   280,   281,   770,   151,   152,    44,   368,   153,    46,
+     164,   154,   369,   384,   106,   107,   108,   387,   385,   165,
+     166,   167,   388,   112,   100,   101,   102,   103,   620,   876,
+     877,   878,   879,    48,   168,   175,   114,   115,   169,   170,
+     171,   172,   173,   174,    50,   106,   107,   108,   416,   110,
+     175,   176,    85,   417,   112,   240,   114,   115,   177,    52,
+      89,    86,    87,    88,    89,   827,   801,   114,   115,   802,
+     170,   828,   579,   580,   174,   917,   830,    89,   918,   919,
+     920,   175,    89,   839,   915,   635,    54,   916,    81,   177,
+     636,   637,   638,   639,   640,   641,   642,   643,   644,   645,
+     576,   577,   114,   710,    32,    33,    34,    35,   432,    56,
+     240,    58,   111,   433,    98,    60,   678,   679,   680,   681,
+      89,   682,    62,    99,   100,   101,   102,   103,   104,   105,
+     320,   435,   829,   101,   102,   103,   436,   842,   711,   712,
+      89,   623,   624,   625,   626,   106,   107,   108,   109,   110,
+     324,    89,   325,   111,   112,   101,   102,   103,   326,   240,
+     362,   111,   112,   240,   113,   738,   327,   114,   115,   435,
+     328,   114,   115,   627,   739,   114,   115,   368,   116,   117,
+     752,   397,   740,   334,   112,   753,    89,   752,   477,    90,
+     338,   118,   754,   339,   119,   437,   438,   114,   115,   780,
+     398,   120,   121,   785,   781,   122,    89,   432,   786,   212,
+     345,   346,   787,   213,   214,   215,   216,   217,   218,   347,
+     219,   384,   155,   348,   478,   889,   886,   359,   479,   399,
+     890,   480,   863,   367,   864,   865,   179,   378,   178,   379,
+     416,   205,   162,   387,   482,   891,   180,   407,   896,   402,
+     181,    89,   220,   182,   163,    89,   483,   829,   197,    89,
+     902,   210,   246,   932,   408,   903,   406,   265,   933,   410,
+     198,   266,   222,   211,   411,   412,   481,   592,   593,   594,
+     267,    89,   260,   484,   223,   413,   301,   278,   485,   418,
+     195,   486,   268,   206,   261,   421,   423,   200,   424,   279,
+     427,   428,   201,   239,   221,   202,   302,   114,   115,   429,
+     439,   227,   552,   553,   554,   440,   228,   441,   303,   229,
+     696,   697,   698,   699,   700,   701,   442,   443,   240,   444,
+     241,   242,   446,   567,   243,   244,   245,   449,   447,   448,
+     114,   115,   450,   451,   452,   453,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,   454,   455,   456,   457,   458,   460,   461,   462,
-     463,   480,   481,   482,   483,   484,   642,   642,   485,   150,
-      84,   486,   487,   634,   634,   489,   488,   490,   491,   492,
-     494,   496,   601,   497,   498,    84,   703,   296,   499,   157,
-     500,   467,   501,   649,   649,   502,   503,   505,   466,   616,
-     506,   508,   507,   468,   509,   510,   704,   297,   511,   513,
-     514,   158,   517,   518,   515,   650,   650,   520,   470,   521,
-     522,   524,   523,   525,   526,   527,   528,   529,   530,   298,
-     469,   531,   532,   533,   535,   569,   542,   543,   536,   537,
-     471,   541,   544,   545,   546,   547,   548,   549,   550,   570,
-     554,    28,   555,   472,   556,   557,   713,   558,   559,   473,
-     560,   571,   572,   474,   573,   574,   575,   583,   576,   577,
-     582,   584,   585,   587,   588,   589,   590,   591,   592,   593,
-     594,   595,   596,   597,   598,   599,   600,   602,   603,   604,
-     608,   615,   618,   652,   656,   660,   664,   682,   715,   719,
-     723,   734,   735,   736,   737,   738,   746,   586,   745,   749,
-     748,   751,   752,   754,   755,   762,   761,   763,   764,   765,
-     766,   767,   768,   789,   783,   777,   782,   786,   780,   785,
-     788,   791,   792,   793,   794,   795,   800,   801,   797,   796,
-     840,   841,   842,   799,   798,   844,   833,   834,   845,   851,
-     835,   836,   837,   850,   838,   863,   864,   857,   858,   859,
-     873,   860,   642,   875,   896,   861,   869,   870,   900,   634,
-     871,   261,   173,   874,   814,   241,   262,   902,   260,   904,
-     905,   809,   174,   901,   175,   176,   906,   177,   277,   649,
-     924,   810,   192,   811,   812,   255,   813,   925,   273,   263,
-     926,   822,   703,   929,   190,   931,   930,   932,   934,   200,
-     433,   650,   215,   821,   193,   551,   622,   256,   459,   617,
-     274,   802,   704,   823,   829,   464,   519,   195,   832,   205,
-     651,   831,   217,   196,   839,   803,   824,   197,   804,   828,
-     878,   201,   825,   493,   216,   806,   826,   512,   805,   807,
-     808,   206,   847,   516,   218,   846,   714,   495,   849,   848,
-     504,   843,   711,   534,   790,   894,   903,   222,   922,   933,
-       0,     0,     0,   223,     0,     0,     0,   224,     0,     0,
-       0,     0,     0,     0,     0,     0,   814,     0,     0,     0,
-       0,     0,     0,   809,     0,     0,     0,     0,     0,     0,
-     886,     0,     0,   810,   868,   811,   812,   885,   813,     0,
-       0,     0,     0,   822,     0,     0,     0,     0,     0,   886,
-       0,     0,     0,     0,     0,   821,   885,   887,     0,     0,
-       0,     0,     0,     0,     0,   823,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   887,     0,   824,   888,
-       0,     0,     0,     0,   825,     0,     0,     0,   826,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   888
+      11,    12,    13,   454,   458,   455,   456,   459,   460,   457,
+     461,   462,   463,   464,   465,   466,   467,   468,   469,   470,
+     472,    89,   473,   474,   492,   475,   493,   494,   495,   496,
+     615,   497,   498,   499,   500,   501,   502,   503,   504,   155,
+     506,   508,   509,   646,   646,   510,   511,   654,   654,   631,
+     512,   513,   514,   515,    89,   517,   713,   301,   518,   162,
+     519,   520,   521,   522,   523,   525,   529,   526,   478,   527,
+     530,   163,   479,   533,   532,   480,   714,   302,   534,   535,
+     536,   537,   538,   539,   540,   541,   544,   542,   482,   303,
+     543,   545,   547,   549,   556,   557,   558,   550,   551,   555,
+     483,   559,   560,   561,   562,   563,   564,   585,   568,    30,
+     569,   570,   583,   584,   571,   572,   573,   574,   588,   597,
+     481,   586,   587,   589,   590,   591,   596,   484,   598,   599,
+     601,   602,   485,   603,   604,   486,   605,   606,   607,   608,
+     609,   610,   611,   612,   613,   614,   616,   617,   622,   618,
+     629,   630,   662,   788,   666,   670,   674,   692,   723,   725,
+     729,   745,   733,   735,   746,   747,   748,   749,   757,   791,
+     756,   760,   759,   762,   763,   765,   766,   773,   772,   774,
+     775,   776,   777,   778,   779,   794,   808,   793,   797,   796,
+     803,   804,   799,   805,   806,   810,   812,   813,   852,   807,
+     853,   809,   811,   854,   845,   846,   856,   857,   911,   847,
+     862,   887,   848,   849,   850,   881,   882,   888,   883,   884,
+     885,   893,   897,   900,   905,   894,   895,   907,   929,   898,
+     909,   930,   906,   910,   931,   934,   646,   179,   565,   178,
+     654,   632,   246,   445,   935,   265,   822,   180,   821,   266,
+     600,   181,   826,   634,   182,   282,   823,   476,   267,   197,
+     824,   471,   260,   825,   936,   278,   937,   939,   834,   713,
+     268,   198,   661,   814,   261,   841,   205,   279,   844,   220,
+     835,   843,   531,   851,   866,   816,   815,   505,   867,   714,
+     840,   195,   904,   818,   524,   817,   210,   820,   200,   222,
+     833,   819,   516,   201,   868,   859,   202,   836,   211,   528,
+     858,   223,   837,   724,   861,   838,   869,   860,   507,   721,
+     855,   633,   908,   548,   875,   546,   927,   938,   206,     0,
+       0,   221,     0,     0,     0,     0,     0,     0,   227,     0,
+       0,     0,     0,   228,     0,     0,   229,     0,     0,     0,
+       0,     0,   892,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   822,     0,   821,     0,     0,     0,   826,     0,     0,
+       0,   823,     0,     0,     0,   824,   866,     0,   825,     0,
+     867,     0,     0,   834,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   835,   868,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   869,     0,
+       0,     0,     0,     0,     0,   833,     0,     0,     0,     0,
+       0,     0,   836,     0,     0,     0,     0,   837,     0,     0,
+     838
   };
 
   const short int
   Dhcp4Parser::yycheck_[] =
   {
-      62,    70,    64,    65,    66,    67,    70,    69,    70,    71,
-      72,    68,   555,    65,     7,    65,    65,     5,    65,     7,
-      10,     9,    64,    65,    66,    67,     3,    69,    70,    70,
-      72,     8,    15,   753,    60,    65,    66,    67,     0,     7,
-       7,   753,   753,   753,    64,    65,    66,    67,     7,    69,
-      70,     7,    72,    21,    22,    23,    24,     3,    65,     7,
-      67,   147,     8,     7,    65,     7,    67,     7,    65,     7,
-      67,     7,    89,    90,    42,    43,    44,    89,    90,    47,
-      48,    49,     7,    51,     3,    78,    12,    13,    27,     8,
-      16,     7,     7,    19,    62,     6,    64,    65,    66,    67,
-      68,    69,    70,    71,    14,    15,    21,    22,    23,    24,
-      78,    79,     3,    52,     3,    54,    55,     8,    86,    58,
-      59,    60,    72,    73,    74,    64,    65,    42,    43,    44,
-     147,    46,    50,   123,   117,     3,    51,    52,    64,    65,
-       8,     4,   132,   133,   134,   865,    22,    23,    24,    64,
-      65,     8,    67,   865,   865,   865,    71,   147,     3,   147,
-     148,   149,   150,    78,   119,   120,   121,   122,    17,    18,
-       3,    86,    11,     6,    50,    51,    52,     3,    52,   147,
-       6,    20,    21,    22,    23,    24,    25,    26,    64,    65,
-      64,    65,     4,     3,     8,   150,     6,    80,    81,    82,
-      83,    77,    85,    42,    43,    44,    45,    46,   147,     4,
-     753,    50,    51,     4,   126,   758,    51,   129,   130,   131,
-       3,   147,    61,     6,     4,    64,    65,     4,    63,    64,
-      65,     4,   147,     3,     3,     3,    75,    76,     8,     8,
-       8,     4,     4,    52,    53,    54,    55,    56,    57,    88,
-       4,   125,    91,   127,   128,    64,    65,     3,     3,    98,
-      99,     4,     8,   102,   326,     3,    64,    65,     4,    27,
-       8,   147,     4,   147,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    92,    93,    94,    95,    96,    97,
-     316,   317,   361,     3,    52,     3,     3,   359,     8,   361,
-       8,     8,   100,   101,   361,     3,    64,    65,   147,     3,
-       8,     8,   147,   375,     8,     3,   378,   359,     4,   361,
-       8,     8,   865,   375,     3,   375,   375,   389,   375,     8,
-       3,   361,     4,   375,     4,   404,   378,   399,   147,   359,
-     404,   361,   404,     8,     3,   375,     3,   389,   378,   147,
-       4,     8,   148,     4,   361,   375,     4,   399,   378,   389,
-     361,   423,   404,   404,   361,     4,     4,     4,   375,   389,
-      22,    23,    24,     4,   375,     3,   147,     4,   375,   399,
-       8,   423,   389,     4,   404,     3,     3,   148,   389,   147,
-       8,     8,   389,    28,    29,    30,    31,    64,    65,    51,
-       4,     4,     4,   423,   430,   431,   432,     4,   150,   150,
-       4,     4,    64,    65,     4,     4,     4,   148,   148,     4,
-       4,     4,     4,     4,    76,   451,     4,     4,    80,    81,
-      82,    83,    84,    85,     4,    87,   103,   104,   105,   106,
+      66,    69,    68,    69,    70,    71,    15,    73,    74,    75,
+      76,    69,    74,    72,    64,    69,     0,   569,    69,    10,
+     764,    74,    68,    69,    70,    71,   764,    73,    74,     3,
+      76,   764,     6,    74,    68,    69,    70,    71,   764,    73,
+      74,     5,    76,     7,     7,     9,    89,    90,    52,    53,
+      54,    55,    56,    57,     7,    69,    70,    71,     3,     7,
+      64,    65,    69,     8,    71,    51,     3,    69,     7,    71,
+      69,     8,    71,    21,    22,    23,    24,    63,    64,    65,
+       3,    89,    90,     6,    12,    13,     7,     3,    16,     7,
+       7,    19,     8,     3,    42,    43,    44,     3,     8,    47,
+      48,    49,     8,    51,    21,    22,    23,    24,   117,    28,
+      29,    30,    31,     7,    62,    78,    64,    65,    66,    67,
+      68,    69,    70,    71,     7,    42,    43,    44,     3,    46,
+      78,    79,   123,     8,    51,    52,    64,    65,    86,     7,
+     148,   132,   133,   134,   148,   889,     3,    64,    65,     6,
+      67,   889,    17,    18,    71,   126,   889,   148,   129,   130,
+     131,    78,   148,   889,     3,    27,     7,     6,   148,    86,
+      32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
+      14,    15,    64,    65,   148,   149,   150,   151,     3,     7,
+      52,     7,    50,     8,    11,     7,    80,    81,    82,    83,
+     148,    85,     7,    20,    21,    22,    23,    24,    25,    26,
+     124,     3,   764,    22,    23,    24,     8,   769,   100,   101,
+     148,   119,   120,   121,   122,    42,    43,    44,    45,    46,
+       6,   148,     3,    50,    51,    22,    23,    24,     4,    52,
+       3,    50,    51,    52,    61,     8,     8,    64,    65,     3,
+       3,    64,    65,   151,     8,    64,    65,     3,    75,    76,
+       3,     8,     8,     4,    51,     8,   148,     3,    77,   335,
+       4,    88,     8,     4,    91,   325,   326,    64,    65,     3,
+       3,    98,    99,     3,     8,   102,   148,     3,     8,    76,
+       4,     4,     8,    80,    81,    82,    83,    84,    85,     4,
+      87,     3,   368,     4,   370,     3,     8,     4,   370,     8,
+       8,   370,   125,     4,   127,   128,   384,     4,   384,     4,
+       3,   387,   368,     3,   370,     8,   384,     8,     8,     4,
+     384,   148,   398,   384,   368,   148,   370,   889,   384,   148,
+       3,   387,   408,     3,     3,     8,     4,   413,     8,     4,
+     384,   413,   398,   387,     4,     8,   370,    72,    73,    74,
+     413,   148,   408,   370,   398,     3,   432,   413,   370,     4,
+     384,   370,   413,   387,   408,     4,     4,   384,     4,   413,
+       4,     4,   384,    27,   398,   384,   432,    64,    65,     4,
+     148,   398,   442,   443,   444,     4,   398,     4,   432,   398,
+      92,    93,    94,    95,    96,    97,     4,     4,    52,     4,
+      54,    55,     4,   463,    58,    59,    60,     4,   151,   151,
+      64,    65,     4,     4,     4,     4,   103,   104,   105,   106,
      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,     4,     4,   148,     4,     4,     4,     4,     4,
-     150,     4,     4,     4,     4,     4,   545,   546,     4,   541,
-     147,     4,   148,   545,   546,     4,   150,     4,     4,     4,
-       4,     4,   518,     4,     4,   147,   558,   559,     4,   541,
-       4,   570,     4,   545,   546,     4,     4,     4,   570,   535,
-       4,     4,   148,   570,     4,     4,   558,   559,   150,     4,
-     150,   541,     4,     4,   150,   545,   546,   150,   570,     4,
-       4,     4,   148,   148,   148,     4,     4,   150,   150,   559,
-     570,   150,     4,     4,     4,     8,   147,   147,     7,     7,
-     570,     7,   147,     7,     7,     5,     5,     5,     5,     3,
-       5,     7,     5,   570,     5,     7,     4,     7,     7,   570,
-       5,   147,   147,   570,   147,     5,   147,     5,   147,   147,
-     147,     7,   147,   147,   147,   147,   147,   147,   147,   147,
-     147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
-     118,   147,   124,     7,     7,     7,     7,     7,     7,     7,
-      87,     4,     4,     4,     4,     4,     3,   496,     6,     3,
-       6,     6,     3,     6,     3,     3,     6,     4,     4,     4,
-       4,     4,     4,     4,     3,   147,     6,     3,   147,     6,
-       8,     4,     4,     4,     4,   148,     4,     4,   148,   150,
-       4,     4,     4,   148,   150,     6,   148,   148,     3,     5,
-     148,   148,   148,     4,   148,     8,     8,   147,   147,   147,
-       8,   147,   741,     7,     4,   147,   147,   147,     4,   741,
-     147,   750,   744,   147,   753,   747,   750,     4,   750,     5,
-     147,   753,   744,   148,   744,   744,     7,   744,   760,   741,
-       4,   753,   744,   753,   753,   747,   753,     4,   750,   750,
-       4,   753,   774,     4,   744,   148,   150,   148,   147,   781,
-     326,   741,   784,   753,   744,   450,   541,   747,   353,   536,
-     750,   741,   774,   753,   756,   359,   407,   744,   762,   781,
-     546,   760,   784,   744,   769,   744,   753,   744,   746,   755,
-     865,   781,   753,   375,   784,   749,   753,   399,   747,   750,
-     752,   781,   783,   404,   784,   781,   570,   378,   786,   784,
-     389,   774,   559,   423,   727,   880,   898,   784,   910,   927,
-      -1,    -1,    -1,   784,    -1,    -1,    -1,   784,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,
-      -1,    -1,    -1,   865,    -1,    -1,    -1,    -1,    -1,    -1,
-     879,    -1,    -1,   865,   840,   865,   865,   879,   865,    -1,
-      -1,    -1,    -1,   865,    -1,    -1,    -1,    -1,    -1,   898,
-      -1,    -1,    -1,    -1,    -1,   865,   898,   879,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   898,    -1,   865,   879,
-      -1,    -1,    -1,    -1,   865,    -1,    -1,    -1,   865,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   898
+     145,   146,   147,   149,     4,   149,   149,     4,     4,   149,
+       4,     4,     4,     4,     4,     4,     4,   149,     4,     4,
+       4,   148,     4,     4,     4,   151,     4,     4,     4,     4,
+     530,     4,     4,   149,   151,     4,     4,     4,     4,   555,
+       4,     4,     4,   559,   560,     4,     4,   559,   560,   549,
+       4,     4,     4,     4,   148,     4,   572,   573,     4,   555,
+     149,     4,     4,     4,   151,     4,     4,   151,   584,   151,
+       4,   555,   584,     4,   151,   584,   572,   573,     4,   149,
+       4,   149,   149,     4,     4,   151,     4,   151,   584,   573,
+     151,     4,     4,     4,   148,   148,   148,     7,     7,     7,
+     584,     7,     7,     5,     5,     5,     5,   148,     5,     7,
+       5,     5,     8,     3,     7,     7,     7,     5,     5,     5,
+     584,   148,   148,   148,   148,   148,   148,   584,     7,   148,
+     148,   148,   584,   148,   148,   584,   148,   148,   148,   148,
+     148,   148,   148,   148,   148,   148,   148,   148,   118,   148,
+     148,     5,     7,   148,     7,     7,     7,     7,     4,     7,
+       7,     4,    87,     7,     4,     4,     4,     4,     3,   148,
+       6,     3,     6,     6,     3,     6,     3,     3,     6,     4,
+       4,     4,     4,     4,     4,     3,   151,     6,     3,     6,
+       4,     4,     8,     4,     4,   151,     4,     4,     4,   149,
+       4,   149,   149,     4,   149,   149,     6,     3,     7,   149,
+       4,     8,   149,   149,   149,   148,   148,     8,   148,   148,
+     148,   148,     8,     4,     4,   148,   148,     4,     4,   148,
+       5,     4,   149,   148,     4,     4,   752,   755,   462,   755,
+     752,   550,   758,   335,   151,   761,   764,   755,   764,   761,
+     508,   755,   764,   555,   755,   771,   764,   368,   761,   755,
+     764,   362,   758,   764,   149,   761,   149,   148,   764,   785,
+     761,   755,   560,   752,   758,   767,   792,   761,   773,   795,
+     764,   771,   416,   780,   800,   757,   755,   384,   800,   785,
+     766,   755,   889,   760,   408,   758,   792,   763,   755,   795,
+     764,   761,   398,   755,   800,   794,   755,   764,   792,   413,
+     792,   795,   764,   584,   797,   764,   800,   795,   387,   573,
+     785,   551,   902,   435,   801,   432,   915,   932,   792,    -1,
+      -1,   795,    -1,    -1,    -1,    -1,    -1,    -1,   795,    -1,
+      -1,    -1,    -1,   795,    -1,    -1,   795,    -1,    -1,    -1,
+      -1,    -1,   852,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   889,    -1,   889,    -1,    -1,    -1,   889,    -1,    -1,
+      -1,   889,    -1,    -1,    -1,   889,   902,    -1,   889,    -1,
+     902,    -1,    -1,   889,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   889,   902,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   902,    -1,
+      -1,    -1,    -1,    -1,    -1,   889,    -1,    -1,    -1,    -1,
+      -1,    -1,   889,    -1,    -1,    -1,    -1,   889,    -1,    -1,
+     889
   };
 
   const unsigned short int
   Dhcp4Parser::yystos_[] =
   {
        0,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   152,   153,   154,   155,   156,   157,   158,
-     159,   160,   161,   162,   163,   164,     0,     5,     7,     9,
-     147,   148,   149,   150,   165,   166,   167,   172,     7,   181,
-       7,   187,     7,   201,     7,   277,     7,   358,     7,   374,
-       7,   310,     7,   316,     7,   340,     7,   253,     7,   429,
-     173,   168,   182,   188,   202,   278,   359,   375,   311,   317,
-     341,   254,   430,   165,   174,   175,   147,   170,   171,    10,
-     123,   132,   133,   134,   147,   180,   183,   184,   185,   456,
-     458,   460,   462,    11,    20,    21,    22,    23,    24,    25,
-      26,    42,    43,    44,    45,    46,    50,    51,    61,    64,
-      65,    75,    76,    88,    91,    98,    99,   102,   180,   189,
-     190,   191,   192,   193,   194,   195,   196,   197,   212,   214,
-     238,   247,   261,   271,   300,   308,   334,   364,   366,   379,
-     381,   383,   405,   415,   416,   427,    12,    13,    16,    19,
-     180,   199,   200,   203,   205,   208,   211,   364,   366,     7,
-      47,    48,    49,    62,    66,    67,    68,    69,    70,    71,
-      78,    79,    86,   180,   191,   192,   193,   196,   279,   280,
-     281,   283,   285,   287,   289,   291,   293,   295,   298,   299,
-     334,   352,   364,   366,   368,   379,   381,   383,   401,    63,
-     180,   334,   360,   361,   362,   364,   366,    76,    80,    81,
-      82,    83,    84,    85,    87,   180,   334,   364,   366,   376,
-     377,   378,   379,   381,   383,   385,   387,   389,   391,   393,
-     395,   397,   399,   308,    27,    52,    54,    55,    58,    59,
-      60,   180,   228,   318,   319,   320,   321,   322,   323,   324,
-     326,   328,   330,   331,   333,   364,   366,    53,    56,    57,
-     180,   228,   322,   328,   342,   343,   344,   345,   346,   348,
-     349,   350,   351,   364,   366,    89,    90,   180,   255,   256,
-     257,   259,   103,   104,   105,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   115,   116,   180,   364,   366,   431,
-     432,   433,   434,   436,   438,   439,   441,   442,   443,   446,
-     448,   449,   450,   451,   454,     6,     3,     4,     8,     3,
-     186,   463,   457,   459,   461,     4,     3,     8,   198,     4,
-       4,   380,   382,   384,   213,   215,     4,     4,     4,     4,
-     272,   309,   335,   301,   365,   367,   239,   406,   248,   262,
-       4,   417,   428,     3,     8,   204,   206,   209,     4,     3,
-       8,   408,   284,   286,   288,   353,   282,   290,   292,     4,
-       4,   296,   294,   369,   402,     3,     8,   363,     3,     8,
-     400,   388,   390,   394,   392,   398,   396,   386,     8,     3,
-       8,   325,   229,     4,   329,   327,   332,     4,     8,     3,
-     347,     4,     4,     8,     3,   258,   260,     3,     8,     4,
-     435,   437,     4,   440,     4,     4,   444,   447,     4,     4,
-       4,   452,   455,     3,     8,   165,   165,   147,     4,     4,
-       4,     4,     4,   184,     4,   150,   150,     4,     4,     4,
-       4,     4,   148,   148,   148,   148,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,   148,     4,     4,   190,
-       4,     4,     4,   150,   200,    77,   180,   228,   308,   334,
-     364,   366,   379,   381,   383,   409,   410,   411,   412,   413,
-       4,     4,     4,     4,     4,     4,     4,   148,   150,     4,
-       4,     4,     4,   280,     4,   361,     4,     4,     4,     4,
-       4,     4,     4,     4,   378,     4,     4,   148,     4,     4,
-       4,   150,   320,     4,   150,   150,   344,     4,     4,   256,
-     150,     4,     4,   148,     4,   148,   148,     4,     4,   150,
-     150,   150,     4,     4,   432,     4,     7,     7,   165,   165,
-     165,     7,   147,   147,   147,     7,     7,     5,     5,     5,
-       5,   167,   169,   165,     5,     5,     5,     7,     7,     7,
-       5,   176,    14,    15,   207,    17,    18,   210,   414,     8,
-       3,   147,   147,   147,     5,   147,   147,   147,    72,    73,
-      74,   297,   147,     5,     7,   147,   176,   147,   147,   147,
-     147,   147,   147,   147,   147,   147,   147,   147,   147,   147,
-     147,   165,   147,   147,   147,    15,   117,   445,   118,   119,
-     120,   121,   122,   150,   453,   147,   165,   189,   124,   464,
-     465,   466,   199,    27,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,   180,   216,   217,   218,   221,   223,
-     225,   227,   228,   230,   231,   232,   233,   234,   236,   364,
-     366,   216,     7,   273,   274,   275,     7,   312,   313,   314,
-       7,   336,   337,   338,     7,   302,   303,   304,    80,    81,
-      82,    83,    85,   240,   241,   242,   243,   244,   245,   246,
-     293,   407,     7,   249,   250,   251,    92,    93,    94,    95,
-      96,    97,   263,   264,   265,   266,   267,   268,   269,   270,
-      65,   100,   101,   180,   364,   418,   419,   420,   422,   424,
-     425,   431,   177,     4,   411,     7,   354,   355,   356,     7,
-     370,   371,   372,    87,   403,     8,   467,     3,     8,     8,
-     219,   222,   224,   226,     4,     4,     4,     4,     4,   235,
-     237,     3,     8,     8,   276,     6,     3,   315,     6,     3,
-     339,     6,     3,   305,     6,     3,     3,     6,     3,     6,
-     252,     6,     3,     4,     4,     4,     4,     4,     4,     3,
-       8,   426,   421,   423,     3,     8,     8,   147,   178,   179,
-     147,   357,     6,     3,   373,     6,     3,   404,     8,     4,
-     465,     4,     4,     4,     4,   148,   150,   148,   150,   148,
-       4,     4,   217,   279,   275,   318,   314,   342,   338,   180,
-     191,   192,   193,   196,   228,   271,   289,   293,   295,   306,
-     307,   334,   364,   366,   379,   381,   383,   401,   304,   241,
-     293,   255,   251,   148,   148,   148,   148,   148,   148,   264,
-       4,     4,     4,   419,     6,     3,   360,   356,   376,   372,
-       4,     5,    28,    29,    30,    31,   220,   147,   147,   147,
-     147,   147,     8,     8,     8,     3,     8,     8,   165,   147,
-     147,   147,     8,     8,   147,     7,   468,   469,   307,   470,
-       3,     6,   125,   127,   128,   180,   228,   364,   366,   471,
-     472,   473,   474,   476,   469,   477,     4,   475,     3,     8,
-       4,   148,     4,   472,     5,   147,     7,   478,   479,   480,
-       3,     6,   126,   129,   130,   131,   481,   482,   483,   485,
-     486,   487,   479,   484,     4,     4,     4,     3,     8,     4,
-     150,   148,   148,   482,   147
+     144,   145,   146,   147,   153,   154,   155,   156,   157,   158,
+     159,   160,   161,   162,   163,   164,   165,   166,     0,     5,
+       7,     9,   148,   149,   150,   151,   167,   168,   169,   174,
+       7,   183,     7,   189,     7,   203,     7,   279,     7,   360,
+       7,   376,     7,   312,     7,   318,     7,   342,     7,   255,
+       7,   431,     7,   466,   175,   170,   184,   190,   204,   280,
+     361,   377,   313,   319,   343,   256,   432,   467,   167,   176,
+     177,   148,   172,   173,    10,   123,   132,   133,   134,   148,
+     182,   185,   186,   187,   458,   460,   462,   464,    11,    20,
+      21,    22,    23,    24,    25,    26,    42,    43,    44,    45,
+      46,    50,    51,    61,    64,    65,    75,    76,    88,    91,
+      98,    99,   102,   182,   191,   192,   193,   194,   195,   196,
+     197,   198,   199,   214,   216,   240,   249,   263,   273,   302,
+     310,   336,   366,   368,   381,   383,   385,   407,   417,   418,
+     429,    12,    13,    16,    19,   182,   201,   202,   205,   207,
+     210,   213,   366,   368,     7,    47,    48,    49,    62,    66,
+      67,    68,    69,    70,    71,    78,    79,    86,   182,   193,
+     194,   195,   198,   281,   282,   283,   285,   287,   289,   291,
+     293,   295,   297,   300,   301,   336,   354,   366,   368,   370,
+     381,   383,   385,   403,    63,   182,   336,   362,   363,   364,
+     366,   368,    76,    80,    81,    82,    83,    84,    85,    87,
+     182,   336,   366,   368,   378,   379,   380,   381,   383,   385,
+     387,   389,   391,   393,   395,   397,   399,   401,   310,    27,
+      52,    54,    55,    58,    59,    60,   182,   230,   320,   321,
+     322,   323,   324,   325,   326,   328,   330,   332,   333,   335,
+     366,   368,    53,    56,    57,   182,   230,   324,   330,   344,
+     345,   346,   347,   348,   350,   351,   352,   353,   366,   368,
+      89,    90,   182,   257,   258,   259,   261,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     116,   182,   366,   368,   433,   434,   435,   436,   438,   440,
+     441,   443,   444,   445,   448,   450,   451,   452,   453,   456,
+     124,   468,   469,   470,     6,     3,     4,     8,     3,   188,
+     465,   459,   461,   463,     4,     3,     8,   200,     4,     4,
+     382,   384,   386,   215,   217,     4,     4,     4,     4,   274,
+     311,   337,   303,   367,   369,   241,   408,   250,   264,     4,
+     419,   430,     3,     8,   206,   208,   211,     4,     3,     8,
+     410,   286,   288,   290,   355,   284,   292,   294,     4,     4,
+     298,   296,   371,   404,     3,     8,   365,     3,     8,   402,
+     390,   392,   396,   394,   400,   398,   388,     8,     3,     8,
+     327,   231,     4,   331,   329,   334,     4,     8,     3,   349,
+       4,     4,     8,     3,   260,   262,     3,     8,     4,   437,
+     439,     4,   442,     4,     4,   446,   449,     4,     4,     4,
+     454,   457,     3,     8,   471,     3,     8,   167,   167,   148,
+       4,     4,     4,     4,     4,   186,     4,   151,   151,     4,
+       4,     4,     4,     4,   149,   149,   149,   149,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,   149,     4,
+       4,   192,     4,     4,     4,   151,   202,    77,   182,   230,
+     310,   336,   366,   368,   381,   383,   385,   411,   412,   413,
+     414,   415,     4,     4,     4,     4,     4,     4,     4,   149,
+     151,     4,     4,     4,     4,   282,     4,   363,     4,     4,
+       4,     4,     4,     4,     4,     4,   380,     4,     4,   149,
+       4,     4,     4,   151,   322,     4,   151,   151,   346,     4,
+       4,   258,   151,     4,     4,   149,     4,   149,   149,     4,
+       4,   151,   151,   151,     4,     4,   434,     4,   469,     4,
+       7,     7,   167,   167,   167,     7,   148,   148,   148,     7,
+       7,     5,     5,     5,     5,   169,   171,   167,     5,     5,
+       5,     7,     7,     7,     5,   178,    14,    15,   209,    17,
+      18,   212,   416,     8,     3,   148,   148,   148,     5,   148,
+     148,   148,    72,    73,    74,   299,   148,     5,     7,   148,
+     178,   148,   148,   148,   148,   148,   148,   148,   148,   148,
+     148,   148,   148,   148,   148,   167,   148,   148,   148,    15,
+     117,   447,   118,   119,   120,   121,   122,   151,   455,   148,
+       5,   167,   191,   468,   201,    27,    32,    33,    34,    35,
+      36,    37,    38,    39,    40,    41,   182,   218,   219,   220,
+     223,   225,   227,   229,   230,   232,   233,   234,   235,   236,
+     238,   218,     7,   275,   276,   277,     7,   314,   315,   316,
+       7,   338,   339,   340,     7,   304,   305,   306,    80,    81,
+      82,    83,    85,   242,   243,   244,   245,   246,   247,   248,
+     295,   409,     7,   251,   252,   253,    92,    93,    94,    95,
+      96,    97,   265,   266,   267,   268,   269,   270,   271,   272,
+      65,   100,   101,   182,   366,   420,   421,   422,   424,   426,
+     427,   433,   179,     4,   413,     7,   356,   357,   358,     7,
+     372,   373,   374,    87,   405,     7,   472,   473,     8,     8,
+       8,   221,   224,   226,   228,     4,     4,     4,     4,     4,
+     237,   239,     3,     8,     8,   278,     6,     3,   317,     6,
+       3,   341,     6,     3,   307,     6,     3,     3,     6,     3,
+       6,   254,     6,     3,     4,     4,     4,     4,     4,     4,
+       3,     8,   428,   423,   425,     3,     8,     8,   148,   180,
+     181,   148,   359,     6,     3,   375,     6,     3,   406,     8,
+     474,     3,     6,     4,     4,     4,     4,   149,   151,   149,
+     151,   149,     4,     4,   219,   281,   277,   320,   316,   344,
+     340,   182,   193,   194,   195,   198,   230,   273,   291,   295,
+     297,   308,   309,   336,   366,   368,   381,   383,   385,   403,
+     306,   243,   295,   257,   253,   149,   149,   149,   149,   149,
+     149,   266,     4,     4,     4,   421,     6,     3,   362,   358,
+     378,   374,     4,   125,   127,   128,   182,   230,   366,   368,
+     475,   476,   477,   478,   480,   473,    28,    29,    30,    31,
+     222,   148,   148,   148,   148,   148,     8,     8,     8,     3,
+       8,     8,   167,   148,   148,   148,     8,     8,   148,   481,
+       4,   479,     3,     8,   309,     4,   149,     4,   476,     5,
+     148,     7,   482,   483,   484,     3,     6,   126,   129,   130,
+     131,   485,   486,   487,   489,   490,   491,   483,   488,     4,
+       4,     4,     3,     8,     4,   151,   149,   149,   486,   148
   };
 
   const unsigned short int
   Dhcp4Parser::yyr1_[] =
   {
-       0,   151,   153,   152,   154,   152,   155,   152,   156,   152,
-     157,   152,   158,   152,   159,   152,   160,   152,   161,   152,
-     162,   152,   163,   152,   164,   152,   165,   165,   165,   165,
-     165,   165,   165,   166,   168,   167,   169,   170,   170,   171,
-     171,   173,   172,   174,   174,   175,   175,   177,   176,   178,
-     178,   179,   179,   180,   182,   181,   183,   183,   184,   184,
-     184,   184,   184,   184,   186,   185,   188,   187,   189,   189,
-     190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
-     190,   190,   190,   190,   190,   190,   190,   190,   190,   190,
-     190,   190,   190,   190,   190,   190,   191,   192,   193,   194,
-     195,   196,   198,   197,   199,   199,   200,   200,   200,   200,
-     200,   200,   200,   202,   201,   204,   203,   206,   205,   207,
-     207,   209,   208,   210,   210,   211,   213,   212,   215,   214,
-     216,   216,   217,   217,   217,   217,   217,   217,   217,   217,
-     217,   217,   217,   217,   217,   217,   217,   219,   218,   220,
-     220,   220,   220,   222,   221,   224,   223,   226,   225,   227,
-     229,   228,   230,   231,   232,   233,   235,   234,   237,   236,
-     239,   238,   240,   240,   241,   241,   241,   241,   241,   242,
-     243,   244,   245,   246,   248,   247,   249,   249,   250,   250,
-     252,   251,   254,   253,   255,   255,   255,   256,   256,   258,
-     257,   260,   259,   262,   261,   263,   263,   264,   264,   264,
-     264,   264,   264,   265,   266,   267,   268,   269,   270,   272,
-     271,   273,   273,   274,   274,   276,   275,   278,   277,   279,
-     279,   280,   280,   280,   280,   280,   280,   280,   280,   280,
-     280,   280,   280,   280,   280,   280,   280,   280,   280,   280,
-     280,   280,   280,   280,   280,   282,   281,   284,   283,   286,
-     285,   288,   287,   290,   289,   292,   291,   294,   293,   296,
-     295,   297,   297,   297,   298,   299,   301,   300,   302,   302,
-     303,   303,   305,   304,   306,   306,   307,   307,   307,   307,
-     307,   307,   307,   307,   307,   307,   307,   307,   307,   307,
-     307,   307,   307,   309,   308,   311,   310,   312,   312,   313,
-     313,   315,   314,   317,   316,   318,   318,   319,   319,   320,
-     320,   320,   320,   320,   320,   320,   320,   320,   320,   321,
-     322,   323,   325,   324,   327,   326,   329,   328,   330,   332,
-     331,   333,   335,   334,   336,   336,   337,   337,   339,   338,
-     341,   340,   342,   342,   343,   343,   344,   344,   344,   344,
-     344,   344,   344,   344,   344,   345,   347,   346,   348,   349,
-     350,   351,   353,   352,   354,   354,   355,   355,   357,   356,
-     359,   358,   360,   360,   361,   361,   361,   361,   361,   363,
-     362,   365,   364,   367,   366,   369,   368,   370,   370,   371,
-     371,   373,   372,   375,   374,   376,   376,   377,   377,   378,
-     378,   378,   378,   378,   378,   378,   378,   378,   378,   378,
-     378,   378,   378,   378,   380,   379,   382,   381,   384,   383,
-     386,   385,   388,   387,   390,   389,   392,   391,   394,   393,
-     396,   395,   398,   397,   400,   399,   402,   401,   404,   403,
-     406,   405,   407,   407,   408,   293,   409,   409,   410,   410,
-     411,   411,   411,   411,   411,   411,   411,   411,   411,   411,
-     412,   414,   413,   415,   417,   416,   418,   418,   419,   419,
-     419,   419,   419,   421,   420,   423,   422,   424,   426,   425,
-     428,   427,   430,   429,   431,   431,   432,   432,   432,   432,
-     432,   432,   432,   432,   432,   432,   432,   432,   432,   432,
-     432,   432,   432,   433,   435,   434,   437,   436,   438,   440,
-     439,   441,   442,   444,   443,   445,   445,   447,   446,   448,
-     449,   450,   452,   451,   453,   453,   453,   453,   453,   455,
-     454,   457,   456,   459,   458,   461,   460,   463,   462,   464,
-     464,   465,   467,   466,   468,   468,   470,   469,   471,   471,
-     472,   472,   472,   472,   472,   472,   472,   473,   475,   474,
-     477,   476,   478,   478,   480,   479,   481,   481,   482,   482,
-     482,   482,   484,   483,   485,   486,   487
+       0,   152,   154,   153,   155,   153,   156,   153,   157,   153,
+     158,   153,   159,   153,   160,   153,   161,   153,   162,   153,
+     163,   153,   164,   153,   165,   153,   166,   153,   167,   167,
+     167,   167,   167,   167,   167,   168,   170,   169,   171,   172,
+     172,   173,   173,   175,   174,   176,   176,   177,   177,   179,
+     178,   180,   180,   181,   181,   182,   184,   183,   185,   185,
+     186,   186,   186,   186,   186,   186,   188,   187,   190,   189,
+     191,   191,   192,   192,   192,   192,   192,   192,   192,   192,
+     192,   192,   192,   192,   192,   192,   192,   192,   192,   192,
+     192,   192,   192,   192,   192,   192,   192,   192,   193,   194,
+     195,   196,   197,   198,   200,   199,   201,   201,   202,   202,
+     202,   202,   202,   202,   202,   204,   203,   206,   205,   208,
+     207,   209,   209,   211,   210,   212,   212,   213,   215,   214,
+     217,   216,   218,   218,   219,   219,   219,   219,   219,   219,
+     219,   219,   219,   219,   219,   219,   219,   221,   220,   222,
+     222,   222,   222,   224,   223,   226,   225,   228,   227,   229,
+     231,   230,   232,   233,   234,   235,   237,   236,   239,   238,
+     241,   240,   242,   242,   243,   243,   243,   243,   243,   244,
+     245,   246,   247,   248,   250,   249,   251,   251,   252,   252,
+     254,   253,   256,   255,   257,   257,   257,   258,   258,   260,
+     259,   262,   261,   264,   263,   265,   265,   266,   266,   266,
+     266,   266,   266,   267,   268,   269,   270,   271,   272,   274,
+     273,   275,   275,   276,   276,   278,   277,   280,   279,   281,
+     281,   282,   282,   282,   282,   282,   282,   282,   282,   282,
+     282,   282,   282,   282,   282,   282,   282,   282,   282,   282,
+     282,   282,   282,   282,   282,   284,   283,   286,   285,   288,
+     287,   290,   289,   292,   291,   294,   293,   296,   295,   298,
+     297,   299,   299,   299,   300,   301,   303,   302,   304,   304,
+     305,   305,   307,   306,   308,   308,   309,   309,   309,   309,
+     309,   309,   309,   309,   309,   309,   309,   309,   309,   309,
+     309,   309,   309,   311,   310,   313,   312,   314,   314,   315,
+     315,   317,   316,   319,   318,   320,   320,   321,   321,   322,
+     322,   322,   322,   322,   322,   322,   322,   322,   322,   323,
+     324,   325,   327,   326,   329,   328,   331,   330,   332,   334,
+     333,   335,   337,   336,   338,   338,   339,   339,   341,   340,
+     343,   342,   344,   344,   345,   345,   346,   346,   346,   346,
+     346,   346,   346,   346,   346,   347,   349,   348,   350,   351,
+     352,   353,   355,   354,   356,   356,   357,   357,   359,   358,
+     361,   360,   362,   362,   363,   363,   363,   363,   363,   365,
+     364,   367,   366,   369,   368,   371,   370,   372,   372,   373,
+     373,   375,   374,   377,   376,   378,   378,   379,   379,   380,
+     380,   380,   380,   380,   380,   380,   380,   380,   380,   380,
+     380,   380,   380,   380,   382,   381,   384,   383,   386,   385,
+     388,   387,   390,   389,   392,   391,   394,   393,   396,   395,
+     398,   397,   400,   399,   402,   401,   404,   403,   406,   405,
+     408,   407,   409,   409,   410,   295,   411,   411,   412,   412,
+     413,   413,   413,   413,   413,   413,   413,   413,   413,   413,
+     414,   416,   415,   417,   419,   418,   420,   420,   421,   421,
+     421,   421,   421,   423,   422,   425,   424,   426,   428,   427,
+     430,   429,   432,   431,   433,   433,   434,   434,   434,   434,
+     434,   434,   434,   434,   434,   434,   434,   434,   434,   434,
+     434,   434,   434,   435,   437,   436,   439,   438,   440,   442,
+     441,   443,   444,   446,   445,   447,   447,   449,   448,   450,
+     451,   452,   454,   453,   455,   455,   455,   455,   455,   457,
+     456,   459,   458,   461,   460,   463,   462,   465,   464,   467,
+     466,   468,   468,   469,   471,   470,   472,   472,   474,   473,
+     475,   475,   476,   476,   476,   476,   476,   476,   476,   477,
+     479,   478,   481,   480,   482,   482,   484,   483,   485,   485,
+     486,   486,   486,   486,   488,   487,   489,   490,   491
   };
 
   const unsigned char
@@ -4156,18 +4184,18 @@ namespace isc { namespace dhcp {
   {
        0,     2,     0,     3,     0,     3,     0,     3,     0,     3,
        0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
-       0,     3,     0,     3,     0,     3,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     4,     1,     0,     1,     3,
-       5,     0,     4,     0,     1,     1,     3,     0,     4,     0,
-       1,     1,     3,     2,     0,     4,     1,     3,     1,     1,
-       1,     1,     1,     1,     0,     6,     0,     4,     1,     3,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     3,     3,     3,     3,
-       3,     3,     0,     6,     1,     3,     1,     1,     1,     1,
-       1,     1,     1,     0,     4,     0,     4,     0,     4,     1,
-       1,     0,     4,     1,     1,     3,     0,     6,     0,     6,
+       0,     3,     0,     3,     0,     3,     0,     3,     1,     1,
+       1,     1,     1,     1,     1,     1,     0,     4,     1,     0,
+       1,     3,     5,     0,     4,     0,     1,     1,     3,     0,
+       4,     0,     1,     1,     3,     2,     0,     4,     1,     3,
+       1,     1,     1,     1,     1,     1,     0,     6,     0,     4,
        1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     3,     3,
+       3,     3,     3,     3,     0,     6,     1,     3,     1,     1,
+       1,     1,     1,     1,     1,     0,     4,     0,     4,     0,
+       4,     1,     1,     0,     4,     1,     1,     3,     0,     6,
+       0,     6,     1,     3,     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,     0,     4,     0,     4,
@@ -4208,11 +4236,11 @@ namespace isc { namespace dhcp {
        1,     1,     1,     3,     0,     4,     0,     4,     3,     0,
        4,     3,     3,     0,     4,     1,     1,     0,     4,     3,
        3,     3,     0,     4,     1,     1,     1,     1,     1,     0,
-       4,     0,     4,     0,     4,     0,     4,     0,     6,     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,     4,     0,     4,     0,     4,     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
   };
 
 
@@ -4263,109 +4291,109 @@ namespace isc { namespace dhcp {
   "\"DhcpDdns\"", "\"Control-agent\"", "TOPLEVEL_JSON", "TOPLEVEL_DHCP4",
   "SUB_DHCP4", "SUB_INTERFACES4", "SUB_SUBNET4", "SUB_POOL4",
   "SUB_RESERVATION", "SUB_OPTION_DEFS", "SUB_OPTION_DEF",
-  "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS",
+  "SUB_OPTION_DATA", "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "SUB_LOGGING",
   "\"constant string\"", "\"integer\"", "\"floating point\"",
   "\"boolean\"", "$accept", "start", "$@1", "$@2", "$@3", "$@4", "$@5",
-  "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "value", "sub_json",
-  "map2", "$@13", "map_value", "map_content", "not_empty_map",
-  "list_generic", "$@14", "list_content", "not_empty_list", "list_strings",
-  "$@15", "list_strings_content", "not_empty_list_strings",
-  "unknown_map_entry", "syntax_map", "$@16", "global_objects",
-  "global_object", "dhcp4_object", "$@17", "sub_dhcp4", "$@18",
+  "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "value",
+  "sub_json", "map2", "$@14", "map_value", "map_content", "not_empty_map",
+  "list_generic", "$@15", "list_content", "not_empty_list", "list_strings",
+  "$@16", "list_strings_content", "not_empty_list_strings",
+  "unknown_map_entry", "syntax_map", "$@17", "global_objects",
+  "global_object", "dhcp4_object", "$@18", "sub_dhcp4", "$@19",
   "global_params", "global_param", "valid_lifetime", "renew_timer",
   "rebind_timer", "decline_probation_period", "echo_client_id",
-  "match_client_id", "interfaces_config", "$@19",
+  "match_client_id", "interfaces_config", "$@20",
   "interfaces_config_params", "interfaces_config_param", "sub_interfaces4",
-  "$@20", "interfaces_list", "$@21", "dhcp_socket_type", "$@22",
-  "socket_type", "outbound_interface", "$@23", "outbound_interface_value",
-  "re_detect", "lease_database", "$@24", "hosts_database", "$@25",
-  "database_map_params", "database_map_param", "database_type", "$@26",
-  "db_type", "user", "$@27", "password", "$@28", "host", "$@29", "port",
-  "name", "$@30", "persist", "lfc_interval", "readonly", "connect_timeout",
-  "contact_points", "$@31", "keyspace", "$@32",
-  "host_reservation_identifiers", "$@33",
+  "$@21", "interfaces_list", "$@22", "dhcp_socket_type", "$@23",
+  "socket_type", "outbound_interface", "$@24", "outbound_interface_value",
+  "re_detect", "lease_database", "$@25", "hosts_database", "$@26",
+  "database_map_params", "database_map_param", "database_type", "$@27",
+  "db_type", "user", "$@28", "password", "$@29", "host", "$@30", "port",
+  "name", "$@31", "persist", "lfc_interval", "readonly", "connect_timeout",
+  "contact_points", "$@32", "keyspace", "$@33",
+  "host_reservation_identifiers", "$@34",
   "host_reservation_identifiers_list", "host_reservation_identifier",
   "duid_id", "hw_address_id", "circuit_id", "client_id", "flex_id",
-  "hooks_libraries", "$@34", "hooks_libraries_list",
-  "not_empty_hooks_libraries_list", "hooks_library", "$@35",
-  "sub_hooks_library", "$@36", "hooks_params", "hooks_param", "library",
-  "$@37", "parameters", "$@38", "expired_leases_processing", "$@39",
+  "hooks_libraries", "$@35", "hooks_libraries_list",
+  "not_empty_hooks_libraries_list", "hooks_library", "$@36",
+  "sub_hooks_library", "$@37", "hooks_params", "hooks_param", "library",
+  "$@38", "parameters", "$@39", "expired_leases_processing", "$@40",
   "expired_leases_params", "expired_leases_param",
   "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time",
   "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time",
-  "unwarned_reclaim_cycles", "subnet4_list", "$@40",
-  "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@41",
-  "sub_subnet4", "$@42", "subnet4_params", "subnet4_param", "subnet",
-  "$@43", "subnet_4o6_interface", "$@44", "subnet_4o6_interface_id",
-  "$@45", "subnet_4o6_subnet", "$@46", "interface", "$@47", "interface_id",
-  "$@48", "client_class", "$@49", "reservation_mode", "$@50", "hr_mode",
-  "id", "rapid_commit", "shared_networks", "$@51",
+  "unwarned_reclaim_cycles", "subnet4_list", "$@41",
+  "subnet4_list_content", "not_empty_subnet4_list", "subnet4", "$@42",
+  "sub_subnet4", "$@43", "subnet4_params", "subnet4_param", "subnet",
+  "$@44", "subnet_4o6_interface", "$@45", "subnet_4o6_interface_id",
+  "$@46", "subnet_4o6_subnet", "$@47", "interface", "$@48", "interface_id",
+  "$@49", "client_class", "$@50", "reservation_mode", "$@51", "hr_mode",
+  "id", "rapid_commit", "shared_networks", "$@52",
   "shared_networks_content", "shared_networks_list", "shared_network",
-  "$@52", "shared_network_params", "shared_network_param",
-  "option_def_list", "$@53", "sub_option_def_list", "$@54",
+  "$@53", "shared_network_params", "shared_network_param",
+  "option_def_list", "$@54", "sub_option_def_list", "$@55",
   "option_def_list_content", "not_empty_option_def_list",
-  "option_def_entry", "$@55", "sub_option_def", "$@56",
+  "option_def_entry", "$@56", "sub_option_def", "$@57",
   "option_def_params", "not_empty_option_def_params", "option_def_param",
-  "option_def_name", "code", "option_def_code", "option_def_type", "$@57",
-  "option_def_record_types", "$@58", "space", "$@59", "option_def_space",
-  "option_def_encapsulate", "$@60", "option_def_array", "option_data_list",
-  "$@61", "option_data_list_content", "not_empty_option_data_list",
-  "option_data_entry", "$@62", "sub_option_data", "$@63",
+  "option_def_name", "code", "option_def_code", "option_def_type", "$@58",
+  "option_def_record_types", "$@59", "space", "$@60", "option_def_space",
+  "option_def_encapsulate", "$@61", "option_def_array", "option_data_list",
+  "$@62", "option_data_list_content", "not_empty_option_data_list",
+  "option_data_entry", "$@63", "sub_option_data", "$@64",
   "option_data_params", "not_empty_option_data_params",
-  "option_data_param", "option_data_name", "option_data_data", "$@64",
+  "option_data_param", "option_data_name", "option_data_data", "$@65",
   "option_data_code", "option_data_space", "option_data_csv_format",
-  "option_data_always_send", "pools_list", "$@65", "pools_list_content",
-  "not_empty_pools_list", "pool_list_entry", "$@66", "sub_pool4", "$@67",
-  "pool_params", "pool_param", "pool_entry", "$@68", "user_context",
-  "$@69", "comment", "$@70", "reservations", "$@71", "reservations_list",
-  "not_empty_reservations_list", "reservation", "$@72", "sub_reservation",
-  "$@73", "reservation_params", "not_empty_reservation_params",
-  "reservation_param", "next_server", "$@74", "server_hostname", "$@75",
-  "boot_file_name", "$@76", "ip_address", "$@77", "duid", "$@78",
-  "hw_address", "$@79", "client_id_value", "$@80", "circuit_id_value",
-  "$@81", "flex_id_value", "$@82", "hostname", "$@83",
-  "reservation_client_classes", "$@84", "relay", "$@85", "relay_map",
-  "$@86", "client_classes", "$@87", "client_classes_list", "$@88",
+  "option_data_always_send", "pools_list", "$@66", "pools_list_content",
+  "not_empty_pools_list", "pool_list_entry", "$@67", "sub_pool4", "$@68",
+  "pool_params", "pool_param", "pool_entry", "$@69", "user_context",
+  "$@70", "comment", "$@71", "reservations", "$@72", "reservations_list",
+  "not_empty_reservations_list", "reservation", "$@73", "sub_reservation",
+  "$@74", "reservation_params", "not_empty_reservation_params",
+  "reservation_param", "next_server", "$@75", "server_hostname", "$@76",
+  "boot_file_name", "$@77", "ip_address", "$@78", "duid", "$@79",
+  "hw_address", "$@80", "client_id_value", "$@81", "circuit_id_value",
+  "$@82", "flex_id_value", "$@83", "hostname", "$@84",
+  "reservation_client_classes", "$@85", "relay", "$@86", "relay_map",
+  "$@87", "client_classes", "$@88", "client_classes_list", "$@89",
   "client_class_params", "not_empty_client_class_params",
-  "client_class_param", "client_class_name", "client_class_test", "$@89",
-  "dhcp4o6_port", "control_socket", "$@90", "control_socket_params",
-  "control_socket_param", "control_socket_type", "$@91",
-  "control_socket_name", "$@92", "control_socket_user_context",
-  "control_socket_comment", "$@93", "dhcp_ddns", "$@94", "sub_dhcp_ddns",
-  "$@95", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates",
-  "qualifying_suffix", "$@96", "server_ip", "$@97", "server_port",
-  "sender_ip", "$@98", "sender_port", "max_queue_size", "ncr_protocol",
-  "$@99", "ncr_protocol_value", "ncr_format", "$@100",
+  "client_class_param", "client_class_name", "client_class_test", "$@90",
+  "dhcp4o6_port", "control_socket", "$@91", "control_socket_params",
+  "control_socket_param", "control_socket_type", "$@92",
+  "control_socket_name", "$@93", "control_socket_user_context",
+  "control_socket_comment", "$@94", "dhcp_ddns", "$@95", "sub_dhcp_ddns",
+  "$@96", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates",
+  "qualifying_suffix", "$@97", "server_ip", "$@98", "server_port",
+  "sender_ip", "$@99", "sender_port", "max_queue_size", "ncr_protocol",
+  "$@100", "ncr_protocol_value", "ncr_format", "$@101",
   "always_include_fqdn", "override_no_update", "override_client_update",
-  "replace_client_name", "$@101", "replace_client_name_value",
-  "generated_prefix", "$@102", "dhcp6_json_object", "$@103",
-  "dhcpddns_json_object", "$@104", "control_agent_json_object", "$@105",
-  "logging_object", "$@106", "logging_params", "logging_param", "loggers",
-  "$@107", "loggers_entries", "logger_entry", "$@108", "logger_params",
-  "logger_param", "debuglevel", "severity", "$@109", "output_options_list",
-  "$@110", "output_options_list_content", "output_entry", "$@111",
-  "output_params_list", "output_params", "output", "$@112", "flush",
-  "maxsize", "maxver", YY_NULLPTR
+  "replace_client_name", "$@102", "replace_client_name_value",
+  "generated_prefix", "$@103", "dhcp6_json_object", "$@104",
+  "dhcpddns_json_object", "$@105", "control_agent_json_object", "$@106",
+  "logging_object", "$@107", "sub_logging", "$@108", "logging_params",
+  "logging_param", "loggers", "$@109", "loggers_entries", "logger_entry",
+  "$@110", "logger_params", "logger_param", "debuglevel", "severity",
+  "$@111", "output_options_list", "$@112", "output_options_list_content",
+  "output_entry", "$@113", "output_params_list", "output_params", "output",
+  "$@114", "flush", "maxsize", "maxver", YY_NULLPTR
   };
 
 #if PARSER4_DEBUG
   const unsigned short int
   Dhcp4Parser::yyrline_[] =
   {
-       0,   234,   234,   234,   235,   235,   236,   236,   237,   237,
-     238,   238,   239,   239,   240,   240,   241,   241,   242,   242,
-     243,   243,   244,   244,   245,   245,   253,   254,   255,   256,
-     257,   258,   259,   262,   267,   267,   278,   281,   282,   285,
-     289,   296,   296,   303,   304,   307,   311,   318,   318,   325,
-     326,   329,   333,   344,   354,   354,   370,   371,   375,   376,
-     377,   378,   379,   380,   383,   383,   398,   398,   407,   408,
-     413,   414,   415,   416,   417,   418,   419,   420,   421,   422,
+       0,   235,   235,   235,   236,   236,   237,   237,   238,   238,
+     239,   239,   240,   240,   241,   241,   242,   242,   243,   243,
+     244,   244,   245,   245,   246,   246,   247,   247,   255,   256,
+     257,   258,   259,   260,   261,   264,   269,   269,   280,   283,
+     284,   287,   291,   298,   298,   305,   306,   309,   313,   320,
+     320,   327,   328,   331,   335,   346,   356,   356,   372,   373,
+     377,   378,   379,   380,   381,   382,   385,   385,   400,   400,
+     409,   410,   415,   416,   417,   418,   419,   420,   421,   422,
      423,   424,   425,   426,   427,   428,   429,   430,   431,   432,
-     433,   434,   435,   436,   437,   438,   441,   446,   451,   456,
-     461,   466,   472,   472,   483,   484,   487,   488,   489,   490,
-     491,   492,   493,   496,   496,   505,   505,   515,   515,   522,
-     523,   526,   526,   533,   535,   539,   545,   545,   557,   557,
-     569,   570,   573,   574,   575,   576,   577,   578,   579,   580,
+     433,   434,   435,   436,   437,   438,   439,   440,   443,   448,
+     453,   458,   463,   468,   474,   474,   485,   486,   489,   490,
+     491,   492,   493,   494,   495,   498,   498,   507,   507,   517,
+     517,   524,   525,   528,   528,   535,   537,   541,   547,   547,
+     559,   559,   571,   572,   575,   576,   577,   578,   579,   580,
      581,   582,   583,   584,   585,   586,   587,   590,   590,   597,
      598,   599,   600,   603,   603,   611,   611,   619,   619,   627,
      632,   632,   640,   645,   650,   655,   660,   660,   668,   668,
@@ -4406,11 +4434,11 @@ namespace isc { namespace dhcp {
     1708,  1709,  1710,  1713,  1718,  1718,  1726,  1726,  1734,  1739,
     1739,  1747,  1752,  1757,  1757,  1765,  1766,  1769,  1769,  1777,
     1782,  1787,  1792,  1792,  1800,  1803,  1806,  1809,  1812,  1818,
-    1818,  1828,  1828,  1835,  1835,  1842,  1842,  1854,  1854,  1867,
-    1868,  1872,  1876,  1876,  1888,  1889,  1893,  1893,  1901,  1902,
-    1905,  1906,  1907,  1908,  1909,  1910,  1911,  1914,  1919,  1919,
-    1927,  1927,  1937,  1938,  1941,  1941,  1949,  1950,  1953,  1954,
-    1955,  1956,  1959,  1959,  1967,  1972,  1977
+    1818,  1828,  1828,  1835,  1835,  1842,  1842,  1854,  1854,  1864,
+    1864,  1875,  1876,  1880,  1884,  1884,  1896,  1897,  1901,  1901,
+    1909,  1910,  1913,  1914,  1915,  1916,  1917,  1918,  1919,  1922,
+    1927,  1927,  1935,  1935,  1945,  1946,  1949,  1949,  1957,  1958,
+    1961,  1962,  1963,  1964,  1967,  1967,  1975,  1980,  1985
   };
 
   // Print the state stack on the debug stream.
@@ -4445,8 +4473,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:1167
 } } // isc::dhcp
-#line 4449 "dhcp4_parser.cc" // lalr1.cc:1167
-#line 1982 "dhcp4_parser.yy" // lalr1.cc:1168
+#line 4477 "dhcp4_parser.cc" // lalr1.cc:1167
+#line 1990 "dhcp4_parser.yy" // lalr1.cc:1168
 
 
 void
index acf35b8edfe47047824dddffc99f6f221f64ceea..b5e145ad472f20c8407428ae0853b29ec7ec4a08 100644 (file)
@@ -492,10 +492,11 @@ namespace isc { namespace dhcp {
         TOKEN_SUB_OPTION_DATA = 399,
         TOKEN_SUB_HOOKS_LIBRARY = 400,
         TOKEN_SUB_DHCP_DDNS = 401,
-        TOKEN_STRING = 402,
-        TOKEN_INTEGER = 403,
-        TOKEN_FLOAT = 404,
-        TOKEN_BOOLEAN = 405
+        TOKEN_SUB_LOGGING = 402,
+        TOKEN_STRING = 403,
+        TOKEN_INTEGER = 404,
+        TOKEN_FLOAT = 405,
+        TOKEN_BOOLEAN = 406
       };
     };
 
@@ -1190,6 +1191,10 @@ namespace isc { namespace dhcp {
     symbol_type
     make_SUB_DHCP_DDNS (const location_type& l);
 
+    static inline
+    symbol_type
+    make_SUB_LOGGING (const location_type& l);
+
     static inline
     symbol_type
     make_STRING (const std::string& v, const location_type& l);
@@ -1411,12 +1416,12 @@ namespace isc { namespace dhcp {
     enum
     {
       yyeof_ = 0,
-      yylast_ = 878,     ///< Last index in yytable_.
-      yynnts_ = 337,  ///< Number of nonterminal symbols.
-      yyfinal_ = 26, ///< Termination state number.
+      yylast_ = 890,     ///< Last index in yytable_.
+      yynnts_ = 340,  ///< Number of nonterminal symbols.
+      yyfinal_ = 28, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 151  ///< Number of tokens.
+      yyntokens_ = 152  ///< Number of tokens.
     };
 
 
@@ -1473,9 +1478,9 @@ namespace isc { namespace dhcp {
      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,   147,   148,   149,   150
+     145,   146,   147,   148,   149,   150,   151
     };
-    const unsigned int user_token_number_max_ = 405;
+    const unsigned int user_token_number_max_ = 406;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int>(t) <= yyeof_)
@@ -1508,30 +1513,30 @@ namespace isc { namespace dhcp {
   {
       switch (other.type_get ())
     {
-      case 165: // value
-      case 169: // map_value
-      case 207: // socket_type
-      case 210: // outbound_interface_value
-      case 220: // db_type
-      case 297: // hr_mode
-      case 445: // ncr_protocol_value
-      case 453: // replace_client_name_value
+      case 167: // value
+      case 171: // map_value
+      case 209: // socket_type
+      case 212: // outbound_interface_value
+      case 222: // db_type
+      case 299: // hr_mode
+      case 447: // ncr_protocol_value
+      case 455: // replace_client_name_value
         value.copy< ElementPtr > (other.value);
         break;
 
-      case 150: // "boolean"
+      case 151: // "boolean"
         value.copy< bool > (other.value);
         break;
 
-      case 149: // "floating point"
+      case 150: // "floating point"
         value.copy< double > (other.value);
         break;
 
-      case 148: // "integer"
+      case 149: // "integer"
         value.copy< int64_t > (other.value);
         break;
 
-      case 147: // "constant string"
+      case 148: // "constant string"
         value.copy< std::string > (other.value);
         break;
 
@@ -1552,30 +1557,30 @@ namespace isc { namespace dhcp {
     (void) v;
       switch (this->type_get ())
     {
-      case 165: // value
-      case 169: // map_value
-      case 207: // socket_type
-      case 210: // outbound_interface_value
-      case 220: // db_type
-      case 297: // hr_mode
-      case 445: // ncr_protocol_value
-      case 453: // replace_client_name_value
+      case 167: // value
+      case 171: // map_value
+      case 209: // socket_type
+      case 212: // outbound_interface_value
+      case 222: // db_type
+      case 299: // hr_mode
+      case 447: // ncr_protocol_value
+      case 455: // replace_client_name_value
         value.copy< ElementPtr > (v);
         break;
 
-      case 150: // "boolean"
+      case 151: // "boolean"
         value.copy< bool > (v);
         break;
 
-      case 149: // "floating point"
+      case 150: // "floating point"
         value.copy< double > (v);
         break;
 
-      case 148: // "integer"
+      case 149: // "integer"
         value.copy< int64_t > (v);
         break;
 
-      case 147: // "constant string"
+      case 148: // "constant string"
         value.copy< std::string > (v);
         break;
 
@@ -1655,30 +1660,30 @@ namespace isc { namespace dhcp {
     // Type destructor.
     switch (yytype)
     {
-      case 165: // value
-      case 169: // map_value
-      case 207: // socket_type
-      case 210: // outbound_interface_value
-      case 220: // db_type
-      case 297: // hr_mode
-      case 445: // ncr_protocol_value
-      case 453: // replace_client_name_value
+      case 167: // value
+      case 171: // map_value
+      case 209: // socket_type
+      case 212: // outbound_interface_value
+      case 222: // db_type
+      case 299: // hr_mode
+      case 447: // ncr_protocol_value
+      case 455: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 150: // "boolean"
+      case 151: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 149: // "floating point"
+      case 150: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 148: // "integer"
+      case 149: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 147: // "constant string"
+      case 148: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -1705,30 +1710,30 @@ namespace isc { namespace dhcp {
     super_type::move(s);
       switch (this->type_get ())
     {
-      case 165: // value
-      case 169: // map_value
-      case 207: // socket_type
-      case 210: // outbound_interface_value
-      case 220: // db_type
-      case 297: // hr_mode
-      case 445: // ncr_protocol_value
-      case 453: // replace_client_name_value
+      case 167: // value
+      case 171: // map_value
+      case 209: // socket_type
+      case 212: // outbound_interface_value
+      case 222: // db_type
+      case 299: // hr_mode
+      case 447: // ncr_protocol_value
+      case 455: // replace_client_name_value
         value.move< ElementPtr > (s.value);
         break;
 
-      case 150: // "boolean"
+      case 151: // "boolean"
         value.move< bool > (s.value);
         break;
 
-      case 149: // "floating point"
+      case 150: // "floating point"
         value.move< double > (s.value);
         break;
 
-      case 148: // "integer"
+      case 149: // "integer"
         value.move< int64_t > (s.value);
         break;
 
-      case 147: // "constant string"
+      case 148: // "constant string"
         value.move< std::string > (s.value);
         break;
 
@@ -1802,7 +1807,7 @@ namespace isc { namespace dhcp {
      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
-     405
+     405,   406
     };
     return static_cast<token_type> (yytoken_number_[type]);
   }
@@ -2677,6 +2682,12 @@ namespace isc { namespace dhcp {
     return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l);
   }
 
+  Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_SUB_LOGGING (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_SUB_LOGGING, l);
+  }
+
   Dhcp4Parser::symbol_type
   Dhcp4Parser::make_STRING (const std::string& v, const location_type& l)
   {
@@ -2704,7 +2715,7 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:377
 } } // isc::dhcp
-#line 2708 "dhcp4_parser.h" // lalr1.cc:377
+#line 2719 "dhcp4_parser.h" // lalr1.cc:377
 
 
 
index 5241f9b2df14d86ae09d99a247a55c44b67f54d7..cc02c9ea5c52e3740fc009296272b25c1182e319 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712021537
+// Generated 201712031245
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Locations for Bison parsers in C++
index 309506a23b04819dd56a352e07f1986a0a59dd27..f504817da05af43453df7987c196236cc76f475f 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712021537
+// Generated 201712031245
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Positions for Bison parsers in C++
index 50f35a6df488577a8071a96511d009f5a767d5b6..272644b88902e6e1eb325c7d722e278a7c91551a 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712021537
+// Generated 201712031245
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Stack handling for Bison parsers in C++
index d70b7ba4d382e4428f3a8ee581a14a5dbc558517..8b88f46c2a1593e8a8e994f9db5ae76993473993 100644 (file)
@@ -1570,24 +1570,24 @@ int yy_flex_debug = 1;
 
 static const flex_int16_t yy_rule_linenum[162] =
     {   0,
-      145,  147,  149,  154,  155,  160,  161,  162,  174,  177,
-      182,  189,  198,  207,  216,  225,  234,  243,  252,  261,
-      270,  279,  288,  297,  306,  315,  325,  335,  345,  355,
-      365,  375,  385,  395,  405,  414,  423,  432,  441,  450,
-      459,  468,  480,  489,  498,  507,  516,  526,  536,  546,
-      556,  567,  577,  587,  597,  607,  618,  629,  640,  651,
-      660,  670,  679,  688,  704,  720,  729,  738,  747,  756,
-      765,  774,  783,  792,  801,  810,  834,  858,  867,  877,
-      887,  896,  906,  916,  925,  934,  943,  952,  962,  971,
-      980,  989,  998, 1007, 1016, 1025, 1034, 1043, 1053, 1062,
-
-     1071, 1081, 1092, 1102, 1111, 1120, 1129, 1140, 1150, 1159,
-     1169, 1179, 1188, 1197, 1206, 1215, 1225, 1234, 1244, 1253,
-     1262, 1271, 1280, 1289, 1298, 1307, 1316, 1325, 1334, 1343,
-     1352, 1361, 1370, 1379, 1388, 1397, 1406, 1415, 1424, 1433,
-     1442, 1451, 1460, 1470, 1568, 1573, 1578, 1583, 1584, 1585,
-     1586, 1587, 1588, 1590, 1608, 1621, 1626, 1630, 1632, 1634,
-     1636
+      147,  149,  151,  156,  157,  162,  163,  164,  176,  179,
+      184,  191,  200,  209,  218,  227,  236,  245,  254,  263,
+      272,  281,  290,  299,  308,  317,  327,  337,  347,  357,
+      367,  377,  387,  397,  407,  416,  425,  434,  443,  452,
+      461,  470,  482,  491,  500,  509,  518,  528,  538,  548,
+      558,  569,  579,  589,  599,  609,  620,  631,  642,  653,
+      662,  672,  681,  690,  706,  722,  731,  740,  749,  758,
+      767,  776,  785,  794,  803,  812,  834,  856,  865,  875,
+      885,  894,  904,  914,  923,  932,  941,  950,  960,  969,
+      978,  987,  996, 1005, 1014, 1023, 1032, 1041, 1051, 1060,
+
+     1069, 1079, 1090, 1100, 1109, 1118, 1127, 1138, 1148, 1157,
+     1167, 1177, 1186, 1195, 1204, 1213, 1223, 1232, 1242, 1251,
+     1260, 1269, 1278, 1287, 1296, 1305, 1314, 1323, 1332, 1341,
+     1350, 1359, 1368, 1377, 1386, 1395, 1404, 1413, 1422, 1431,
+     1440, 1449, 1458, 1468, 1566, 1571, 1576, 1581, 1582, 1583,
+     1584, 1585, 1586, 1588, 1606, 1619, 1624, 1628, 1630, 1632,
+     1634
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1991,11 +1991,13 @@ YY_DECL
             return isc::dhcp::Dhcp6Parser::make_SUB_HOOKS_LIBRARY(driver.loc_);
         case Parser6Context::PARSER_DHCP_DDNS:
             return isc::dhcp::Dhcp6Parser::make_SUB_DHCP_DDNS(driver.loc_);
+        case Parser6Context::PARSER_LOGGING:
+            return isc::dhcp::Dhcp6Parser::make_SUB_LOGGING(driver.loc_);
         }
     }
 
 
-#line 1998 "dhcp6_lexer.cc"
+#line 2000 "dhcp6_lexer.cc"
 
        while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
                {
@@ -2073,17 +2075,17 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 145 "dhcp6_lexer.ll"
+#line 147 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 147 "dhcp6_lexer.ll"
+#line 149 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 149 "dhcp6_lexer.ll"
+#line 151 "dhcp6_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -2091,33 +2093,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 154 "dhcp6_lexer.ll"
+#line 156 "dhcp6_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 155 "dhcp6_lexer.ll"
+#line 157 "dhcp6_lexer.ll"
 ;
        YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 156 "dhcp6_lexer.ll"
+#line 158 "dhcp6_lexer.ll"
 {
     isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 160 "dhcp6_lexer.ll"
+#line 162 "dhcp6_lexer.ll"
 BEGIN(DIR_ENTER);
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 161 "dhcp6_lexer.ll"
+#line 163 "dhcp6_lexer.ll"
 BEGIN(DIR_INCLUDE);
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 162 "dhcp6_lexer.ll"
+#line 164 "dhcp6_lexer.ll"
 {
     /* Include directive. */
 
@@ -2131,19 +2133,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 171 "dhcp6_lexer.ll"
+#line 173 "dhcp6_lexer.ll"
 {
     isc_throw(Dhcp6ParseError, "Directive not closed.");
 }
        YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 174 "dhcp6_lexer.ll"
+#line 176 "dhcp6_lexer.ll"
 BEGIN(INITIAL);
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 177 "dhcp6_lexer.ll"
+#line 179 "dhcp6_lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
@@ -2152,7 +2154,7 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 182 "dhcp6_lexer.ll"
+#line 184 "dhcp6_lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
     driver.loc_.lines(yyleng);
@@ -2161,7 +2163,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 189 "dhcp6_lexer.ll"
+#line 191 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2173,7 +2175,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 198 "dhcp6_lexer.ll"
+#line 200 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2185,7 +2187,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 207 "dhcp6_lexer.ll"
+#line 209 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2197,7 +2199,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 216 "dhcp6_lexer.ll"
+#line 218 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2209,7 +2211,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 225 "dhcp6_lexer.ll"
+#line 227 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2221,7 +2223,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 234 "dhcp6_lexer.ll"
+#line 236 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2233,7 +2235,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 243 "dhcp6_lexer.ll"
+#line 245 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2245,7 +2247,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 252 "dhcp6_lexer.ll"
+#line 254 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2257,7 +2259,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 261 "dhcp6_lexer.ll"
+#line 263 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2269,7 +2271,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 270 "dhcp6_lexer.ll"
+#line 272 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2281,7 +2283,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 279 "dhcp6_lexer.ll"
+#line 281 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2293,7 +2295,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 288 "dhcp6_lexer.ll"
+#line 290 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2305,7 +2307,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 297 "dhcp6_lexer.ll"
+#line 299 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2317,7 +2319,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 306 "dhcp6_lexer.ll"
+#line 308 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP_DDNS:
@@ -2329,7 +2331,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 315 "dhcp6_lexer.ll"
+#line 317 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
@@ -2342,7 +2344,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 325 "dhcp6_lexer.ll"
+#line 327 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
@@ -2355,7 +2357,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 335 "dhcp6_lexer.ll"
+#line 337 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
@@ -2368,7 +2370,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 345 "dhcp6_lexer.ll"
+#line 347 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2381,7 +2383,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 355 "dhcp6_lexer.ll"
+#line 357 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2394,7 +2396,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 365 "dhcp6_lexer.ll"
+#line 367 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2407,7 +2409,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 375 "dhcp6_lexer.ll"
+#line 377 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2420,7 +2422,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 385 "dhcp6_lexer.ll"
+#line 387 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2433,7 +2435,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 395 "dhcp6_lexer.ll"
+#line 397 "dhcp6_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
@@ -2446,7 +2448,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 405 "dhcp6_lexer.ll"
+#line 407 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -2458,7 +2460,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 414 "dhcp6_lexer.ll"
+#line 416 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2470,7 +2472,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 423 "dhcp6_lexer.ll"
+#line 425 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
@@ -2482,7 +2484,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 432 "dhcp6_lexer.ll"
+#line 434 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
@@ -2494,7 +2496,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 441 "dhcp6_lexer.ll"
+#line 443 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2506,7 +2508,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 450 "dhcp6_lexer.ll"
+#line 452 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2518,7 +2520,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 459 "dhcp6_lexer.ll"
+#line 461 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOSTS_DATABASE:
@@ -2530,7 +2532,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 468 "dhcp6_lexer.ll"
+#line 470 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2545,7 +2547,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 480 "dhcp6_lexer.ll"
+#line 482 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2557,7 +2559,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 489 "dhcp6_lexer.ll"
+#line 491 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2569,7 +2571,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 498 "dhcp6_lexer.ll"
+#line 500 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2581,7 +2583,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 507 "dhcp6_lexer.ll"
+#line 509 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DATABASE_TYPE:
@@ -2593,7 +2595,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 516 "dhcp6_lexer.ll"
+#line 518 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2606,7 +2608,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 526 "dhcp6_lexer.ll"
+#line 528 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2619,7 +2621,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 536 "dhcp6_lexer.ll"
+#line 538 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2632,7 +2634,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 546 "dhcp6_lexer.ll"
+#line 548 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2645,7 +2647,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 556 "dhcp6_lexer.ll"
+#line 558 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2659,7 +2661,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 567 "dhcp6_lexer.ll"
+#line 569 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2672,7 +2674,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 577 "dhcp6_lexer.ll"
+#line 579 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2685,7 +2687,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 587 "dhcp6_lexer.ll"
+#line 589 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2698,7 +2700,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 597 "dhcp6_lexer.ll"
+#line 599 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2711,7 +2713,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 607 "dhcp6_lexer.ll"
+#line 609 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2725,7 +2727,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 618 "dhcp6_lexer.ll"
+#line 620 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2739,7 +2741,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 629 "dhcp6_lexer.ll"
+#line 631 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2753,7 +2755,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 640 "dhcp6_lexer.ll"
+#line 642 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2767,7 +2769,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 651 "dhcp6_lexer.ll"
+#line 653 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2779,7 +2781,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 660 "dhcp6_lexer.ll"
+#line 662 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2792,7 +2794,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 670 "dhcp6_lexer.ll"
+#line 672 "dhcp6_lexer.ll"
 {
     switch (driver.ctx_) {
     case Parser6Context::DHCP6:
@@ -2804,7 +2806,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 679 "dhcp6_lexer.ll"
+#line 681 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2816,7 +2818,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 688 "dhcp6_lexer.ll"
+#line 690 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -2835,7 +2837,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 704 "dhcp6_lexer.ll"
+#line 706 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LEASE_DATABASE:
@@ -2854,7 +2856,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 720 "dhcp6_lexer.ll"
+#line 722 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -2866,7 +2868,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 729 "dhcp6_lexer.ll"
+#line 731 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -2878,7 +2880,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 738 "dhcp6_lexer.ll"
+#line 740 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -2890,7 +2892,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 747 "dhcp6_lexer.ll"
+#line 749 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -2902,7 +2904,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 756 "dhcp6_lexer.ll"
+#line 758 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2914,7 +2916,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 765 "dhcp6_lexer.ll"
+#line 767 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2926,7 +2928,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 774 "dhcp6_lexer.ll"
+#line 776 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2938,7 +2940,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 783 "dhcp6_lexer.ll"
+#line 785 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2950,7 +2952,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 792 "dhcp6_lexer.ll"
+#line 794 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::PD_POOLS:
@@ -2962,7 +2964,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 801 "dhcp6_lexer.ll"
+#line 803 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::POOLS:
@@ -2974,13 +2976,11 @@ YY_RULE_SETUP
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 810 "dhcp6_lexer.ll"
+#line 812 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
-    case isc::dhcp::Parser6Context::LEASE_DATABASE:
-    case isc::dhcp::Parser6Context::HOSTS_DATABASE:
     case isc::dhcp::Parser6Context::SUBNET6:
     case isc::dhcp::Parser6Context::SHARED_NETWORK:
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3006,8 +3006,6 @@ YY_RULE_SETUP
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
     case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
-    case isc::dhcp::Parser6Context::LEASE_DATABASE:
-    case isc::dhcp::Parser6Context::HOSTS_DATABASE:
     case isc::dhcp::Parser6Context::SUBNET6:
     case isc::dhcp::Parser6Context::SHARED_NETWORK:
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3028,7 +3026,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 858 "dhcp6_lexer.ll"
+#line 856 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3040,7 +3038,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 867 "dhcp6_lexer.ll"
+#line 865 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3053,7 +3051,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 877 "dhcp6_lexer.ll"
+#line 875 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3066,7 +3064,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 887 "dhcp6_lexer.ll"
+#line 885 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3078,7 +3076,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 896 "dhcp6_lexer.ll"
+#line 894 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3091,7 +3089,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 906 "dhcp6_lexer.ll"
+#line 904 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3104,7 +3102,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 916 "dhcp6_lexer.ll"
+#line 914 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3116,7 +3114,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 925 "dhcp6_lexer.ll"
+#line 923 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3128,7 +3126,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 934 "dhcp6_lexer.ll"
+#line 932 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3140,7 +3138,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 943 "dhcp6_lexer.ll"
+#line 941 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3152,7 +3150,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 952 "dhcp6_lexer.ll"
+#line 950 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3165,7 +3163,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 962 "dhcp6_lexer.ll"
+#line 960 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3177,7 +3175,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 971 "dhcp6_lexer.ll"
+#line 969 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3189,7 +3187,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 980 "dhcp6_lexer.ll"
+#line 978 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3201,7 +3199,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 989 "dhcp6_lexer.ll"
+#line 987 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3213,7 +3211,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 998 "dhcp6_lexer.ll"
+#line 996 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGING:
@@ -3225,7 +3223,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 1007 "dhcp6_lexer.ll"
+#line 1005 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3237,7 +3235,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 1016 "dhcp6_lexer.ll"
+#line 1014 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3249,7 +3247,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 1025 "dhcp6_lexer.ll"
+#line 1023 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3261,7 +3259,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1034 "dhcp6_lexer.ll"
+#line 1032 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3273,7 +3271,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1043 "dhcp6_lexer.ll"
+#line 1041 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3285,7 +3283,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 1053 "dhcp6_lexer.ll"
+#line 1051 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3297,7 +3295,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1062 "dhcp6_lexer.ll"
+#line 1060 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3309,7 +3307,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1071 "dhcp6_lexer.ll"
+#line 1069 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3322,7 +3320,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 1081 "dhcp6_lexer.ll"
+#line 1079 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3336,7 +3334,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1092 "dhcp6_lexer.ll"
+#line 1090 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -3349,7 +3347,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1102 "dhcp6_lexer.ll"
+#line 1100 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3361,7 +3359,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 1111 "dhcp6_lexer.ll"
+#line 1109 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3373,7 +3371,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 1120 "dhcp6_lexer.ll"
+#line 1118 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3385,7 +3383,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 1129 "dhcp6_lexer.ll"
+#line 1127 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -3399,7 +3397,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 1140 "dhcp6_lexer.ll"
+#line 1138 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3412,7 +3410,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 1150 "dhcp6_lexer.ll"
+#line 1148 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3424,7 +3422,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 1159 "dhcp6_lexer.ll"
+#line 1157 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3437,7 +3435,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 1169 "dhcp6_lexer.ll"
+#line 1167 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3450,7 +3448,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 1179 "dhcp6_lexer.ll"
+#line 1177 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3462,7 +3460,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 1188 "dhcp6_lexer.ll"
+#line 1186 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3474,7 +3472,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 1197 "dhcp6_lexer.ll"
+#line 1195 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3486,7 +3484,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 1206 "dhcp6_lexer.ll"
+#line 1204 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3498,7 +3496,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1215 "dhcp6_lexer.ll"
+#line 1213 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3511,7 +3509,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 1225 "dhcp6_lexer.ll"
+#line 1223 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
@@ -3523,7 +3521,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 1234 "dhcp6_lexer.ll"
+#line 1232 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3535,7 +3533,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 1244 "dhcp6_lexer.ll"
+#line 1242 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3547,7 +3545,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 1253 "dhcp6_lexer.ll"
+#line 1251 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3559,7 +3557,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 1262 "dhcp6_lexer.ll"
+#line 1260 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3571,7 +3569,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 1271 "dhcp6_lexer.ll"
+#line 1269 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3583,7 +3581,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 1280 "dhcp6_lexer.ll"
+#line 1278 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3595,7 +3593,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 1289 "dhcp6_lexer.ll"
+#line 1287 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3607,7 +3605,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 1298 "dhcp6_lexer.ll"
+#line 1296 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3619,7 +3617,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 1307 "dhcp6_lexer.ll"
+#line 1305 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3631,7 +3629,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 1316 "dhcp6_lexer.ll"
+#line 1314 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3643,7 +3641,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 1325 "dhcp6_lexer.ll"
+#line 1323 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3655,7 +3653,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 1334 "dhcp6_lexer.ll"
+#line 1332 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3667,7 +3665,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 1343 "dhcp6_lexer.ll"
+#line 1341 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3679,7 +3677,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 1352 "dhcp6_lexer.ll"
+#line 1350 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3691,7 +3689,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 1361 "dhcp6_lexer.ll"
+#line 1359 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3703,7 +3701,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 1370 "dhcp6_lexer.ll"
+#line 1368 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3715,7 +3713,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 1379 "dhcp6_lexer.ll"
+#line 1377 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3727,7 +3725,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 1388 "dhcp6_lexer.ll"
+#line 1386 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3739,7 +3737,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 1397 "dhcp6_lexer.ll"
+#line 1395 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3751,7 +3749,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 1406 "dhcp6_lexer.ll"
+#line 1404 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3763,7 +3761,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 1415 "dhcp6_lexer.ll"
+#line 1413 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -3775,7 +3773,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 1424 "dhcp6_lexer.ll"
+#line 1422 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -3787,7 +3785,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 1433 "dhcp6_lexer.ll"
+#line 1431 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3799,7 +3797,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 1442 "dhcp6_lexer.ll"
+#line 1440 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3811,7 +3809,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 1451 "dhcp6_lexer.ll"
+#line 1449 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3823,7 +3821,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 1460 "dhcp6_lexer.ll"
+#line 1458 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3835,7 +3833,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 1470 "dhcp6_lexer.ll"
+#line 1468 "dhcp6_lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -3937,7 +3935,7 @@ YY_RULE_SETUP
 case 145:
 /* rule 145 can match eol */
 YY_RULE_SETUP
-#line 1568 "dhcp6_lexer.ll"
+#line 1566 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -3946,7 +3944,7 @@ YY_RULE_SETUP
 case 146:
 /* rule 146 can match eol */
 YY_RULE_SETUP
-#line 1573 "dhcp6_lexer.ll"
+#line 1571 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -3954,7 +3952,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 1578 "dhcp6_lexer.ll"
+#line 1576 "dhcp6_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -3962,37 +3960,37 @@ YY_RULE_SETUP
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 1583 "dhcp6_lexer.ll"
+#line 1581 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 1584 "dhcp6_lexer.ll"
+#line 1582 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 1585 "dhcp6_lexer.ll"
+#line 1583 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 1586 "dhcp6_lexer.ll"
+#line 1584 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 1587 "dhcp6_lexer.ll"
+#line 1585 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 1588 "dhcp6_lexer.ll"
+#line 1586 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 1590 "dhcp6_lexer.ll"
+#line 1588 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4013,7 +4011,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 1608 "dhcp6_lexer.ll"
+#line 1606 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4029,7 +4027,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 1621 "dhcp6_lexer.ll"
+#line 1619 "dhcp6_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -4037,33 +4035,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 1626 "dhcp6_lexer.ll"
+#line 1624 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 1630 "dhcp6_lexer.ll"
+#line 1628 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 1632 "dhcp6_lexer.ll"
+#line 1630 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 1634 "dhcp6_lexer.ll"
+#line 1632 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 1636 "dhcp6_lexer.ll"
+#line 1634 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1638 "dhcp6_lexer.ll"
+#line 1636 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -4089,10 +4087,10 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 1661 "dhcp6_lexer.ll"
+#line 1659 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4095 "dhcp6_lexer.cc"
+#line 4093 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5197,7 +5195,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1661 "dhcp6_lexer.ll"
+#line 1659 "dhcp6_lexer.ll"
 
 
 using namespace isc::dhcp;
index 74a013143f697088506e608701e09d0cee64a0ae..911344debce32b4c39416a4edb9b778f03a3e60b 100644 (file)
@@ -253,29 +253,29 @@ namespace isc { namespace dhcp {
   {
       switch (that.type_get ())
     {
-      case 171: // value
-      case 175: // map_value
-      case 219: // db_type
-      case 295: // hr_mode
-      case 428: // duid_type
-      case 464: // ncr_protocol_value
-      case 472: // replace_client_name_value
+      case 173: // value
+      case 177: // map_value
+      case 221: // db_type
+      case 297: // hr_mode
+      case 430: // duid_type
+      case 466: // ncr_protocol_value
+      case 474: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
-      case 155: // "boolean"
+      case 156: // "boolean"
         value.move< bool > (that.value);
         break;
 
-      case 154: // "floating point"
+      case 155: // "floating point"
         value.move< double > (that.value);
         break;
 
-      case 153: // "integer"
+      case 154: // "integer"
         value.move< int64_t > (that.value);
         break;
 
-      case 152: // "constant string"
+      case 153: // "constant string"
         value.move< std::string > (that.value);
         break;
 
@@ -294,29 +294,29 @@ namespace isc { namespace dhcp {
     state = that.state;
       switch (that.type_get ())
     {
-      case 171: // value
-      case 175: // map_value
-      case 219: // db_type
-      case 295: // hr_mode
-      case 428: // duid_type
-      case 464: // ncr_protocol_value
-      case 472: // replace_client_name_value
+      case 173: // value
+      case 177: // map_value
+      case 221: // db_type
+      case 297: // hr_mode
+      case 430: // duid_type
+      case 466: // ncr_protocol_value
+      case 474: // replace_client_name_value
         value.copy< ElementPtr > (that.value);
         break;
 
-      case 155: // "boolean"
+      case 156: // "boolean"
         value.copy< bool > (that.value);
         break;
 
-      case 154: // "floating point"
+      case 155: // "floating point"
         value.copy< double > (that.value);
         break;
 
-      case 153: // "integer"
+      case 154: // "integer"
         value.copy< int64_t > (that.value);
         break;
 
-      case 152: // "constant string"
+      case 153: // "constant string"
         value.copy< std::string > (that.value);
         break;
 
@@ -356,79 +356,79 @@ namespace isc { namespace dhcp {
         << yysym.location << ": ";
     switch (yytype)
     {
-            case 152: // "constant string"
+            case 153: // "constant string"
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< std::string > (); }
 #line 364 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 153: // "integer"
+      case 154: // "integer"
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< int64_t > (); }
 #line 371 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 154: // "floating point"
+      case 155: // "floating point"
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< double > (); }
 #line 378 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 155: // "boolean"
+      case 156: // "boolean"
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< bool > (); }
 #line 385 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 171: // value
+      case 173: // value
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 392 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 175: // map_value
+      case 177: // map_value
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 399 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 219: // db_type
+      case 221: // db_type
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 406 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 295: // hr_mode
+      case 297: // hr_mode
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 413 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 428: // duid_type
+      case 430: // duid_type
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 420 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 464: // ncr_protocol_value
+      case 466: // ncr_protocol_value
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 427 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 472: // replace_client_name_value
+      case 474: // replace_client_name_value
 
-#line 228 "dhcp6_parser.yy" // lalr1.cc:636
+#line 229 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 434 "dhcp6_parser.cc" // lalr1.cc:636
         break;
@@ -630,29 +630,29 @@ namespace isc { namespace dhcp {
          when using variants.  */
         switch (yyr1_[yyn])
     {
-      case 171: // value
-      case 175: // map_value
-      case 219: // db_type
-      case 295: // hr_mode
-      case 428: // duid_type
-      case 464: // ncr_protocol_value
-      case 472: // replace_client_name_value
+      case 173: // value
+      case 177: // map_value
+      case 221: // db_type
+      case 297: // hr_mode
+      case 430: // duid_type
+      case 466: // ncr_protocol_value
+      case 474: // replace_client_name_value
         yylhs.value.build< ElementPtr > ();
         break;
 
-      case 155: // "boolean"
+      case 156: // "boolean"
         yylhs.value.build< bool > ();
         break;
 
-      case 154: // "floating point"
+      case 155: // "floating point"
         yylhs.value.build< double > ();
         break;
 
-      case 153: // "integer"
+      case 154: // "integer"
         yylhs.value.build< int64_t > ();
         break;
 
-      case 152: // "constant string"
+      case 153: // "constant string"
         yylhs.value.build< std::string > ();
         break;
 
@@ -674,274 +674,280 @@ namespace isc { namespace dhcp {
           switch (yyn)
             {
   case 2:
-#line 237 "dhcp6_parser.yy" // lalr1.cc:859
+#line 238 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.NO_KEYWORD; }
 #line 680 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 4:
-#line 238 "dhcp6_parser.yy" // lalr1.cc:859
+#line 239 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.CONFIG; }
 #line 686 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 6:
-#line 239 "dhcp6_parser.yy" // lalr1.cc:859
+#line 240 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.DHCP6; }
 #line 692 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 8:
-#line 240 "dhcp6_parser.yy" // lalr1.cc:859
+#line 241 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.INTERFACES_CONFIG; }
 #line 698 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 10:
-#line 241 "dhcp6_parser.yy" // lalr1.cc:859
+#line 242 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.SUBNET6; }
 #line 704 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 12:
-#line 242 "dhcp6_parser.yy" // lalr1.cc:859
+#line 243 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.POOLS; }
 #line 710 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 14:
-#line 243 "dhcp6_parser.yy" // lalr1.cc:859
+#line 244 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.PD_POOLS; }
 #line 716 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 16:
-#line 244 "dhcp6_parser.yy" // lalr1.cc:859
+#line 245 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.RESERVATIONS; }
 #line 722 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 18:
-#line 245 "dhcp6_parser.yy" // lalr1.cc:859
+#line 246 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.DHCP6; }
 #line 728 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 20:
-#line 246 "dhcp6_parser.yy" // lalr1.cc:859
+#line 247 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.OPTION_DEF; }
 #line 734 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 22:
-#line 247 "dhcp6_parser.yy" // lalr1.cc:859
+#line 248 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.OPTION_DATA; }
 #line 740 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 24:
-#line 248 "dhcp6_parser.yy" // lalr1.cc:859
+#line 249 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.HOOKS_LIBRARIES; }
 #line 746 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 26:
-#line 249 "dhcp6_parser.yy" // lalr1.cc:859
+#line 250 "dhcp6_parser.yy" // lalr1.cc:859
     { ctx.ctx_ = ctx.DHCP_DDNS; }
 #line 752 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 28:
-#line 257 "dhcp6_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
+#line 251 "dhcp6_parser.yy" // lalr1.cc:859
+    { ctx.ctx_ = ctx.LOGGING; }
 #line 758 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 29:
-#line 258 "dhcp6_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
-#line 764 "dhcp6_parser.cc" // lalr1.cc:859
-    break;
-
   case 30:
 #line 259 "dhcp6_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
-#line 770 "dhcp6_parser.cc" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); }
+#line 764 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 31:
 #line 260 "dhcp6_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
-#line 776 "dhcp6_parser.cc" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); }
+#line 770 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 32:
 #line 261 "dhcp6_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
-#line 782 "dhcp6_parser.cc" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); }
+#line 776 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 33:
 #line 262 "dhcp6_parser.yy" // lalr1.cc:859
-    { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 788 "dhcp6_parser.cc" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); }
+#line 782 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 34:
 #line 263 "dhcp6_parser.yy" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); }
+#line 788 "dhcp6_parser.cc" // lalr1.cc:859
+    break;
+
+  case 35:
+#line 264 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
 #line 794 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 35:
-#line 266 "dhcp6_parser.yy" // lalr1.cc:859
+  case 36:
+#line 265 "dhcp6_parser.yy" // lalr1.cc:859
+    { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
+#line 800 "dhcp6_parser.cc" // lalr1.cc:859
+    break;
+
+  case 37:
+#line 268 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Push back the JSON value on the stack
     ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ());
 }
-#line 803 "dhcp6_parser.cc" // lalr1.cc:859
+#line 809 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 36:
-#line 271 "dhcp6_parser.yy" // lalr1.cc:859
+  case 38:
+#line 273 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // 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 814 "dhcp6_parser.cc" // lalr1.cc:859
+#line 820 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 37:
-#line 276 "dhcp6_parser.yy" // lalr1.cc:859
+  case 39:
+#line 278 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // 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 824 "dhcp6_parser.cc" // lalr1.cc:859
+#line 830 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 38:
-#line 282 "dhcp6_parser.yy" // lalr1.cc:859
+  case 40:
+#line 284 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); }
-#line 830 "dhcp6_parser.cc" // lalr1.cc:859
+#line 836 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 41:
-#line 289 "dhcp6_parser.yy" // lalr1.cc:859
+  case 43:
+#line 291 "dhcp6_parser.yy" // lalr1.cc:859
     {
                   // map containing a single entry
                   ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ());
                   }
-#line 839 "dhcp6_parser.cc" // lalr1.cc:859
+#line 845 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 42:
-#line 293 "dhcp6_parser.yy" // lalr1.cc:859
+  case 44:
+#line 295 "dhcp6_parser.yy" // lalr1.cc:859
     {
                   // 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 849 "dhcp6_parser.cc" // lalr1.cc:859
+#line 855 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 43:
-#line 300 "dhcp6_parser.yy" // lalr1.cc:859
+  case 45:
+#line 302 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(l);
 }
-#line 858 "dhcp6_parser.cc" // lalr1.cc:859
+#line 864 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 44:
-#line 303 "dhcp6_parser.yy" // lalr1.cc:859
+  case 46:
+#line 305 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // list parsing complete. Put any sanity checking here
 }
-#line 866 "dhcp6_parser.cc" // lalr1.cc:859
+#line 872 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 47:
-#line 311 "dhcp6_parser.yy" // lalr1.cc:859
+  case 49:
+#line 313 "dhcp6_parser.yy" // lalr1.cc:859
     {
                   // List consisting of a single element.
                   ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
                   }
-#line 875 "dhcp6_parser.cc" // lalr1.cc:859
+#line 881 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 48:
-#line 315 "dhcp6_parser.yy" // lalr1.cc:859
+  case 50:
+#line 317 "dhcp6_parser.yy" // lalr1.cc:859
     {
                   // List ending with , and a value.
                   ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ());
                   }
-#line 884 "dhcp6_parser.cc" // lalr1.cc:859
+#line 890 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 49:
-#line 322 "dhcp6_parser.yy" // lalr1.cc:859
+  case 51:
+#line 324 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // List parsing about to start
 }
-#line 892 "dhcp6_parser.cc" // lalr1.cc:859
+#line 898 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 50:
-#line 324 "dhcp6_parser.yy" // lalr1.cc:859
+  case 52:
+#line 326 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // list parsing complete. Put any sanity checking here
     //ctx.stack_.pop_back();
 }
-#line 901 "dhcp6_parser.cc" // lalr1.cc:859
+#line 907 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 53:
-#line 333 "dhcp6_parser.yy" // lalr1.cc:859
+  case 55:
+#line 335 "dhcp6_parser.yy" // lalr1.cc:859
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 910 "dhcp6_parser.cc" // lalr1.cc:859
+#line 916 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 54:
-#line 337 "dhcp6_parser.yy" // lalr1.cc:859
+  case 56:
+#line 339 "dhcp6_parser.yy" // lalr1.cc:859
     {
                           ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
                           ctx.stack_.back()->add(s);
                           }
-#line 919 "dhcp6_parser.cc" // lalr1.cc:859
+#line 925 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 55:
-#line 348 "dhcp6_parser.yy" // lalr1.cc:859
+  case 57:
+#line 350 "dhcp6_parser.yy" // lalr1.cc:859
     {
     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 930 "dhcp6_parser.cc" // lalr1.cc:859
+#line 936 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 56:
-#line 358 "dhcp6_parser.yy" // lalr1.cc:859
+  case 58:
+#line 360 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // 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 941 "dhcp6_parser.cc" // lalr1.cc:859
+#line 947 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 57:
-#line 363 "dhcp6_parser.yy" // lalr1.cc:859
+  case 59:
+#line 365 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // map parsing completed. If we ever want to do any wrap up
     // (maybe some sanity checking), this would be the best place
@@ -950,11 +956,11 @@ namespace isc { namespace dhcp {
     // Dhcp6 is required
     ctx.require("Dhcp6", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 954 "dhcp6_parser.cc" // lalr1.cc:859
+#line 960 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 66:
-#line 386 "dhcp6_parser.yy" // lalr1.cc:859
+  case 68:
+#line 388 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // This code is executed when we're about to start parsing
     // the content of the map
@@ -963,194 +969,194 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP6);
 }
-#line 967 "dhcp6_parser.cc" // lalr1.cc:859
+#line 973 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 67:
-#line 393 "dhcp6_parser.yy" // lalr1.cc:859
+  case 69:
+#line 395 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // No global parameter is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 977 "dhcp6_parser.cc" // lalr1.cc:859
+#line 983 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 68:
-#line 401 "dhcp6_parser.yy" // lalr1.cc:859
+  case 70:
+#line 403 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Parse the Dhcp6 map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 987 "dhcp6_parser.cc" // lalr1.cc:859
+#line 993 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 69:
-#line 405 "dhcp6_parser.yy" // lalr1.cc:859
+  case 71:
+#line 407 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // No global parameter is required
     // parsing completed
 }
-#line 996 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1002 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 97:
-#line 443 "dhcp6_parser.yy" // lalr1.cc:859
+  case 99:
+#line 445 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("preferred-lifetime", prf);
 }
-#line 1005 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1011 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 98:
-#line 448 "dhcp6_parser.yy" // lalr1.cc:859
+  case 100:
+#line 450 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("valid-lifetime", prf);
 }
-#line 1014 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1020 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 99:
-#line 453 "dhcp6_parser.yy" // lalr1.cc:859
+  case 101:
+#line 455 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("renew-timer", prf);
 }
-#line 1023 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1029 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 100:
-#line 458 "dhcp6_parser.yy" // lalr1.cc:859
+  case 102:
+#line 460 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rebind-timer", prf);
 }
-#line 1032 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1038 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 101:
-#line 463 "dhcp6_parser.yy" // lalr1.cc:859
+  case 103:
+#line 465 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("decline-probation-period", dpp);
 }
-#line 1041 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1047 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 102:
-#line 468 "dhcp6_parser.yy" // lalr1.cc:859
+  case 104:
+#line 470 "dhcp6_parser.yy" // lalr1.cc:859
     {
     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 1052 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1058 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 103:
-#line 473 "dhcp6_parser.yy" // lalr1.cc:859
+  case 105:
+#line 475 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // No interfaces config param is required
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1062 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1068 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 104:
-#line 479 "dhcp6_parser.yy" // lalr1.cc:859
+  case 106:
+#line 481 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Parse the interfaces-config map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1072 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1078 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 105:
-#line 483 "dhcp6_parser.yy" // lalr1.cc:859
+  case 107:
+#line 485 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // No interfaces config param is required
     // parsing completed
 }
-#line 1081 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1087 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 113:
-#line 499 "dhcp6_parser.yy" // lalr1.cc:859
+  case 115:
+#line 501 "dhcp6_parser.yy" // lalr1.cc:859
     {
     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 1092 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1098 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 114:
-#line 504 "dhcp6_parser.yy" // lalr1.cc:859
+  case 116:
+#line 506 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1101 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1107 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 115:
-#line 509 "dhcp6_parser.yy" // lalr1.cc:859
+  case 117:
+#line 511 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("re-detect", b);
 }
-#line 1110 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1116 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 116:
-#line 515 "dhcp6_parser.yy" // lalr1.cc:859
+  case 118:
+#line 517 "dhcp6_parser.yy" // lalr1.cc:859
     {
     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 1121 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1127 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 117:
-#line 520 "dhcp6_parser.yy" // lalr1.cc:859
+  case 119:
+#line 522 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // 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 1132 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1138 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 118:
-#line 527 "dhcp6_parser.yy" // lalr1.cc:859
+  case 120:
+#line 529 "dhcp6_parser.yy" // lalr1.cc:859
     {
     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 1143 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1149 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 119:
-#line 532 "dhcp6_parser.yy" // lalr1.cc:859
+  case 121:
+#line 534 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // 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 1154 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1160 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 137:
@@ -1158,7 +1164,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.DATABASE_TYPE);
 }
-#line 1162 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1168 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 138:
@@ -1167,31 +1173,31 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 1171 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1177 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 139:
 #line 567 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); }
-#line 1177 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1183 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 140:
 #line 568 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); }
-#line 1183 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1189 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 141:
 #line 569 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); }
-#line 1189 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1195 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 142:
 #line 570 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); }
-#line 1195 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1201 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 143:
@@ -1199,7 +1205,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1203 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1209 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 144:
@@ -1209,7 +1215,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("user", user);
     ctx.leave();
 }
-#line 1213 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1219 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 145:
@@ -1217,7 +1223,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1221 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1227 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 146:
@@ -1227,7 +1233,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("password", pwd);
     ctx.leave();
 }
-#line 1231 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1237 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 147:
@@ -1235,7 +1241,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1239 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1245 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 148:
@@ -1245,7 +1251,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("host", h);
     ctx.leave();
 }
-#line 1249 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1255 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 149:
@@ -1254,7 +1260,7 @@ namespace isc { namespace dhcp {
     ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("port", p);
 }
-#line 1258 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1264 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 150:
@@ -1262,7 +1268,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1266 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1272 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 151:
@@ -1272,7 +1278,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("name", name);
     ctx.leave();
 }
-#line 1276 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1282 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 152:
@@ -1281,7 +1287,7 @@ namespace isc { namespace dhcp {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("persist", n);
 }
-#line 1285 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1291 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 153:
@@ -1290,7 +1296,7 @@ namespace isc { namespace dhcp {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("lfc-interval", n);
 }
-#line 1294 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1300 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 154:
@@ -1299,7 +1305,7 @@ namespace isc { namespace dhcp {
     ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("readonly", n);
 }
-#line 1303 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1309 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 155:
@@ -1308,7 +1314,7 @@ namespace isc { namespace dhcp {
     ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("connect-timeout", n);
 }
-#line 1312 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1318 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 156:
@@ -1316,7 +1322,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1320 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1326 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 157:
@@ -1326,7 +1332,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("contact-points", cp);
     ctx.leave();
 }
-#line 1330 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1336 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 158:
@@ -1334,7 +1340,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1338 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1344 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 159:
@@ -1344,7 +1350,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("keyspace", ks);
     ctx.leave();
 }
-#line 1348 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1354 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 160:
@@ -1355,7 +1361,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.MAC_SOURCES);
 }
-#line 1359 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1365 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 161:
@@ -1364,7 +1370,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1368 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1374 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 166:
@@ -1373,7 +1379,7 @@ namespace isc { namespace dhcp {
     ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1377 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1383 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 167:
@@ -1382,7 +1388,7 @@ namespace isc { namespace dhcp {
     ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(duid);
 }
-#line 1386 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1392 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 168:
@@ -1393,7 +1399,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS);
 }
-#line 1397 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1403 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 169:
@@ -1402,7 +1408,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1406 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1412 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 175:
@@ -1411,7 +1417,7 @@ namespace isc { namespace dhcp {
     ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(hwaddr);
 }
-#line 1415 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1421 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 176:
@@ -1420,7 +1426,7 @@ namespace isc { namespace dhcp {
     ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(flex_id);
 }
-#line 1424 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1430 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 177:
@@ -1431,7 +1437,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1435 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1441 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 178:
@@ -1440,7 +1446,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1444 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1450 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 179:
@@ -1451,7 +1457,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.HOOKS_LIBRARIES);
 }
-#line 1455 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1461 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 180:
@@ -1460,7 +1466,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1464 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1470 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 185:
@@ -1470,7 +1476,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1474 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1480 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 186:
@@ -1480,7 +1486,7 @@ namespace isc { namespace dhcp {
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1484 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1490 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 187:
@@ -1490,7 +1496,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1494 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1500 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 188:
@@ -1500,7 +1506,7 @@ namespace isc { namespace dhcp {
     ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1504 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1510 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 194:
@@ -1508,7 +1514,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1512 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1518 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 195:
@@ -1518,7 +1524,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("library", lib);
     ctx.leave();
 }
-#line 1522 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1528 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 196:
@@ -1526,7 +1532,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1530 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1536 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 197:
@@ -1535,7 +1541,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 1539 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1545 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 198:
@@ -1546,7 +1552,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.EXPIRED_LEASES_PROCESSING);
 }
-#line 1550 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1556 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 199:
@@ -1556,7 +1562,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1560 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1566 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 208:
@@ -1565,7 +1571,7 @@ namespace isc { namespace dhcp {
     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 1569 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1575 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 209:
@@ -1574,7 +1580,7 @@ namespace isc { namespace dhcp {
     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 1578 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1584 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 210:
@@ -1583,7 +1589,7 @@ namespace isc { namespace dhcp {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("hold-reclaimed-time", value);
 }
-#line 1587 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1593 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 211:
@@ -1592,7 +1598,7 @@ namespace isc { namespace dhcp {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-leases", value);
 }
-#line 1596 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1602 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 212:
@@ -1601,7 +1607,7 @@ namespace isc { namespace dhcp {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-reclaim-time", value);
 }
-#line 1605 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1611 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 213:
@@ -1610,7 +1616,7 @@ namespace isc { namespace dhcp {
     ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("unwarned-reclaim-cycles", value);
 }
-#line 1614 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1620 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 214:
@@ -1621,7 +1627,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SUBNET6);
 }
-#line 1625 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1631 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 215:
@@ -1630,7 +1636,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1634 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1640 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 220:
@@ -1640,7 +1646,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1644 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1650 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 221:
@@ -1666,7 +1672,7 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1670 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1676 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 222:
@@ -1676,7 +1682,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1680 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1686 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 223:
@@ -1686,7 +1692,7 @@ namespace isc { namespace dhcp {
     ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1690 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1696 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 245:
@@ -1694,7 +1700,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1698 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1704 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 246:
@@ -1704,7 +1710,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("subnet", subnet);
     ctx.leave();
 }
-#line 1708 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1714 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 247:
@@ -1712,7 +1718,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1716 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1722 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 248:
@@ -1722,7 +1728,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("interface", iface);
     ctx.leave();
 }
-#line 1726 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1732 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 249:
@@ -1730,7 +1736,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1734 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1740 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 250:
@@ -1740,7 +1746,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("interface-id", iface);
     ctx.leave();
 }
-#line 1744 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1750 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 251:
@@ -1748,7 +1754,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.CLIENT_CLASS);
 }
-#line 1752 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1758 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 252:
@@ -1758,7 +1764,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("client-class", cls);
     ctx.leave();
 }
-#line 1762 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1768 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 253:
@@ -1766,7 +1772,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.RESERVATION_MODE);
 }
-#line 1770 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1776 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 254:
@@ -1775,25 +1781,25 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 1779 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1785 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 255:
 #line 962 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); }
-#line 1785 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1791 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 256:
 #line 963 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); }
-#line 1791 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1797 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 257:
 #line 964 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); }
-#line 1797 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1803 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 258:
@@ -1802,7 +1808,7 @@ namespace isc { namespace dhcp {
     ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("id", id);
 }
-#line 1806 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1812 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 259:
@@ -1811,7 +1817,7 @@ namespace isc { namespace dhcp {
     ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("rapid-commit", rc);
 }
-#line 1815 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1821 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 260:
@@ -1822,7 +1828,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.SHARED_NETWORK);
 }
-#line 1826 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1832 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 261:
@@ -1831,7 +1837,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1835 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1841 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 266:
@@ -1841,7 +1847,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1845 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1851 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 267:
@@ -1849,7 +1855,7 @@ namespace isc { namespace dhcp {
     {
     ctx.stack_.pop_back();
 }
-#line 1853 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1859 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 286:
@@ -1860,7 +1866,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DEF);
 }
-#line 1864 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1870 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 287:
@@ -1869,7 +1875,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 1873 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1879 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 288:
@@ -1878,7 +1884,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1882 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1888 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 289:
@@ -1886,7 +1892,7 @@ namespace isc { namespace dhcp {
     {
     // parsing completed
 }
-#line 1890 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1896 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 294:
@@ -1896,7 +1902,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 1900 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1906 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 295:
@@ -1908,7 +1914,7 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 1912 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1918 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 296:
@@ -1918,7 +1924,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 1922 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1928 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 297:
@@ -1930,7 +1936,7 @@ namespace isc { namespace dhcp {
     ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 1934 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1940 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 313:
@@ -1939,7 +1945,7 @@ namespace isc { namespace dhcp {
     ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("code", code);
 }
-#line 1943 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1949 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 315:
@@ -1947,7 +1953,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1951 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1957 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 316:
@@ -1957,7 +1963,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("type", prf);
     ctx.leave();
 }
-#line 1961 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1967 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 317:
@@ -1965,7 +1971,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1969 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1975 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 318:
@@ -1975,7 +1981,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("record-types", rtypes);
     ctx.leave();
 }
-#line 1979 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1985 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 319:
@@ -1983,7 +1989,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 1987 "dhcp6_parser.cc" // lalr1.cc:859
+#line 1993 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 320:
@@ -1993,7 +1999,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("space", space);
     ctx.leave();
 }
-#line 1997 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2003 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 322:
@@ -2001,7 +2007,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2005 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2011 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 323:
@@ -2011,7 +2017,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("encapsulate", encap);
     ctx.leave();
 }
-#line 2015 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2021 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 324:
@@ -2020,7 +2026,7 @@ namespace isc { namespace dhcp {
     ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("array", array);
 }
-#line 2024 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2030 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 325:
@@ -2031,7 +2037,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.OPTION_DATA);
 }
-#line 2035 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2041 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 326:
@@ -2040,7 +2046,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2044 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2050 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 331:
@@ -2050,7 +2056,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2054 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2060 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 332:
@@ -2059,7 +2065,7 @@ namespace isc { namespace dhcp {
     /// @todo: the code or name parameters are required.
     ctx.stack_.pop_back();
 }
-#line 2063 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2069 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 333:
@@ -2069,7 +2075,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2073 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2079 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 334:
@@ -2078,7 +2084,7 @@ namespace isc { namespace dhcp {
     /// @todo: the code or name parameters are required.
     // parsing completed
 }
-#line 2082 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2088 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 349:
@@ -2086,7 +2092,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2090 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2096 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 350:
@@ -2096,7 +2102,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("data", data);
     ctx.leave();
 }
-#line 2100 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2106 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 353:
@@ -2105,7 +2111,7 @@ namespace isc { namespace dhcp {
     ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("csv-format", space);
 }
-#line 2109 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2115 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 354:
@@ -2114,7 +2120,7 @@ namespace isc { namespace dhcp {
     ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-send", persist);
 }
-#line 2118 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2124 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 355:
@@ -2125,7 +2131,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.POOLS);
 }
-#line 2129 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2135 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 356:
@@ -2134,7 +2140,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2138 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2144 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 361:
@@ -2144,7 +2150,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2148 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2154 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 362:
@@ -2154,7 +2160,7 @@ namespace isc { namespace dhcp {
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2158 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2164 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 363:
@@ -2164,7 +2170,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2168 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2174 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 364:
@@ -2173,7 +2179,7 @@ namespace isc { namespace dhcp {
     // The pool parameter is required.
     ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
 }
-#line 2177 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2183 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 372:
@@ -2181,7 +2187,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2185 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2191 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 373:
@@ -2191,7 +2197,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("pool", pool);
     ctx.leave();
 }
-#line 2195 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2201 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 374:
@@ -2199,7 +2205,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2203 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2209 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 375:
@@ -2208,7 +2214,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->combine_set("user-context", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2212 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2218 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 376:
@@ -2216,7 +2222,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2220 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2226 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 377:
@@ -2227,7 +2233,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->combine_set("user-context", e);
     ctx.leave();
 }
-#line 2231 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2237 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 378:
@@ -2238,7 +2244,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.PD_POOLS);
 }
-#line 2242 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2248 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 379:
@@ -2247,7 +2253,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2251 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2257 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 384:
@@ -2257,7 +2263,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2261 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2267 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 385:
@@ -2269,7 +2275,7 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2273 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2279 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 386:
@@ -2279,7 +2285,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2283 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2289 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 387:
@@ -2291,7 +2297,7 @@ namespace isc { namespace dhcp {
     ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2295 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2301 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 399:
@@ -2299,7 +2305,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2303 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2309 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 400:
@@ -2309,7 +2315,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("prefix", prf);
     ctx.leave();
 }
-#line 2313 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2319 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 401:
@@ -2318,7 +2324,7 @@ namespace isc { namespace dhcp {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("prefix-len", prf);
 }
-#line 2322 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2328 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 402:
@@ -2326,7 +2332,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2330 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2336 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 403:
@@ -2336,7 +2342,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("excluded-prefix", prf);
     ctx.leave();
 }
-#line 2340 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2346 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 404:
@@ -2345,7 +2351,7 @@ namespace isc { namespace dhcp {
     ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("excluded-prefix-len", prf);
 }
-#line 2349 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2355 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 405:
@@ -2354,7 +2360,7 @@ namespace isc { namespace dhcp {
     ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("delegated-len", deleg);
 }
-#line 2358 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2364 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 406:
@@ -2365,7 +2371,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.RESERVATIONS);
 }
-#line 2369 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2375 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 407:
@@ -2374,7 +2380,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2378 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2384 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 412:
@@ -2384,7 +2390,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2388 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2394 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 413:
@@ -2393,7 +2399,7 @@ namespace isc { namespace dhcp {
     /// @todo: an identifier parameter is required.
     ctx.stack_.pop_back();
 }
-#line 2397 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2403 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 414:
@@ -2403,7 +2409,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2407 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2413 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 415:
@@ -2412,7 +2418,7 @@ namespace isc { namespace dhcp {
     /// @todo: an identifier parameter is required.
     // parsing completed
 }
-#line 2416 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2422 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 431:
@@ -2423,7 +2429,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2427 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2433 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 432:
@@ -2432,7 +2438,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2436 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2442 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 433:
@@ -2443,7 +2449,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2447 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2453 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 434:
@@ -2452,7 +2458,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2456 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2462 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 435:
@@ -2460,7 +2466,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2464 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2470 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 436:
@@ -2470,7 +2476,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("duid", d);
     ctx.leave();
 }
-#line 2474 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2480 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 437:
@@ -2478,7 +2484,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2482 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2488 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 438:
@@ -2488,7 +2494,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("hw-address", hw);
     ctx.leave();
 }
-#line 2492 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2498 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 439:
@@ -2496,7 +2502,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2500 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2506 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 440:
@@ -2506,7 +2512,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("hostname", host);
     ctx.leave();
 }
-#line 2510 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2516 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 441:
@@ -2514,7 +2520,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2518 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2524 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 442:
@@ -2524,7 +2530,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("flex-id", hw);
     ctx.leave();
 }
-#line 2528 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2534 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 443:
@@ -2535,7 +2541,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(c);
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2539 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2545 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 444:
@@ -2544,7 +2550,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2548 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2554 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 445:
@@ -2555,7 +2561,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.RELAY);
 }
-#line 2559 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2565 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 446:
@@ -2564,7 +2570,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2568 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2574 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 447:
@@ -2572,7 +2578,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2576 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2582 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 448:
@@ -2582,7 +2588,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("ip-address", ip);
     ctx.leave();
 }
-#line 2586 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2592 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 449:
@@ -2593,7 +2599,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(l);
     ctx.enter(ctx.CLIENT_CLASSES);
 }
-#line 2597 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2603 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 450:
@@ -2602,7 +2608,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2606 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2612 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 453:
@@ -2612,7 +2618,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 2616 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2622 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 454:
@@ -2622,7 +2628,7 @@ namespace isc { namespace dhcp {
     ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
 }
-#line 2626 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2632 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 466:
@@ -2630,7 +2636,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2634 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2640 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 467:
@@ -2640,7 +2646,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("test", test);
     ctx.leave();
 }
-#line 2644 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2650 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 468:
@@ -2651,7 +2657,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.SERVER_ID);
 }
-#line 2655 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2661 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 469:
@@ -2662,7 +2668,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2666 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2672 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 481:
@@ -2670,7 +2676,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.DUID_TYPE);
 }
-#line 2674 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2680 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 482:
@@ -2679,25 +2685,25 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2683 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2689 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 483:
 #line 1666 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); }
-#line 2689 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2695 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 484:
 #line 1667 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); }
-#line 2695 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2701 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 485:
 #line 1668 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); }
-#line 2701 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2707 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 486:
@@ -2706,7 +2712,7 @@ namespace isc { namespace dhcp {
     ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("htype", htype);
 }
-#line 2710 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2716 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 487:
@@ -2714,7 +2720,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2718 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2724 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 488:
@@ -2724,7 +2730,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("identifier", id);
     ctx.leave();
 }
-#line 2728 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2734 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 489:
@@ -2733,7 +2739,7 @@ namespace isc { namespace dhcp {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("time", time);
 }
-#line 2737 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2743 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 490:
@@ -2742,7 +2748,7 @@ namespace isc { namespace dhcp {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enterprise-id", time);
 }
-#line 2746 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2752 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 491:
@@ -2751,7 +2757,7 @@ namespace isc { namespace dhcp {
     ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp4o6-port", time);
 }
-#line 2755 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2761 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 492:
@@ -2762,7 +2768,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.CONTROL_SOCKET);
 }
-#line 2766 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2772 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 493:
@@ -2771,7 +2777,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2775 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2781 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 501:
@@ -2779,7 +2785,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2783 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2789 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 502:
@@ -2789,7 +2795,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("socket-type", stype);
     ctx.leave();
 }
-#line 2793 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2799 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 503:
@@ -2797,7 +2803,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2801 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2807 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 504:
@@ -2807,7 +2813,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("socket-name", name);
     ctx.leave();
 }
-#line 2811 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2817 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 506:
@@ -2815,7 +2821,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2819 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2825 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 507:
@@ -2824,7 +2830,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->combine_set("comment", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2828 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2834 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 508:
@@ -2835,7 +2841,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 2839 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2845 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 509:
@@ -2846,7 +2852,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2850 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2856 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 510:
@@ -2856,7 +2862,7 @@ namespace isc { namespace dhcp {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2860 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2866 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 511:
@@ -2866,7 +2872,7 @@ namespace isc { namespace dhcp {
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2870 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2876 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 531:
@@ -2875,7 +2881,7 @@ namespace isc { namespace dhcp {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 2879 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2885 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 532:
@@ -2883,7 +2889,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2887 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2893 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 533:
@@ -2893,7 +2899,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 2897 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2903 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 534:
@@ -2901,7 +2907,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2905 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2911 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 535:
@@ -2911,7 +2917,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("server-ip", s);
     ctx.leave();
 }
-#line 2915 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2921 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 536:
@@ -2920,7 +2926,7 @@ namespace isc { namespace dhcp {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 2924 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2930 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 537:
@@ -2928,7 +2934,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2932 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2938 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 538:
@@ -2938,7 +2944,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("sender-ip", s);
     ctx.leave();
 }
-#line 2942 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2948 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 539:
@@ -2947,7 +2953,7 @@ namespace isc { namespace dhcp {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 2951 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2957 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 540:
@@ -2956,7 +2962,7 @@ namespace isc { namespace dhcp {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 2960 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2966 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 541:
@@ -2964,7 +2970,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 2968 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2974 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 542:
@@ -2973,19 +2979,19 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2977 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2983 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 543:
 #line 1848 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 2983 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2989 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 544:
 #line 1849 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 2989 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2995 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 545:
@@ -2993,7 +2999,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 2997 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3003 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 546:
@@ -3003,7 +3009,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 3007 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3013 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 547:
@@ -3012,7 +3018,7 @@ namespace isc { namespace dhcp {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-include-fqdn", b);
 }
-#line 3016 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3022 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 548:
@@ -3021,7 +3027,7 @@ namespace isc { namespace dhcp {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 3025 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3031 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 549:
@@ -3030,7 +3036,7 @@ namespace isc { namespace dhcp {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 3034 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3040 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 550:
@@ -3038,7 +3044,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3042 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3048 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 551:
@@ -3047,7 +3053,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3051 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3057 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 552:
@@ -3055,7 +3061,7 @@ namespace isc { namespace dhcp {
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); 
       }
-#line 3059 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3065 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 553:
@@ -3063,7 +3069,7 @@ namespace isc { namespace dhcp {
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3067 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3073 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 554:
@@ -3071,7 +3077,7 @@ namespace isc { namespace dhcp {
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3075 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3081 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 555:
@@ -3079,7 +3085,7 @@ namespace isc { namespace dhcp {
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3083 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3089 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 556:
@@ -3088,7 +3094,7 @@ namespace isc { namespace dhcp {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3092 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3098 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 557:
@@ -3096,7 +3102,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3100 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3106 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 558:
@@ -3106,7 +3112,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3110 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3116 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 559:
@@ -3114,7 +3120,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3118 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3124 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 560:
@@ -3123,7 +3129,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3127 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3133 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 561:
@@ -3131,7 +3137,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3135 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3141 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 562:
@@ -3140,7 +3146,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3144 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3150 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 563:
@@ -3148,7 +3154,7 @@ namespace isc { namespace dhcp {
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3152 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3158 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 564:
@@ -3157,7 +3163,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3161 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3167 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 565:
@@ -3168,7 +3174,7 @@ namespace isc { namespace dhcp {
     ctx.stack_.push_back(m);
     ctx.enter(ctx.LOGGING);
 }
-#line 3172 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3178 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
   case 566:
@@ -3177,159 +3183,177 @@ namespace isc { namespace dhcp {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3181 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3187 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 570:
-#line 1960 "dhcp6_parser.yy" // lalr1.cc:859
+  case 567:
+#line 1948 "dhcp6_parser.yy" // lalr1.cc:859
+    {
+    // Parse the Logging map
+    ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
+    ctx.stack_.push_back(m);
+}
+#line 3197 "dhcp6_parser.cc" // lalr1.cc:859
+    break;
+
+  case 568:
+#line 1952 "dhcp6_parser.yy" // lalr1.cc:859
+    {
+    // parsing completed
+}
+#line 3205 "dhcp6_parser.cc" // lalr1.cc:859
+    break;
+
+  case 572:
+#line 1968 "dhcp6_parser.yy" // lalr1.cc:859
     {
     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 3192 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3216 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 571:
-#line 1965 "dhcp6_parser.yy" // lalr1.cc:859
+  case 573:
+#line 1973 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3201 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3225 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 574:
-#line 1977 "dhcp6_parser.yy" // lalr1.cc:859
+  case 576:
+#line 1985 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(l);
     ctx.stack_.push_back(l);
 }
-#line 3211 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3235 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 575:
-#line 1981 "dhcp6_parser.yy" // lalr1.cc:859
+  case 577:
+#line 1989 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
-#line 3219 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3243 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 585:
-#line 1998 "dhcp6_parser.yy" // lalr1.cc:859
+  case 587:
+#line 2006 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("debuglevel", dl);
 }
-#line 3228 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3252 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 586:
-#line 2003 "dhcp6_parser.yy" // lalr1.cc:859
+  case 588:
+#line 2011 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3236 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3260 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 587:
-#line 2005 "dhcp6_parser.yy" // lalr1.cc:859
+  case 589:
+#line 2013 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("severity", sev);
     ctx.leave();
 }
-#line 3246 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3270 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 588:
-#line 2011 "dhcp6_parser.yy" // lalr1.cc:859
+  case 590:
+#line 2019 "dhcp6_parser.yy" // lalr1.cc:859
     {
     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 3257 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3281 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 589:
-#line 2016 "dhcp6_parser.yy" // lalr1.cc:859
+  case 591:
+#line 2024 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3266 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3290 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 592:
-#line 2025 "dhcp6_parser.yy" // lalr1.cc:859
+  case 594:
+#line 2033 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->add(m);
     ctx.stack_.push_back(m);
 }
-#line 3276 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3300 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 593:
-#line 2029 "dhcp6_parser.yy" // lalr1.cc:859
+  case 595:
+#line 2037 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
-#line 3284 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3308 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 600:
-#line 2043 "dhcp6_parser.yy" // lalr1.cc:859
+  case 602:
+#line 2051 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3292 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3316 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 601:
-#line 2045 "dhcp6_parser.yy" // lalr1.cc:859
+  case 603:
+#line 2053 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("output", sev);
     ctx.leave();
 }
-#line 3302 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3326 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 602:
-#line 2051 "dhcp6_parser.yy" // lalr1.cc:859
+  case 604:
+#line 2059 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("flush", flush);
 }
-#line 3311 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3335 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 603:
-#line 2056 "dhcp6_parser.yy" // lalr1.cc:859
+  case 605:
+#line 2064 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxsize", maxsize);
 }
-#line 3320 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3344 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 604:
-#line 2061 "dhcp6_parser.yy" // lalr1.cc:859
+  case 606:
+#line 2069 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("maxver", maxver);
 }
-#line 3329 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3353 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
 
-#line 3333 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3357 "dhcp6_parser.cc" // lalr1.cc:859
             default:
               break;
             }
@@ -3584,180 +3608,182 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short int Dhcp6Parser::yypact_ninf_ = -745;
+  const short int Dhcp6Parser::yypact_ninf_ = -764;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short int
   Dhcp6Parser::yypact_[] =
   {
-     280,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,    48,    23,    76,    82,    92,   148,
-     155,   159,   163,   167,   173,   237,   254,   261,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,    23,    34,    27,   157,    29,    44,
-      -3,   179,   330,   185,   225,   244,   -40,   461,  -745,   263,
-     274,   298,   270,   309,  -745,  -745,  -745,  -745,  -745,   310,
-    -745,    35,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,   316,   320,   322,   328,   329,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   335,
-    -745,  -745,  -745,    47,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-     356,  -745,    61,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,   361,   367,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,    87,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,    88,  -745,  -745,  -745,  -745,  -745,
-     369,  -745,   372,   375,  -745,  -745,  -745,  -745,    90,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,   305,   344,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,   373,  -745,  -745,   376,
-    -745,  -745,  -745,   378,  -745,  -745,   381,   380,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,   389,   393,  -745,  -745,  -745,  -745,   390,   397,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,   124,  -745,  -745,  -745,   398,  -745,  -745,   399,  -745,
-     400,   408,  -745,  -745,   409,   410,   411,  -745,  -745,  -745,
-    -745,  -745,   144,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    23,
-      23,  -745,   264,   413,   428,   429,   430,   431,  -745,    27,
-    -745,   432,   436,   437,   289,   290,   292,   293,   294,   440,
-     444,   445,   446,   447,   448,   450,   451,   452,   453,   454,
-     455,   456,   308,   458,   459,   157,  -745,   460,   311,    29,
-    -745,   217,   463,   464,   465,   466,   467,   312,   317,   469,
-     470,   474,   475,    44,  -745,   476,    -3,  -745,   477,   331,
-     479,   332,   336,   179,  -745,   486,   490,   491,   492,   493,
-     495,   501,  -745,   330,  -745,   502,   503,   355,   506,   507,
-     508,   358,  -745,   225,   510,   360,   364,  -745,   244,   512,
-     516,   -27,  -745,   368,   520,   521,   374,   522,   377,   382,
-     524,   525,   384,   385,   386,   527,   532,   461,  -745,  -745,
-    -745,   533,   535,   536,    23,    23,    23,  -745,   537,   538,
-     539,  -745,  -745,  -745,  -745,  -745,   542,   544,   546,   545,
-      23,   548,   549,   551,   552,   553,   554,   555,   556,  -745,
-     557,   558,  -745,   576,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,   574,   580,  -745,  -745,  -745,   579,   581,   433,
-     435,   438,  -745,  -745,    15,   439,   583,   582,  -745,   441,
-    -745,   442,  -745,   443,  -745,  -745,  -745,   576,   576,   576,
-     449,   457,   462,   468,  -745,   471,   472,  -745,   473,   478,
-     480,  -745,  -745,   481,  -745,  -745,  -745,   482,    23,  -745,
-    -745,   483,   484,  -745,   485,  -745,  -745,   133,   488,  -745,
-    -745,  -745,    -4,   487,  -745,    23,   157,   489,  -745,  -745,
-    -745,    29,   182,   182,   585,   589,   590,  -745,  -745,  -745,
-     591,   -38,    23,    46,    24,   592,    54,    31,   240,   461,
-    -745,  -745,   596,  -745,   217,   595,   597,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,   598,   526,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-     145,  -745,   194,  -745,  -745,   212,  -745,  -745,  -745,  -745,
-     599,   602,   603,   607,   608,  -745,  -745,  -745,   215,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,   239,  -745,   609,   613,  -745,  -745,
-     612,   616,  -745,  -745,   615,   619,  -745,  -745,   620,   624,
-    -745,  -745,  -745,    64,  -745,  -745,  -745,   622,  -745,  -745,
-    -745,   132,  -745,  -745,  -745,  -745,   181,  -745,   623,   628,
-    -745,   634,   636,   637,   638,   639,   640,   243,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,   641,   642,   643,
-    -745,  -745,  -745,  -745,   249,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,   257,  -745,  -745,  -745,
-    -745,  -745,   272,   496,   497,  -745,  -745,   644,   648,  -745,
-    -745,   646,   650,  -745,  -745,   649,   651,  -745,  -745,   652,
-    -745,   653,   489,  -745,  -745,   654,   655,   657,   658,   407,
-     406,   511,   513,   514,   659,   661,   182,  -745,  -745,    44,
-    -745,   585,   225,  -745,   589,   244,  -745,   590,    77,  -745,
-     591,   -38,  -745,  -745,    46,  -745,    24,  -745,   -40,  -745,
-     592,   517,   518,   519,   523,   528,   529,    54,  -745,   662,
-     665,   530,   531,   534,    31,  -745,   669,   670,   671,   240,
-    -745,  -745,  -745,   672,   674,  -745,    -3,  -745,   595,   179,
-    -745,   597,   330,  -745,   598,   675,  -745,   680,  -745,   338,
-     504,   540,   543,  -745,  -745,  -745,  -745,  -745,   565,   566,
-    -745,   291,  -745,   678,  -745,   681,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   300,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   327,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   105,   569,
-    -745,  -745,  -745,  -745,    23,   570,   573,  -745,  -745,   575,
-     333,  -745,   337,  -745,   686,  -745,   577,   673,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,    77,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   213,  -745,
-    -745,   259,   673,  -745,  -745,   684,  -745,  -745,  -745,  -745,
-    -745,   343,  -745,  -745,  -745,  -745,  -745,   694,   550,   701,
-     259,  -745,   703,  -745,   578,  -745,   702,  -745,  -745,   273,
-    -745,    26,   702,  -745,  -745,   727,   728,   730,   346,  -745,
-    -745,  -745,  -745,  -745,  -745,   731,   586,   584,   605,    26,
-    -745,   593,  -745,  -745,  -745,  -745,  -745
+     315,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,    42,    26,    41,    60,    89,
+      91,   112,   118,   139,   143,   152,   157,   159,   171,   182,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,    26,  -109,
+      33,   186,    34,    49,    46,    -2,   206,    57,   149,   208,
+     -27,   437,    29,  -764,   235,   234,   254,   259,   271,  -764,
+    -764,  -764,  -764,  -764,   276,  -764,    37,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,   285,   286,   295,   307,
+     312,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,   320,  -764,  -764,  -764,    61,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,   331,  -764,    67,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,   334,
+     336,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+      85,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,   128,
+    -764,  -764,  -764,  -764,  -764,   337,  -764,   340,   342,  -764,
+    -764,  -764,  -764,   132,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,   344,   351,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,   350,  -764,  -764,   358,  -764,  -764,  -764,   360,  -764,
+    -764,   357,   364,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,   366,   367,  -764,  -764,
+    -764,  -764,   376,   371,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,   140,  -764,  -764,  -764,
+     382,  -764,  -764,   389,  -764,   390,   392,  -764,  -764,   393,
+     394,   396,  -764,  -764,  -764,  -764,  -764,   144,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,   146,  -764,  -764,  -764,    26,    26,
+    -764,   249,   399,   412,   413,   414,   415,  -764,    33,  -764,
+     416,   417,   418,   221,   272,   273,   274,   275,   421,   426,
+     430,   431,   432,   433,   434,   435,   436,   438,   439,   440,
+     441,   287,   442,   444,   186,  -764,   445,   313,    34,  -764,
+     154,   447,   464,   466,   467,   468,   319,   323,   471,   472,
+     473,   474,    49,  -764,   476,    46,  -764,   477,   329,   478,
+     330,   335,    -2,  -764,   484,   488,   491,   492,   493,   494,
+     495,  -764,   206,  -764,   496,   500,   353,   501,   505,   506,
+     355,  -764,   149,   509,   361,   362,  -764,   208,   510,   512,
+       1,  -764,   365,   515,   516,   372,   521,   373,   374,   526,
+     527,   377,   379,   380,   528,   533,   437,  -764,   535,    29,
+    -764,  -764,  -764,   536,   534,   550,    26,    26,    26,  -764,
+     552,   554,   555,  -764,  -764,  -764,  -764,  -764,   558,   559,
+     561,   560,    26,   563,   564,   565,   566,   567,   568,   569,
+     570,  -764,   571,   572,  -764,   575,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,   574,   580,  -764,  -764,  -764,   579,
+     581,   422,   443,   446,  -764,  -764,   284,   448,   582,   578,
+    -764,   449,  -764,   450,  -764,   451,  -764,  -764,  -764,   575,
+     575,   575,   452,   453,   454,   455,  -764,   456,   457,  -764,
+     458,   459,   460,  -764,  -764,   461,  -764,  -764,  -764,   462,
+      26,  -764,  -764,   463,   465,  -764,   469,  -764,  -764,    87,
+     470,  -764,  -764,  -764,   -52,   475,  -764,   583,  -764,    26,
+     186,    29,  -764,  -764,  -764,    34,   385,   385,   584,   586,
+     587,  -764,  -764,  -764,   588,   -36,    26,   240,    27,   590,
+     205,    76,   156,   437,  -764,  -764,   585,  -764,   154,   591,
+     593,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,   610,
+     537,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,   613,  -764,   150,   153,   169,  -764,  -764,
+    -764,  -764,   617,   619,   620,   621,   622,  -764,  -764,  -764,
+     195,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,   201,  -764,   623,   624,  -764,  -764,
+     625,   627,  -764,  -764,   626,   630,  -764,  -764,   628,   632,
+    -764,  -764,  -764,   131,  -764,  -764,  -764,   631,  -764,  -764,
+    -764,   222,  -764,  -764,  -764,  -764,   322,  -764,   633,   635,
+    -764,   636,   637,   638,   639,   640,   641,   224,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,   642,   643,   644,
+    -764,  -764,  -764,  -764,   228,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,   231,  -764,  -764,  -764,
+    -764,  -764,   237,   483,   497,  -764,  -764,   645,   646,  -764,
+    -764,   647,   649,  -764,  -764,   648,   652,  -764,  -764,   650,
+    -764,   324,  -764,  -764,  -764,  -764,   653,   655,   656,   657,
+     420,   507,   502,   508,   511,   658,   662,   385,  -764,  -764,
+      49,  -764,   584,   149,  -764,   586,   208,  -764,   587,    82,
+    -764,   588,   -36,  -764,  -764,   240,  -764,    27,  -764,   -27,
+    -764,   590,   513,   514,   517,   518,   519,   520,   205,  -764,
+     665,   666,   522,   523,   524,    76,  -764,   671,   675,   676,
+     156,  -764,  -764,  -764,   677,   678,  -764,    46,  -764,   591,
+      -2,  -764,   593,   206,  -764,   610,   680,  -764,   321,   613,
+    -764,   363,   529,   532,   538,  -764,  -764,  -764,  -764,  -764,
+     539,   540,  -764,   258,  -764,   679,  -764,   681,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,   267,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,   268,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+     120,   541,  -764,  -764,  -764,  -764,    26,   542,   543,  -764,
+    -764,   545,   270,  -764,   298,  -764,   682,  -764,   546,  -764,
+     684,  -764,  -764,  -764,  -764,  -764,   300,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,    82,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,   698,   551,   703,   321,  -764,  -764,   707,  -764,   576,
+    -764,   701,  -764,  -764,   328,  -764,    -6,   701,  -764,  -764,
+     712,   714,   718,   302,  -764,  -764,  -764,  -764,  -764,  -764,
+     724,   530,   577,   589,    -6,  -764,   592,  -764,  -764,  -764,
+    -764,  -764
   };
 
   const unsigned short int
   Dhcp6Parser::yydefact_[] =
   {
        0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
-      20,    22,    24,    26,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     1,    43,
-      36,    32,    31,    28,    29,    30,    35,     3,    33,    34,
-      56,     5,    68,     7,   104,     9,   222,    11,   363,    13,
-     386,    15,   414,    17,   288,    19,   296,    21,   333,    23,
-     187,    25,   510,    27,    45,    39,     0,     0,     0,     0,
-       0,     0,   416,     0,   298,   335,     0,     0,    47,     0,
-      46,     0,     0,    40,    66,   565,   559,   561,   563,     0,
-      65,     0,    58,    60,    62,    63,    64,    61,   102,   116,
-     118,     0,     0,     0,     0,     0,   214,   286,   325,   374,
-     376,   260,   160,   177,   168,   449,   179,   198,   468,     0,
-     492,   508,    96,     0,    70,    72,    73,    74,    75,    76,
-      79,    80,    81,    82,    84,    83,    88,    89,    77,    78,
-      86,    87,    94,    95,    85,    90,    91,    92,    93,   113,
-       0,   112,     0,   106,   108,   109,   110,   111,   453,   355,
-     378,   245,   247,   249,     0,     0,   253,   251,   406,   445,
-     244,   226,   227,   228,   229,     0,   224,   233,   234,   235,
-     238,   240,   236,   237,   230,   231,   242,   243,   232,   239,
-     241,   372,   371,   368,     0,   365,   367,   369,   370,   399,
-       0,   402,     0,     0,   398,   393,   396,   397,     0,   388,
-     390,   391,   394,   395,   392,   443,   431,   433,   435,   437,
-     439,   441,   430,   427,   428,   429,     0,   417,   418,   422,
-     423,   420,   424,   425,   426,   421,     0,   315,   150,     0,
-     319,   317,   322,     0,   311,   312,     0,   299,   300,   302,
-     314,   303,   304,   305,   321,   306,   307,   308,   309,   310,
-     349,     0,     0,   347,   348,   351,   352,     0,   336,   337,
-     339,   340,   341,   342,   343,   344,   345,   346,   194,   196,
-     191,     0,   189,   192,   193,     0,   532,   534,     0,   537,
-       0,     0,   541,   545,     0,     0,     0,   550,   557,   530,
-     528,   529,     0,   512,   514,   515,   516,   517,   518,   519,
-     520,   521,   522,   523,   524,   525,   526,   527,    44,     0,
-       0,    37,     0,     0,     0,     0,     0,     0,    55,     0,
-      57,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      20,    22,    24,    26,    28,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    69,     0,     0,     0,
-     105,   455,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   223,     0,     0,   364,     0,     0,
-       0,     0,     0,     0,   387,     0,     0,     0,     0,     0,
-       0,     0,   415,     0,   289,     0,     0,     0,     0,     0,
-       0,     0,   297,     0,     0,     0,     0,   334,     0,     0,
-       0,     0,   188,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   511,    48,
-      41,     0,     0,     0,     0,     0,     0,    59,     0,     0,
-       0,    97,    98,    99,   100,   101,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   491,
-       0,     0,    71,     0,   115,   107,   466,   464,   465,   461,
-     462,   463,     0,   456,   457,   459,   460,     0,     0,     0,
-       0,     0,   258,   259,     0,     0,     0,     0,   225,     0,
-     366,     0,   401,     0,   404,   405,   389,     0,     0,     0,
-       0,     0,     0,     0,   419,     0,     0,   313,     0,     0,
-       0,   324,   301,     0,   353,   354,   338,     0,     0,   190,
-     531,     0,     0,   536,     0,   539,   540,     0,     0,   547,
-     548,   549,     0,     0,   513,     0,     0,     0,   560,   562,
-     564,     0,     0,     0,   216,   290,   327,    38,   375,   377,
-     262,     0,    45,     0,     0,   181,     0,     0,     0,     0,
-      49,   114,     0,   454,     0,   357,   380,   246,   248,   250,
-     255,   256,   257,   254,   252,   408,     0,   373,   400,   403,
-     444,   432,   434,   436,   438,   440,   442,   316,   151,   320,
-     318,   323,   350,   195,   197,   533,   535,   538,   543,   544,
-     542,   546,   552,   553,   554,   555,   556,   551,   558,    42,
-       0,   570,     0,   567,   569,     0,   137,   143,   145,   147,
-       0,     0,     0,     0,     0,   156,   158,   136,     0,   120,
-     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
+       1,    45,    38,    34,    33,    30,    31,    32,    37,     3,
+      35,    36,    58,     5,    70,     7,   106,     9,   222,    11,
+     363,    13,   386,    15,   414,    17,   288,    19,   296,    21,
+     333,    23,   187,    25,   510,    27,   567,    29,    47,    41,
+       0,     0,     0,     0,     0,     0,   416,     0,   298,   335,
+       0,     0,     0,    49,     0,    48,     0,     0,    42,    68,
+     565,   559,   561,   563,     0,    67,     0,    60,    62,    64,
+      65,    66,    63,   104,   118,   120,     0,     0,     0,     0,
+       0,   214,   286,   325,   374,   376,   260,   160,   177,   168,
+     449,   179,   198,   468,     0,   492,   508,    98,     0,    72,
+      74,    75,    76,    77,    78,    81,    82,    83,    84,    86,
+      85,    90,    91,    79,    80,    88,    89,    96,    97,    87,
+      92,    93,    94,    95,   115,     0,   114,     0,   108,   110,
+     111,   112,   113,   453,   355,   378,   245,   247,   249,     0,
+       0,   253,   251,   406,   445,   244,   226,   227,   228,   229,
+       0,   224,   233,   234,   235,   238,   240,   236,   237,   230,
+     231,   242,   243,   232,   239,   241,   372,   371,   368,     0,
+     365,   367,   369,   370,   399,     0,   402,     0,     0,   398,
+     393,   396,   397,     0,   388,   390,   391,   394,   395,   392,
+     443,   431,   433,   435,   437,   439,   441,   430,   427,   428,
+     429,     0,   417,   418,   422,   423,   420,   424,   425,   426,
+     421,     0,   315,   150,     0,   319,   317,   322,     0,   311,
+     312,     0,   299,   300,   302,   314,   303,   304,   305,   321,
+     306,   307,   308,   309,   310,   349,     0,     0,   347,   348,
+     351,   352,     0,   336,   337,   339,   340,   341,   342,   343,
+     344,   345,   346,   194,   196,   191,     0,   189,   192,   193,
+       0,   532,   534,     0,   537,     0,     0,   541,   545,     0,
+       0,     0,   550,   557,   530,   528,   529,     0,   512,   514,
+     515,   516,   517,   518,   519,   520,   521,   522,   523,   524,
+     525,   526,   527,   572,     0,   569,   571,    46,     0,     0,
+      39,     0,     0,     0,     0,     0,     0,    57,     0,    59,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    71,     0,     0,     0,   107,
+     455,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   223,     0,     0,   364,     0,     0,     0,
+       0,     0,     0,   387,     0,     0,     0,     0,     0,     0,
+       0,   415,     0,   289,     0,     0,     0,     0,     0,     0,
+       0,   297,     0,     0,     0,     0,   334,     0,     0,     0,
+       0,   188,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   511,     0,     0,
+     568,    50,    43,     0,     0,     0,     0,     0,     0,    61,
+       0,     0,     0,    99,   100,   101,   102,   103,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   491,     0,     0,    73,     0,   117,   109,   466,   464,
+     465,   461,   462,   463,     0,   456,   457,   459,   460,     0,
+       0,     0,     0,     0,   258,   259,     0,     0,     0,     0,
+     225,     0,   366,     0,   401,     0,   404,   405,   389,     0,
+       0,     0,     0,     0,     0,     0,   419,     0,     0,   313,
+       0,     0,     0,   324,   301,     0,   353,   354,   338,     0,
+       0,   190,   531,     0,     0,   536,     0,   539,   540,     0,
+       0,   547,   548,   549,     0,     0,   513,     0,   570,     0,
+       0,     0,   560,   562,   564,     0,     0,     0,   216,   290,
+     327,    40,   375,   377,   262,     0,    47,     0,     0,   181,
+       0,     0,     0,     0,    51,   116,     0,   454,     0,   357,
+     380,   246,   248,   250,   255,   256,   257,   254,   252,   408,
+       0,   373,   400,   403,   444,   432,   434,   436,   438,   440,
+     442,   316,   151,   320,   318,   323,   350,   195,   197,   533,
+     535,   538,   543,   544,   542,   546,   552,   553,   554,   555,
+     556,   551,   558,     0,    44,     0,     0,     0,   137,   143,
+     145,   147,     0,     0,     0,     0,     0,   156,   158,   136,
+       0,   122,   124,   125,   126,   127,   128,   129,   130,   131,
      132,   133,   134,   135,     0,   220,     0,   217,   218,   294,
        0,   291,   292,   331,     0,   328,   329,   266,     0,   263,
      264,   166,   167,     0,   162,   164,   165,     0,   175,   176,
@@ -3766,481 +3792,482 @@ namespace isc { namespace dhcp {
      203,   204,   205,   206,   207,   481,   487,     0,     0,     0,
      480,   477,   478,   479,     0,   470,   472,   475,   473,   474,
      476,   506,   501,   503,   500,   505,     0,   494,   496,   497,
-     498,   499,     0,    51,     0,   458,   361,     0,   358,   359,
+     498,   499,     0,    53,     0,   458,   361,     0,   358,   359,
      384,     0,   381,   382,   412,     0,   409,   410,   447,     0,
-      67,     0,     0,   566,   103,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   117,   119,     0,
-     215,     0,   298,   287,     0,   335,   326,     0,     0,   261,
-       0,     0,   161,   178,     0,   169,     0,   450,     0,   180,
-       0,     0,     0,     0,     0,     0,     0,     0,   199,     0,
-       0,     0,     0,     0,     0,   469,     0,     0,     0,     0,
-     493,   509,    53,     0,    52,   467,     0,   356,     0,     0,
-     379,     0,   416,   407,     0,     0,   446,     0,   568,     0,
-       0,     0,     0,   149,   152,   153,   154,   155,     0,     0,
-     121,     0,   219,     0,   293,     0,   330,   285,   280,   282,
-     274,   275,   270,   271,   272,   273,   279,   278,   281,     0,
-     268,   276,   283,   284,   277,   265,   163,   171,   452,     0,
-     184,   208,   209,   210,   211,   212,   213,   201,     0,     0,
-     486,   489,   490,   471,     0,     0,     0,   495,    50,     0,
-       0,   360,     0,   383,     0,   411,     0,     0,   139,   140,
-     141,   142,   138,   144,   146,   148,   157,   159,   221,   295,
-     332,     0,   267,   186,   483,   484,   485,   482,   488,   507,
-     502,   504,    54,   362,   385,   413,   448,   574,     0,   572,
-     269,     0,     0,   571,   588,     0,   586,   584,   578,   582,
-     583,     0,   576,   580,   581,   579,   573,     0,     0,     0,
-       0,   575,     0,   585,     0,   577,     0,   587,   592,     0,
-     590,     0,     0,   589,   600,     0,     0,     0,     0,   594,
-     596,   597,   598,   599,   591,     0,     0,     0,     0,     0,
-     593,     0,   602,   603,   604,   595,   601
+     576,     0,   574,    69,   566,   105,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   119,   121,
+       0,   215,     0,   298,   287,     0,   335,   326,     0,     0,
+     261,     0,     0,   161,   178,     0,   169,     0,   450,     0,
+     180,     0,     0,     0,     0,     0,     0,     0,     0,   199,
+       0,     0,     0,     0,     0,     0,   469,     0,     0,     0,
+       0,   493,   509,    55,     0,    54,   467,     0,   356,     0,
+       0,   379,     0,   416,   407,     0,     0,   446,     0,     0,
+     573,     0,     0,     0,     0,   149,   152,   153,   154,   155,
+       0,     0,   123,     0,   219,     0,   293,     0,   330,   285,
+     280,   282,   274,   275,   270,   271,   272,   273,   279,   278,
+     281,     0,   268,   276,   283,   284,   277,   265,   163,   171,
+     452,     0,   184,   208,   209,   210,   211,   212,   213,   201,
+       0,     0,   486,   489,   490,   471,     0,     0,     0,   495,
+      52,     0,     0,   360,     0,   383,     0,   411,     0,   590,
+       0,   588,   586,   580,   584,   585,     0,   578,   582,   583,
+     581,   575,   139,   140,   141,   142,   138,   144,   146,   148,
+     157,   159,   221,   295,   332,     0,   267,   186,   483,   484,
+     485,   482,   488,   507,   502,   504,    56,   362,   385,   413,
+     448,     0,     0,     0,     0,   577,   269,     0,   587,     0,
+     579,     0,   589,   594,     0,   592,     0,     0,   591,   602,
+       0,     0,     0,     0,   596,   598,   599,   600,   601,   593,
+       0,     0,     0,     0,     0,   595,     0,   604,   605,   606,
+     597,   603
   };
 
   const short int
   Dhcp6Parser::yypgoto_[] =
   {
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,     3,  -745,   287,  -745,  -745,
-    -745,  -745,  -745,  -745,   186,  -745,  -207,  -745,  -745,  -745,
-     -66,  -745,  -745,  -745,   419,  -745,  -745,  -745,  -745,   206,
-     394,   -68,   -62,   -48,   -44,  -745,  -745,  -745,  -745,  -745,
-     211,   396,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   219,
-       4,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,   -42,  -745,  -545,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,    -8,  -526,  -745,  -745,  -745,  -745,
-     -10,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   -15,
-    -745,  -745,  -745,   -12,   357,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,   -20,  -745,  -745,  -745,  -745,  -745,  -745,  -744,
-    -745,  -745,  -745,     8,  -745,  -745,  -745,    12,   401,  -745,
-    -745,  -734,  -745,  -732,  -745,  -531,  -745,  -728,  -745,  -745,
-    -745,  -719,  -745,  -745,  -745,  -745,     5,  -745,  -745,  -129,
-     700,  -745,  -745,  -745,  -745,  -745,    13,  -745,  -745,  -745,
-      14,  -745,   379,  -745,   -49,  -745,  -745,  -745,  -745,  -745,
-     -46,  -745,  -745,  -745,  -745,  -745,     2,  -745,  -745,  -745,
-      11,  -745,  -745,  -745,    16,  -745,   371,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,   -28,  -745,
-    -745,  -745,   -23,   412,  -745,  -745,   -55,  -745,    -9,  -745,
-    -745,  -745,  -745,  -745,   -25,  -745,  -745,  -745,   -22,   415,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,   -30,  -745,  -745,  -745,   -21,  -745,   402,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -716,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,   226,  -745,  -745,  -745,  -745,  -745,  -745,    -5,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,    -7,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,   234,   383,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,
-    -745,  -745,  -745,  -745,  -745,  -745,  -745,  -745,    52,  -745,
-    -745,  -745,  -126,  -745,  -745,  -141,  -745,  -745,  -745,  -745,
-    -745,  -745,  -151,  -745,  -745,  -167,  -745,  -745,  -745,  -745,
-    -745
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,   -15,  -764,   277,  -764,
+    -764,  -764,  -764,  -764,  -764,   166,  -764,  -119,  -764,  -764,
+    -764,   -70,  -764,  -764,  -764,   395,  -764,  -764,  -764,  -764,
+     187,   375,   -59,   -56,   -53,   -45,  -764,  -764,  -764,  -764,
+    -764,   181,   378,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+     184,   -25,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,   -66,  -764,  -559,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,   -38,  -552,  -764,  -764,  -764,
+    -764,   -37,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+     -42,  -764,  -764,  -764,   -35,   332,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,   -47,  -764,  -764,  -764,  -764,  -764,  -764,
+    -763,  -764,  -764,  -764,   -17,  -764,  -764,  -764,   -11,   383,
+    -764,  -764,  -758,  -764,  -757,  -764,  -549,  -764,  -742,  -764,
+    -764,  -764,  -741,  -764,  -764,  -764,  -764,   -14,  -764,  -764,
+    -161,   692,  -764,  -764,  -764,  -764,  -764,    -5,  -764,  -764,
+    -764,    -1,  -764,   368,  -764,   -72,  -764,  -764,  -764,  -764,
+    -764,   -61,  -764,  -764,  -764,  -764,  -764,     3,  -764,  -764,
+    -764,    -3,  -764,  -764,  -764,     0,  -764,   369,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,   -41,
+    -764,  -764,  -764,   -40,   398,  -764,  -764,   -49,  -764,   -13,
+    -764,  -764,  -764,  -764,  -764,   -34,  -764,  -764,  -764,   -39,
+     397,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,   -32,  -764,  -764,  -764,   -33,  -764,   400,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -740,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,   207,  -764,  -764,  -764,  -764,  -764,  -764,
+     -21,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,   -23,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,   218,   359,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+    -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,  -764,
+     243,   370,  -764,  -764,  -764,   -31,  -764,  -764,  -148,  -764,
+    -764,  -764,  -764,  -764,  -764,  -160,  -764,  -764,  -175,  -764,
+    -764,  -764,  -764,  -764
   };
 
   const short int
   Dhcp6Parser::yydefgoto_[] =
   {
-      -1,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,    25,    26,    27,    78,    37,    38,    65,   548,
-      82,    83,    39,    64,    79,    80,   561,   723,   803,   804,
-     122,    41,    66,    91,    92,    93,   323,    43,    67,   123,
-     124,   125,   126,   127,   128,   129,   130,   331,    45,    68,
-     152,   153,   154,   357,   155,   131,   332,   132,   333,   628,
-     629,   630,   745,   892,   631,   746,   632,   747,   633,   748,
-     634,   245,   396,   636,   637,   638,   639,   640,   754,   641,
-     755,   133,   345,   663,   664,   665,   666,   134,   347,   671,
-     672,   673,   674,   135,   346,   136,   349,   678,   679,   680,
-     778,    61,    76,   281,   282,   283,   409,   284,   410,   137,
-     350,   687,   688,   689,   690,   691,   692,   693,   694,   138,
-     339,   646,   647,   648,   759,    47,    69,   175,   176,   177,
-     364,   178,   365,   179,   366,   180,   370,   181,   369,   573,
-     182,   183,   139,   344,   658,   659,   660,   768,   849,   850,
-     140,   340,    55,    73,   650,   651,   652,   762,    57,    74,
-     246,   247,   248,   249,   250,   251,   252,   395,   253,   399,
-     254,   398,   255,   256,   400,   257,   141,   341,   654,   655,
-     656,   765,    59,    75,   267,   268,   269,   270,   271,   404,
-     272,   273,   274,   275,   185,   362,   727,   728,   729,   806,
-      49,    70,   194,   195,   196,   375,   142,   342,   143,   343,
-     188,   363,   731,   732,   733,   809,    51,    71,   208,   209,
-     210,   378,   211,   212,   380,   213,   214,   189,   371,   735,
-     736,   737,   812,    53,    72,   226,   227,   228,   229,   386,
-     230,   387,   231,   388,   232,   389,   233,   390,   234,   391,
-     235,   385,   190,   372,   739,   815,   144,   348,   676,   361,
-     472,   473,   474,   475,   476,   562,   145,   351,   704,   705,
-     706,   789,   907,   707,   708,   790,   709,   710,   146,   147,
-     353,   716,   717,   718,   797,   719,   798,   720,   721,   796,
-     148,   354,    63,    77,   302,   303,   304,   305,   414,   306,
-     415,   307,   308,   417,   309,   310,   311,   420,   600,   312,
-     421,   313,   314,   315,   316,   425,   607,   317,   426,    94,
-     325,    95,   326,    96,   327,    97,   324,   612,   613,   614,
-     741,   918,   919,   921,   931,   932,   933,   934,   939,   935,
-     937,   949,   950,   951,   958,   959,   960,   965,   961,   962,
-     963
+      -1,    15,    16,    17,    18,    19,    20,    21,    22,    23,
+      24,    25,    26,    27,    28,    29,    83,    39,    40,    69,
+     562,    87,    88,    41,    68,    84,    85,   575,   733,   814,
+     815,   127,    43,    70,    96,    97,    98,   332,    45,    71,
+     128,   129,   130,   131,   132,   133,   134,   135,   340,    47,
+      72,   157,   158,   159,   366,   160,   136,   341,   137,   342,
+     640,   641,   642,   756,   916,   643,   757,   644,   758,   645,
+     759,   646,   250,   405,   648,   649,   650,   651,   652,   765,
+     653,   766,   138,   354,   673,   674,   675,   676,   139,   356,
+     681,   682,   683,   684,   140,   355,   141,   358,   688,   689,
+     690,   789,    63,    80,   286,   287,   288,   418,   289,   419,
+     142,   359,   697,   698,   699,   700,   701,   702,   703,   704,
+     143,   348,   656,   657,   658,   770,    49,    73,   180,   181,
+     182,   373,   183,   374,   184,   375,   185,   379,   186,   378,
+     587,   187,   188,   144,   353,   668,   669,   670,   779,   861,
+     862,   145,   349,    57,    77,   660,   661,   662,   773,    59,
+      78,   251,   252,   253,   254,   255,   256,   257,   404,   258,
+     408,   259,   407,   260,   261,   409,   262,   146,   350,   664,
+     665,   666,   776,    61,    79,   272,   273,   274,   275,   276,
+     413,   277,   278,   279,   280,   190,   371,   737,   738,   739,
+     817,    51,    74,   199,   200,   201,   384,   147,   351,   148,
+     352,   193,   372,   741,   742,   743,   820,    53,    75,   213,
+     214,   215,   387,   216,   217,   389,   218,   219,   194,   380,
+     745,   746,   747,   823,    55,    76,   231,   232,   233,   234,
+     395,   235,   396,   236,   397,   237,   398,   238,   399,   239,
+     400,   240,   394,   195,   381,   749,   826,   149,   357,   686,
+     370,   484,   485,   486,   487,   488,   576,   150,   360,   714,
+     715,   716,   800,   931,   717,   718,   801,   719,   720,   151,
+     152,   362,   726,   727,   728,   808,   729,   809,   730,   731,
+     807,   153,   363,    65,    81,   307,   308,   309,   310,   423,
+     311,   424,   312,   313,   426,   314,   315,   316,   429,   614,
+     317,   430,   318,   319,   320,   321,   434,   621,   322,   435,
+      99,   334,   100,   335,   101,   336,   102,   333,    67,    82,
+     324,   325,   326,   438,   751,   752,   828,   906,   907,   908,
+     909,   943,   910,   941,   954,   955,   956,   963,   964,   965,
+     970,   966,   967,   968
   };
 
   const unsigned short int
   Dhcp6Parser::yytable_[] =
   {
-      90,   171,   151,   170,   192,   204,   222,   172,   244,   263,
-     280,   299,   701,   156,   186,   197,   206,   224,    36,   258,
-     276,   173,   300,   675,   843,   174,   265,   670,    29,   266,
-      30,   158,    31,   264,   844,   108,   845,    84,   329,   661,
-     847,   149,   150,   330,   278,   279,   191,   695,    28,   848,
-     355,   158,   854,   109,   110,   356,   621,   278,   279,   157,
-     187,   198,   207,   225,   359,   259,   277,   771,   301,   360,
-     772,   184,   193,   205,   223,   101,   102,   103,   104,   570,
-     571,   572,   108,    40,   158,   109,   110,   109,   110,    42,
-     373,   376,   159,   383,   160,   374,   377,   167,   384,    44,
-     109,   110,   161,   162,   163,   164,   165,   166,   101,   102,
-     103,   104,    89,   106,   662,   108,   238,   167,   168,   602,
-     603,   604,   605,   661,   668,   169,   669,   411,   696,   697,
-     698,   699,   412,   109,   110,   774,   162,   163,   775,   165,
-     166,   681,   682,   683,   684,   685,   686,   427,   355,    89,
-     167,   606,   428,   740,    85,    46,   954,   843,   169,   955,
-     956,   957,    48,    86,    87,    88,    50,   844,    98,   845,
-      52,    99,   100,   847,    54,    32,    33,    34,    35,    89,
-      56,    89,   848,    89,   776,   854,    81,   777,   101,   102,
-     103,   104,   105,   106,   107,   108,    89,   742,   616,   904,
-     905,   906,   743,   617,   618,   619,   620,   621,   622,   623,
-     624,   625,   626,   109,   110,   359,   922,   108,   756,   923,
-     744,   238,   107,   757,   111,   112,   113,   114,   115,    89,
-     199,   200,   201,   202,   203,   109,   110,   846,   109,   110,
-     116,   237,   756,   117,    58,   858,   787,   758,   670,   701,
-     118,   788,   794,   598,   599,   108,   238,   795,   119,   120,
-     799,    60,   121,    90,   238,   800,   239,   240,    62,   318,
-     241,   242,   243,   109,   110,   427,   952,   319,   321,   953,
-     801,   109,   110,   238,   260,   239,   240,   261,   262,   466,
-     580,   581,   582,   151,   373,   467,   109,   711,   238,   898,
-     109,   110,   320,   901,   156,   171,   470,   170,   902,    89,
-     192,   172,   322,   392,   328,   109,   110,   204,   186,   468,
-     334,   197,   429,   430,   335,   173,   336,   222,   206,   174,
-     411,    89,   337,   338,    89,   903,   376,   244,   224,   352,
-     383,   913,   263,   712,   713,   914,   940,   393,   258,   969,
-     157,   941,   471,   276,   970,   888,   889,   890,   891,   265,
-     358,   299,   266,   469,   187,   367,   264,   198,   108,    89,
-     846,   368,   300,   379,   207,   184,   381,    89,   193,   382,
-     397,   394,   401,   403,   225,   205,   109,   110,   924,   402,
-     925,   926,    89,   405,   259,   223,    89,   406,   407,   277,
-     408,   215,   413,   416,   418,   216,   217,   218,   219,   220,
-     221,    89,   419,   422,   423,   424,   431,   432,   301,     1,
-       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    13,   433,   434,   435,   436,   438,   538,   539,   540,
-     439,   440,   441,   442,   446,   443,   444,   445,   447,   448,
-     449,   450,   451,   549,   452,   453,   454,   455,   456,   457,
-     458,   459,   460,   461,   463,   482,   464,   477,   478,   479,
-     480,   481,   483,   484,   485,   151,   627,   627,   486,   487,
-     489,   491,    89,   493,   492,   494,   156,   642,   642,   495,
-     497,   700,   714,   299,   498,   499,   500,   501,   467,   502,
-     635,   635,   702,   715,   300,   503,   505,   506,   507,   470,
-     508,   509,   510,   511,   513,   514,   517,   109,   110,   515,
-     518,   594,   468,   520,   521,   522,   524,   523,   527,   528,
-     525,   532,   157,   643,   643,   526,   533,   535,   609,   529,
-     530,   531,   536,   537,   541,   542,   543,   544,   703,   545,
-     301,   546,    30,   550,   551,   471,   552,   553,   554,   555,
-     823,   824,   556,   557,   558,   559,   469,   285,   286,   287,
-     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   560,   563,   564,   565,   567,   566,   568,   575,   576,
-     569,   574,   645,   577,   578,   579,   649,   653,   657,   677,
-     724,   583,   726,   749,   730,   734,   750,   751,   738,   584,
-     601,   752,   753,    89,   585,   760,   761,   611,   763,   764,
-     586,   766,   767,   587,   588,   589,   769,   770,   773,   779,
-     590,   780,   591,   592,   593,   595,   596,   597,   781,   608,
-     782,   783,   784,   785,   786,   791,   792,   793,   802,   805,
-     807,   808,   810,   811,   814,   813,   893,   817,   819,   820,
-     816,   821,   822,   828,   825,   829,   868,   827,   826,   869,
-     861,   862,   863,   874,   875,   876,   864,   879,   878,   886,
-     917,   865,   866,   870,   871,   887,   899,   872,   938,   900,
-     627,   171,   894,   170,   915,   895,   244,   172,   942,   263,
-     838,   642,   837,   943,   186,   944,   839,   258,   946,   948,
-     276,   173,   280,   852,   635,   174,   265,   896,   897,   266,
-     840,   908,   910,   264,   841,   911,   842,   912,   700,   916,
-     947,   966,   967,   714,   968,   971,   547,   973,   667,   702,
-     192,   972,   610,   204,   715,   976,   222,   643,   437,   462,
-     187,   197,   615,   259,   206,   465,   277,   224,   974,   853,
-     830,   184,   644,   856,   857,   860,   859,   867,   519,   832,
-     851,   831,   920,   236,   488,   855,   833,   834,   836,   516,
-     881,   835,   512,   880,   885,   703,   883,   882,   490,   873,
-     725,   884,   877,   722,   818,   504,   936,   198,   496,   945,
-     207,   964,   975,   225,     0,     0,     0,     0,   193,     0,
-     534,   205,     0,     0,   223,     0,     0,     0,     0,     0,
+      95,    38,   156,   175,   197,   209,   227,   270,   249,   268,
+     285,   304,   711,   269,   176,   680,   855,   177,   271,   685,
+     178,   856,   857,   161,   191,   202,   211,   229,   179,   263,
+     281,    31,   305,    32,   163,    33,   113,   859,   860,   866,
+     338,   671,    30,    89,    86,   339,   154,   155,    42,   204,
+     205,   206,   207,   208,   114,   115,   163,   283,   284,   162,
+     192,   203,   212,   230,   364,   264,   282,    44,   306,   365,
+     368,   616,   617,   618,   619,   369,   189,   198,   210,   228,
+     106,   107,   108,   109,   113,   283,   284,   113,   382,   163,
+     114,   115,   705,   383,   112,   196,    46,   164,    48,   165,
+     172,   633,   114,   115,   620,   114,   115,   166,   167,   168,
+     169,   170,   171,   106,   107,   108,   109,   672,   111,    50,
+     113,   243,   172,   173,   959,    52,    94,   960,   961,   962,
+     174,   385,   114,   115,   782,   392,   386,   783,   114,   115,
+     393,   167,   168,   420,   170,   171,    54,   436,   421,   439,
+      56,    94,   437,   364,   440,   172,   439,   323,   753,    58,
+      90,   754,   855,   174,    60,   242,    62,   856,   857,    91,
+      92,    93,   368,   706,   707,   708,   709,   755,    64,    34,
+      35,    36,    37,   859,   860,   866,    94,    94,   243,    66,
+     244,   245,   113,   243,   246,   247,   248,   103,   767,    94,
+     104,   105,    94,   768,   767,   114,   115,   612,   613,   769,
+     114,   115,   114,   721,   928,   929,   930,   106,   107,   108,
+     109,   110,   111,   112,   113,   785,   478,   798,   786,    94,
+     858,   805,   799,   680,   810,    94,   806,   328,   870,   811,
+     436,   327,   114,   115,   113,   812,   711,   243,   265,   244,
+     245,   266,   267,   116,   117,   118,   119,   120,   329,   722,
+     723,   382,   114,   115,   114,   115,   922,   330,    95,   121,
+     925,   420,   122,   385,   331,   926,   927,   220,   937,   123,
+     337,   221,   222,   223,   224,   225,   226,   124,   125,   343,
+     344,   126,   691,   692,   693,   694,   695,   696,   156,   345,
+     479,   392,    94,   944,   480,   974,   938,    94,   945,    94,
+     975,   346,   175,   441,   442,   197,   347,   671,   678,   161,
+     679,   482,   209,   176,   361,   787,   177,   829,   788,   178,
+     830,   957,   227,   191,   958,   367,   202,   179,   376,    94,
+     377,   388,   249,   211,   390,   270,   391,   268,   584,   585,
+     586,   269,   401,   229,   402,   162,   271,   483,   403,    94,
+     243,    94,   406,   263,   410,   411,   304,   412,   281,   192,
+     414,   415,   203,   481,   417,   453,   858,   114,   115,   212,
+     912,   913,   914,   915,   416,   189,   422,   305,   198,   230,
+     594,   595,   596,   425,   427,   210,   428,   431,   432,   264,
+     433,   628,   443,   444,   282,   228,   629,   630,   631,   632,
+     633,   634,   635,   636,   637,   638,   445,   446,   447,   448,
+     450,   451,   452,   306,   243,   458,   454,   455,   456,   457,
+     459,   552,   553,   554,   460,   461,   462,   463,   464,   465,
+     466,   471,   467,   468,   469,   470,   472,   563,   473,   475,
+     899,   489,   900,   901,     1,     2,     3,     4,     5,     6,
+       7,     8,     9,    10,    11,    12,    13,    14,   490,   476,
+     491,   492,   493,   494,    94,   496,   497,   498,   499,   495,
+     501,   503,   505,   504,   506,   156,   639,   639,   509,   507,
+     647,   647,   510,   114,   115,   511,   512,   513,   514,   515,
+     517,   710,   724,   304,   518,   520,   161,   519,   479,   521,
+     522,   523,   480,   525,   529,   608,   530,   526,   527,   533,
+     534,   532,   712,   725,   305,   536,   535,   537,   538,   482,
+     539,   540,   544,   541,   624,   542,   543,   545,    94,   547,
+     549,   550,   162,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,   300,   301,   302,   303,   551,   713,   555,
+     306,   556,   557,   558,   559,   483,   560,    32,   564,   565,
+     566,   567,   568,   569,   835,   581,   570,   571,   572,   573,
+     574,   481,   577,   578,   579,   590,   580,   589,   623,   734,
+      94,   655,   615,   659,   663,   667,   582,   687,   736,   583,
+     740,   588,   591,   592,   593,   597,   598,   599,   600,   601,
+     602,   603,   604,   605,   606,   607,   609,   744,   610,   748,
+     750,   760,   611,   761,   762,   763,   764,   772,   622,   771,
+     775,   774,   777,   778,   780,   781,   813,   784,   791,   790,
+     792,   793,   794,   795,   796,   797,   802,   803,   804,   819,
+     816,   818,   822,   821,   824,   825,   837,   831,   827,   832,
+     833,   834,   840,   836,   838,   839,   841,   873,   874,   880,
+     881,   875,   876,   877,   878,   886,   882,   883,   884,   887,
+     888,   891,   917,   890,   898,   918,   977,   923,   942,   924,
+     939,   919,   920,   921,   932,   934,   935,   639,   936,   940,
+     175,   647,   947,   249,   270,   948,   268,   949,   953,   849,
+     269,   176,   951,   854,   177,   271,   971,   178,   972,   285,
+     850,   191,   973,   851,   263,   179,   852,   281,   976,   952,
+     864,   978,   677,   449,   853,   710,   627,   625,   561,   474,
+     724,   654,   842,   979,   868,   981,   477,   197,   869,   872,
+     209,   879,   531,   227,   871,   844,   712,   192,   902,   843,
+     264,   725,   903,   282,   946,   500,   865,   867,   202,   241,
+     846,   211,   845,   189,   229,   848,   847,   892,   893,   904,
+     524,   894,   863,   502,   885,   735,   528,   889,   895,   508,
+     896,   732,   713,   897,   626,   546,   950,   969,   911,   980,
+       0,     0,   516,     0,   203,     0,     0,   212,     0,   548,
+     230,     0,     0,     0,     0,   905,     0,     0,     0,     0,
+     198,     0,     0,   210,     0,     0,   228,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   838,     0,   837,     0,     0,     0,   839,
-       0,     0,     0,     0,     0,     0,   852,     0,     0,     0,
-       0,     0,     0,   840,     0,   927,     0,   841,     0,   842,
-       0,     0,     0,     0,     0,     0,   929,     0,     0,     0,
-       0,     0,     0,     0,   927,     0,     0,   909,     0,   928,
-       0,     0,     0,     0,     0,   929,     0,     0,     0,     0,
-       0,     0,   853,     0,     0,     0,     0,     0,   928,     0,
-       0,     0,     0,   851,     0,     0,     0,     0,     0,     0,
-       0,     0,   930,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   930
+       0,     0,     0,     0,     0,   849,     0,     0,     0,   854,
+       0,     0,     0,     0,     0,     0,   850,     0,     0,   851,
+       0,   933,   852,     0,   902,     0,   864,     0,   903,     0,
+     853,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   904,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   865,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   863,     0,
+       0,   905
   };
 
   const short int
   Dhcp6Parser::yycheck_[] =
   {
-      66,    69,    68,    69,    70,    71,    72,    69,    74,    75,
-      76,    77,   557,    68,    69,    70,    71,    72,    15,    74,
-      75,    69,    77,   554,   768,    69,    75,   553,     5,    75,
-       7,     7,     9,    75,   768,    38,   768,    10,     3,    77,
-     768,    12,    13,     8,    84,    85,    49,    16,     0,   768,
-       3,     7,   768,    56,    57,     8,    25,    84,    85,    68,
-      69,    70,    71,    72,     3,    74,    75,     3,    77,     8,
-       6,    69,    70,    71,    72,    31,    32,    33,    34,    64,
-      65,    66,    38,     7,     7,    56,    57,    56,    57,     7,
-       3,     3,    48,     3,    50,     8,     8,    73,     8,     7,
-      56,    57,    58,    59,    60,    61,    62,    63,    31,    32,
-      33,    34,   152,    36,   152,    38,    39,    73,    74,   123,
-     124,   125,   126,    77,    78,    81,    80,     3,    97,    98,
-      99,   100,     8,    56,    57,     3,    59,    60,     6,    62,
-      63,    87,    88,    89,    90,    91,    92,     3,     3,   152,
-      73,   155,     8,     8,   127,     7,   130,   901,    81,   133,
-     134,   135,     7,   136,   137,   138,     7,   901,    11,   901,
-       7,    14,    15,   901,     7,   152,   153,   154,   155,   152,
-       7,   152,   901,   152,     3,   901,   152,     6,    31,    32,
-      33,    34,    35,    36,    37,    38,   152,     3,    16,    94,
-      95,    96,     8,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    56,    57,     3,     3,    38,     3,     6,
-       8,    39,    37,     8,    67,    68,    69,    70,    71,   152,
-      51,    52,    53,    54,    55,    56,    57,   768,    56,    57,
-      83,    16,     3,    86,     7,   776,     3,     8,   774,   794,
-      93,     8,     3,   120,   121,    38,    39,     8,   101,   102,
-       3,     7,   105,   329,    39,     8,    41,    42,     7,     6,
-      45,    46,    47,    56,    57,     3,     3,     3,     8,     6,
-       8,    56,    57,    39,    40,    41,    42,    43,    44,    72,
-     497,   498,   499,   359,     3,   361,    56,    57,    39,     8,
-      56,    57,     4,     3,   359,   373,   361,   373,     8,   152,
-     376,   373,     3,     8,     4,    56,    57,   383,   373,   361,
-       4,   376,   319,   320,     4,   373,     4,   393,   383,   373,
-       3,   152,     4,     4,   152,     8,     3,   403,   393,     4,
-       3,     8,   408,   103,   104,     8,     3,     3,   403,     3,
-     359,     8,   361,   408,     8,    17,    18,    19,    20,   408,
-       4,   427,   408,   361,   373,     4,   408,   376,    38,   152,
-     901,     4,   427,     4,   383,   373,     4,   152,   376,     4,
-       4,     8,     4,     3,   393,   383,    56,    57,   129,     8,
-     131,   132,   152,     4,   403,   393,   152,     4,     8,   408,
-       3,    71,     4,     4,     4,    75,    76,    77,    78,    79,
-      80,   152,     4,     4,     4,     4,   152,     4,   427,   139,
-     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
-     150,   151,     4,     4,     4,     4,     4,   434,   435,   436,
-       4,     4,   153,   153,     4,   153,   153,   153,     4,     4,
-       4,     4,     4,   450,     4,     4,     4,     4,     4,     4,
-       4,   153,     4,     4,     4,   153,   155,     4,     4,     4,
-       4,     4,   155,     4,     4,   541,   542,   543,     4,     4,
-       4,     4,   152,     4,   153,   153,   541,   542,   543,   153,
-       4,   557,   558,   559,     4,     4,     4,     4,   564,     4,
-     542,   543,   557,   558,   559,     4,     4,     4,   153,   564,
-       4,     4,     4,   155,     4,   155,     4,    56,    57,   155,
-       4,   518,   564,   155,     4,     4,     4,   153,     4,     4,
-     153,     4,   541,   542,   543,   153,     4,     4,   535,   155,
-     155,   155,     7,     7,     7,     7,     7,     5,   557,     5,
-     559,     5,     7,     5,     5,   564,     5,     5,     5,     5,
-     153,   155,     7,     7,     7,     7,   564,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
-     119,     5,     8,     3,     5,   152,     5,   152,     5,     7,
-     152,   152,     7,   152,   152,   152,     7,     7,     7,     7,
-       4,   152,     7,     4,     7,     7,     4,     4,    82,   152,
-     122,     4,     4,   152,   152,     6,     3,   128,     6,     3,
-     152,     6,     3,   152,   152,   152,     6,     3,     6,     6,
-     152,     3,   152,   152,   152,   152,   152,   152,     4,   152,
-       4,     4,     4,     4,     4,     4,     4,     4,   152,   152,
-       6,     3,     6,     3,     3,     6,   152,     4,     4,     4,
-       8,     4,     4,     4,   153,     4,     4,   153,   155,     4,
-     153,   153,   153,     4,     4,     4,   153,     3,     6,     4,
-       7,   153,   153,   153,   153,     5,     8,   153,     4,     8,
-     756,   759,   152,   759,     8,   152,   762,   759,     4,   765,
-     768,   756,   768,   153,   759,     4,   768,   762,     5,     7,
-     765,   759,   778,   768,   756,   759,   765,   152,   152,   765,
-     768,   152,   152,   765,   768,   152,   768,   152,   794,   152,
-     152,     4,     4,   799,     4,     4,   449,   153,   552,   794,
-     806,   155,   536,   809,   799,   152,   812,   756,   329,   355,
-     759,   806,   541,   762,   809,   359,   765,   812,   153,   768,
-     756,   759,   543,   771,   774,   780,   778,   787,   411,   761,
-     768,   759,   901,    73,   373,   770,   762,   764,   767,   408,
-     808,   765,   403,   806,   814,   794,   811,   809,   376,   794,
-     564,   812,   799,   559,   742,   393,   922,   806,   383,   940,
-     809,   952,   969,   812,    -1,    -1,    -1,    -1,   806,    -1,
-     427,   809,    -1,    -1,   812,    -1,    -1,    -1,    -1,    -1,
+      70,    16,    72,    73,    74,    75,    76,    79,    78,    79,
+      80,    81,   571,    79,    73,   567,   779,    73,    79,   568,
+      73,   779,   779,    72,    73,    74,    75,    76,    73,    78,
+      79,     5,    81,     7,     7,     9,    38,   779,   779,   779,
+       3,    77,     0,    10,   153,     8,    12,    13,     7,    51,
+      52,    53,    54,    55,    56,    57,     7,    84,    85,    72,
+      73,    74,    75,    76,     3,    78,    79,     7,    81,     8,
+       3,   123,   124,   125,   126,     8,    73,    74,    75,    76,
+      31,    32,    33,    34,    38,    84,    85,    38,     3,     7,
+      56,    57,    16,     8,    37,    49,     7,    48,     7,    50,
+      73,    25,    56,    57,   156,    56,    57,    58,    59,    60,
+      61,    62,    63,    31,    32,    33,    34,   153,    36,     7,
+      38,    39,    73,    74,   130,     7,   153,   133,   134,   135,
+      81,     3,    56,    57,     3,     3,     8,     6,    56,    57,
+       8,    59,    60,     3,    62,    63,     7,     3,     8,     3,
+       7,   153,     8,     3,     8,    73,     3,   128,     8,     7,
+     127,     8,   925,    81,     7,    16,     7,   925,   925,   136,
+     137,   138,     3,    97,    98,    99,   100,     8,     7,   153,
+     154,   155,   156,   925,   925,   925,   153,   153,    39,     7,
+      41,    42,    38,    39,    45,    46,    47,    11,     3,   153,
+      14,    15,   153,     8,     3,    56,    57,   120,   121,     8,
+      56,    57,    56,    57,    94,    95,    96,    31,    32,    33,
+      34,    35,    36,    37,    38,     3,    72,     3,     6,   153,
+     779,     3,     8,   785,     3,   153,     8,     3,   787,     8,
+       3,     6,    56,    57,    38,     8,   805,    39,    40,    41,
+      42,    43,    44,    67,    68,    69,    70,    71,     4,   103,
+     104,     3,    56,    57,    56,    57,     8,     8,   338,    83,
+       3,     3,    86,     3,     3,     8,     8,    71,     8,    93,
+       4,    75,    76,    77,    78,    79,    80,   101,   102,     4,
+       4,   105,    87,    88,    89,    90,    91,    92,   368,     4,
+     370,     3,   153,     3,   370,     3,     8,   153,     8,   153,
+       8,     4,   382,   328,   329,   385,     4,    77,    78,   368,
+      80,   370,   392,   382,     4,     3,   382,     3,     6,   382,
+       6,     3,   402,   382,     6,     4,   385,   382,     4,   153,
+       4,     4,   412,   392,     4,   417,     4,   417,    64,    65,
+      66,   417,     8,   402,     3,   368,   417,   370,     8,   153,
+      39,   153,     4,   412,     4,     8,   436,     3,   417,   382,
+       4,     4,   385,   370,     3,   154,   925,    56,    57,   392,
+      17,    18,    19,    20,     8,   382,     4,   436,   385,   402,
+     509,   510,   511,     4,     4,   392,     4,     4,     4,   412,
+       4,    16,   153,     4,   417,   402,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,     4,     4,     4,     4,
+       4,     4,     4,   436,    39,     4,   154,   154,   154,   154,
+       4,   446,   447,   448,     4,     4,     4,     4,     4,     4,
+       4,   154,     4,     4,     4,     4,     4,   462,     4,     4,
+     129,     4,   131,   132,   139,   140,   141,   142,   143,   144,
+     145,   146,   147,   148,   149,   150,   151,   152,     4,   156,
+       4,     4,     4,   154,   153,     4,     4,     4,     4,   156,
+       4,     4,     4,   154,   154,   555,   556,   557,     4,   154,
+     556,   557,     4,    56,    57,     4,     4,     4,     4,     4,
+       4,   571,   572,   573,     4,     4,   555,   154,   578,     4,
+       4,   156,   578,     4,     4,   530,     4,   156,   156,     4,
+       4,   156,   571,   572,   573,     4,   154,   154,   154,   578,
+       4,     4,     4,   156,   549,   156,   156,     4,   153,     4,
+       4,     7,   555,   106,   107,   108,   109,   110,   111,   112,
+     113,   114,   115,   116,   117,   118,   119,     7,   571,     7,
+     573,     7,     7,     5,     5,   578,     5,     7,     5,     5,
+       5,     5,     5,     5,   154,   153,     7,     7,     7,     7,
+       5,   578,     8,     3,     5,     7,     5,     5,     5,     4,
+     153,     7,   122,     7,     7,     7,   153,     7,     7,   153,
+       7,   153,   153,   153,   153,   153,   153,   153,   153,   153,
+     153,   153,   153,   153,   153,   153,   153,     7,   153,    82,
+       7,     4,   153,     4,     4,     4,     4,     3,   153,     6,
+       3,     6,     6,     3,     6,     3,   153,     6,     3,     6,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     3,
+     153,     6,     3,     6,     6,     3,   154,     4,     8,     4,
+       4,     4,     4,   156,   156,   154,     4,   154,   154,     4,
+       4,   154,   154,   154,   154,     4,   154,   154,   154,     4,
+       4,     3,   153,     6,     4,   153,   156,     8,     4,     8,
+       8,   153,   153,   153,   153,   153,   153,   767,   153,   153,
+     770,   767,     4,   773,   776,   154,   776,     4,     7,   779,
+     776,   770,     5,   779,   770,   776,     4,   770,     4,   789,
+     779,   770,     4,   779,   773,   770,   779,   776,     4,   153,
+     779,   154,   566,   338,   779,   805,   555,   550,   461,   364,
+     810,   557,   767,   154,   782,   153,   368,   817,   785,   791,
+     820,   798,   420,   823,   789,   772,   805,   770,   828,   770,
+     773,   810,   828,   776,   925,   382,   779,   781,   817,    77,
+     775,   820,   773,   770,   823,   778,   776,   817,   819,   828,
+     412,   820,   779,   385,   805,   578,   417,   810,   822,   392,
+     823,   573,   805,   825,   551,   436,   944,   957,   829,   974,
+      -1,    -1,   402,    -1,   817,    -1,    -1,   820,    -1,   439,
+     823,    -1,    -1,    -1,    -1,   828,    -1,    -1,    -1,    -1,
+     817,    -1,    -1,   820,    -1,    -1,   823,    -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,   901,    -1,   901,    -1,    -1,    -1,   901,
-      -1,    -1,    -1,    -1,    -1,    -1,   901,    -1,    -1,    -1,
-      -1,    -1,    -1,   901,    -1,   921,    -1,   901,    -1,   901,
-      -1,    -1,    -1,    -1,    -1,    -1,   921,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   940,    -1,    -1,   874,    -1,   921,
-      -1,    -1,    -1,    -1,    -1,   940,    -1,    -1,    -1,    -1,
-      -1,    -1,   901,    -1,    -1,    -1,    -1,    -1,   940,    -1,
-      -1,    -1,    -1,   901,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   921,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   925,    -1,    -1,    -1,   925,
+      -1,    -1,    -1,    -1,    -1,    -1,   925,    -1,    -1,   925,
+      -1,   886,   925,    -1,   944,    -1,   925,    -1,   944,    -1,
+     925,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   944,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   940
+      -1,    -1,   925,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   925,    -1,
+      -1,   944
   };
 
   const unsigned short int
   Dhcp6Parser::yystos_[] =
   {
        0,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   151,   157,   158,   159,   160,   161,   162,
-     163,   164,   165,   166,   167,   168,   169,   170,     0,     5,
-       7,     9,   152,   153,   154,   155,   171,   172,   173,   178,
-       7,   187,     7,   193,     7,   204,     7,   281,     7,   356,
-       7,   372,     7,   389,     7,   308,     7,   314,     7,   338,
-       7,   257,     7,   448,   179,   174,   188,   194,   205,   282,
-     357,   373,   390,   309,   315,   339,   258,   449,   171,   180,
-     181,   152,   176,   177,    10,   127,   136,   137,   138,   152,
-     186,   189,   190,   191,   475,   477,   479,   481,    11,    14,
-      15,    31,    32,    33,    34,    35,    36,    37,    38,    56,
-      57,    67,    68,    69,    70,    71,    83,    86,    93,   101,
-     102,   105,   186,   195,   196,   197,   198,   199,   200,   201,
-     202,   211,   213,   237,   243,   249,   251,   265,   275,   298,
-     306,   332,   362,   364,   412,   422,   434,   435,   446,    12,
-      13,   186,   206,   207,   208,   210,   362,   364,     7,    48,
-      50,    58,    59,    60,    61,    62,    63,    73,    74,    81,
-     186,   197,   198,   199,   200,   283,   284,   285,   287,   289,
-     291,   293,   296,   297,   332,   350,   362,   364,   366,   383,
-     408,    49,   186,   332,   358,   359,   360,   362,   364,    51,
-      52,    53,    54,    55,   186,   332,   362,   364,   374,   375,
-     376,   378,   379,   381,   382,    71,    75,    76,    77,    78,
-      79,    80,   186,   332,   362,   364,   391,   392,   393,   394,
-     396,   398,   400,   402,   404,   406,   306,    16,    39,    41,
-      42,    45,    46,    47,   186,   227,   316,   317,   318,   319,
-     320,   321,   322,   324,   326,   328,   329,   331,   362,   364,
-      40,    43,    44,   186,   227,   320,   326,   340,   341,   342,
-     343,   344,   346,   347,   348,   349,   362,   364,    84,    85,
-     186,   259,   260,   261,   263,   106,   107,   108,   109,   110,
-     111,   112,   113,   114,   115,   116,   117,   118,   119,   186,
-     362,   364,   450,   451,   452,   453,   455,   457,   458,   460,
-     461,   462,   465,   467,   468,   469,   470,   473,     6,     3,
-       4,     8,     3,   192,   482,   476,   478,   480,     4,     3,
-       8,   203,   212,   214,     4,     4,     4,     4,     4,   276,
-     307,   333,   363,   365,   299,   238,   250,   244,   413,   252,
-     266,   423,     4,   436,   447,     3,     8,   209,     4,     3,
-       8,   415,   351,   367,   286,   288,   290,     4,     4,   294,
-     292,   384,   409,     3,     8,   361,     3,     8,   377,     4,
-     380,     4,     4,     3,     8,   407,   395,   397,   399,   401,
-     403,   405,     8,     3,     8,   323,   228,     4,   327,   325,
-     330,     4,     8,     3,   345,     4,     4,     8,     3,   262,
-     264,     3,     8,     4,   454,   456,     4,   459,     4,     4,
-     463,   466,     4,     4,     4,   471,   474,     3,     8,   171,
-     171,   152,     4,     4,     4,     4,     4,   190,     4,     4,
-       4,   153,   153,   153,   153,   153,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,   153,
-       4,     4,   196,     4,   155,   207,    72,   186,   227,   332,
-     362,   364,   416,   417,   418,   419,   420,     4,     4,     4,
-       4,     4,   153,   155,     4,     4,     4,     4,   284,     4,
-     359,     4,   153,     4,   153,   153,   375,     4,     4,     4,
-       4,     4,     4,     4,   393,     4,     4,   153,     4,     4,
-       4,   155,   318,     4,   155,   155,   342,     4,     4,   260,
-     155,     4,     4,   153,     4,   153,   153,     4,     4,   155,
-     155,   155,     4,     4,   451,     4,     7,     7,   171,   171,
-     171,     7,     7,     7,     5,     5,     5,   173,   175,   171,
-       5,     5,     5,     5,     5,     5,     7,     7,     7,     7,
-       5,   182,   421,     8,     3,     5,     5,   152,   152,   152,
-      64,    65,    66,   295,   152,     5,     7,   152,   152,   152,
-     182,   182,   182,   152,   152,   152,   152,   152,   152,   152,
-     152,   152,   152,   152,   171,   152,   152,   152,   120,   121,
-     464,   122,   123,   124,   125,   126,   155,   472,   152,   171,
-     195,   128,   483,   484,   485,   206,    16,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,   186,   215,   216,
-     217,   220,   222,   224,   226,   227,   229,   230,   231,   232,
-     233,   235,   362,   364,   215,     7,   277,   278,   279,     7,
-     310,   311,   312,     7,   334,   335,   336,     7,   300,   301,
-     302,    77,   152,   239,   240,   241,   242,   180,    78,    80,
-     241,   245,   246,   247,   248,   291,   414,     7,   253,   254,
-     255,    87,    88,    89,    90,    91,    92,   267,   268,   269,
-     270,   271,   272,   273,   274,    16,    97,    98,    99,   100,
-     186,   229,   362,   364,   424,   425,   426,   429,   430,   432,
-     433,    57,   103,   104,   186,   362,   437,   438,   439,   441,
-     443,   444,   450,   183,     4,   418,     7,   352,   353,   354,
-       7,   368,   369,   370,     7,   385,   386,   387,    82,   410,
-       8,   486,     3,     8,     8,   218,   221,   223,   225,     4,
-       4,     4,     4,     4,   234,   236,     3,     8,     8,   280,
-       6,     3,   313,     6,     3,   337,     6,     3,   303,     6,
-       3,     3,     6,     6,     3,     6,     3,     6,   256,     6,
-       3,     4,     4,     4,     4,     4,     4,     3,     8,   427,
-     431,     4,     4,     4,     3,     8,   445,   440,   442,     3,
-       8,     8,   152,   184,   185,   152,   355,     6,     3,   371,
-       6,     3,   388,     6,     3,   411,     8,     4,   484,     4,
-       4,     4,     4,   153,   155,   153,   155,   153,     4,     4,
-     216,   283,   279,   316,   312,   340,   336,   186,   197,   198,
-     199,   200,   227,   275,   287,   289,   291,   293,   297,   304,
-     305,   332,   362,   364,   408,   302,   240,   246,   291,   259,
-     255,   153,   153,   153,   153,   153,   153,   268,     4,     4,
-     153,   153,   153,   425,     4,     4,     4,   438,     6,     3,
-     358,   354,   374,   370,   391,   387,     4,     5,    17,    18,
-      19,    20,   219,   152,   152,   152,   152,   152,     8,     8,
-       8,     3,     8,     8,    94,    95,    96,   428,   152,   171,
-     152,   152,   152,     8,     8,     8,   152,     7,   487,   488,
-     305,   489,     3,     6,   129,   131,   132,   186,   227,   362,
-     364,   490,   491,   492,   493,   495,   488,   496,     4,   494,
-       3,     8,     4,   153,     4,   491,     5,   152,     7,   497,
-     498,   499,     3,     6,   130,   133,   134,   135,   500,   501,
-     502,   504,   505,   506,   498,   503,     4,     4,     4,     3,
-       8,     4,   155,   153,   153,   501,   152
+     148,   149,   150,   151,   152,   158,   159,   160,   161,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
+       0,     5,     7,     9,   153,   154,   155,   156,   173,   174,
+     175,   180,     7,   189,     7,   195,     7,   206,     7,   283,
+       7,   358,     7,   374,     7,   391,     7,   310,     7,   316,
+       7,   340,     7,   259,     7,   450,     7,   485,   181,   176,
+     190,   196,   207,   284,   359,   375,   392,   311,   317,   341,
+     260,   451,   486,   173,   182,   183,   153,   178,   179,    10,
+     127,   136,   137,   138,   153,   188,   191,   192,   193,   477,
+     479,   481,   483,    11,    14,    15,    31,    32,    33,    34,
+      35,    36,    37,    38,    56,    57,    67,    68,    69,    70,
+      71,    83,    86,    93,   101,   102,   105,   188,   197,   198,
+     199,   200,   201,   202,   203,   204,   213,   215,   239,   245,
+     251,   253,   267,   277,   300,   308,   334,   364,   366,   414,
+     424,   436,   437,   448,    12,    13,   188,   208,   209,   210,
+     212,   364,   366,     7,    48,    50,    58,    59,    60,    61,
+      62,    63,    73,    74,    81,   188,   199,   200,   201,   202,
+     285,   286,   287,   289,   291,   293,   295,   298,   299,   334,
+     352,   364,   366,   368,   385,   410,    49,   188,   334,   360,
+     361,   362,   364,   366,    51,    52,    53,    54,    55,   188,
+     334,   364,   366,   376,   377,   378,   380,   381,   383,   384,
+      71,    75,    76,    77,    78,    79,    80,   188,   334,   364,
+     366,   393,   394,   395,   396,   398,   400,   402,   404,   406,
+     408,   308,    16,    39,    41,    42,    45,    46,    47,   188,
+     229,   318,   319,   320,   321,   322,   323,   324,   326,   328,
+     330,   331,   333,   364,   366,    40,    43,    44,   188,   229,
+     322,   328,   342,   343,   344,   345,   346,   348,   349,   350,
+     351,   364,   366,    84,    85,   188,   261,   262,   263,   265,
+     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
+     116,   117,   118,   119,   188,   364,   366,   452,   453,   454,
+     455,   457,   459,   460,   462,   463,   464,   467,   469,   470,
+     471,   472,   475,   128,   487,   488,   489,     6,     3,     4,
+       8,     3,   194,   484,   478,   480,   482,     4,     3,     8,
+     205,   214,   216,     4,     4,     4,     4,     4,   278,   309,
+     335,   365,   367,   301,   240,   252,   246,   415,   254,   268,
+     425,     4,   438,   449,     3,     8,   211,     4,     3,     8,
+     417,   353,   369,   288,   290,   292,     4,     4,   296,   294,
+     386,   411,     3,     8,   363,     3,     8,   379,     4,   382,
+       4,     4,     3,     8,   409,   397,   399,   401,   403,   405,
+     407,     8,     3,     8,   325,   230,     4,   329,   327,   332,
+       4,     8,     3,   347,     4,     4,     8,     3,   264,   266,
+       3,     8,     4,   456,   458,     4,   461,     4,     4,   465,
+     468,     4,     4,     4,   473,   476,     3,     8,   490,     3,
+       8,   173,   173,   153,     4,     4,     4,     4,     4,   192,
+       4,     4,     4,   154,   154,   154,   154,   154,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,   154,     4,     4,   198,     4,   156,   209,    72,   188,
+     229,   334,   364,   366,   418,   419,   420,   421,   422,     4,
+       4,     4,     4,     4,   154,   156,     4,     4,     4,     4,
+     286,     4,   361,     4,   154,     4,   154,   154,   377,     4,
+       4,     4,     4,     4,     4,     4,   395,     4,     4,   154,
+       4,     4,     4,   156,   320,     4,   156,   156,   344,     4,
+       4,   262,   156,     4,     4,   154,     4,   154,   154,     4,
+       4,   156,   156,   156,     4,     4,   453,     4,   488,     4,
+       7,     7,   173,   173,   173,     7,     7,     7,     5,     5,
+       5,   175,   177,   173,     5,     5,     5,     5,     5,     5,
+       7,     7,     7,     7,     5,   184,   423,     8,     3,     5,
+       5,   153,   153,   153,    64,    65,    66,   297,   153,     5,
+       7,   153,   153,   153,   184,   184,   184,   153,   153,   153,
+     153,   153,   153,   153,   153,   153,   153,   153,   173,   153,
+     153,   153,   120,   121,   466,   122,   123,   124,   125,   126,
+     156,   474,   153,     5,   173,   197,   487,   208,    16,    21,
+      22,    23,    24,    25,    26,    27,    28,    29,    30,   188,
+     217,   218,   219,   222,   224,   226,   228,   229,   231,   232,
+     233,   234,   235,   237,   217,     7,   279,   280,   281,     7,
+     312,   313,   314,     7,   336,   337,   338,     7,   302,   303,
+     304,    77,   153,   241,   242,   243,   244,   182,    78,    80,
+     243,   247,   248,   249,   250,   293,   416,     7,   255,   256,
+     257,    87,    88,    89,    90,    91,    92,   269,   270,   271,
+     272,   273,   274,   275,   276,    16,    97,    98,    99,   100,
+     188,   231,   364,   366,   426,   427,   428,   431,   432,   434,
+     435,    57,   103,   104,   188,   364,   439,   440,   441,   443,
+     445,   446,   452,   185,     4,   420,     7,   354,   355,   356,
+       7,   370,   371,   372,     7,   387,   388,   389,    82,   412,
+       7,   491,   492,     8,     8,     8,   220,   223,   225,   227,
+       4,     4,     4,     4,     4,   236,   238,     3,     8,     8,
+     282,     6,     3,   315,     6,     3,   339,     6,     3,   305,
+       6,     3,     3,     6,     6,     3,     6,     3,     6,   258,
+       6,     3,     4,     4,     4,     4,     4,     4,     3,     8,
+     429,   433,     4,     4,     4,     3,     8,   447,   442,   444,
+       3,     8,     8,   153,   186,   187,   153,   357,     6,     3,
+     373,     6,     3,   390,     6,     3,   413,     8,   493,     3,
+       6,     4,     4,     4,     4,   154,   156,   154,   156,   154,
+       4,     4,   218,   285,   281,   318,   314,   342,   338,   188,
+     199,   200,   201,   202,   229,   277,   289,   291,   293,   295,
+     299,   306,   307,   334,   364,   366,   410,   304,   242,   248,
+     293,   261,   257,   154,   154,   154,   154,   154,   154,   270,
+       4,     4,   154,   154,   154,   427,     4,     4,     4,   440,
+       6,     3,   360,   356,   376,   372,   393,   389,     4,   129,
+     131,   132,   188,   229,   364,   366,   494,   495,   496,   497,
+     499,   492,    17,    18,    19,    20,   221,   153,   153,   153,
+     153,   153,     8,     8,     8,     3,     8,     8,    94,    95,
+      96,   430,   153,   173,   153,   153,   153,     8,     8,     8,
+     153,   500,     4,   498,     3,     8,   307,     4,   154,     4,
+     495,     5,   153,     7,   501,   502,   503,     3,     6,   130,
+     133,   134,   135,   504,   505,   506,   508,   509,   510,   502,
+     507,     4,     4,     4,     3,     8,     4,   156,   154,   154,
+     505,   153
   };
 
   const unsigned short int
   Dhcp6Parser::yyr1_[] =
   {
-       0,   156,   158,   157,   159,   157,   160,   157,   161,   157,
-     162,   157,   163,   157,   164,   157,   165,   157,   166,   157,
-     167,   157,   168,   157,   169,   157,   170,   157,   171,   171,
-     171,   171,   171,   171,   171,   172,   174,   173,   175,   176,
-     176,   177,   177,   179,   178,   180,   180,   181,   181,   183,
-     182,   184,   184,   185,   185,   186,   188,   187,   189,   189,
-     190,   190,   190,   190,   190,   190,   192,   191,   194,   193,
-     195,   195,   196,   196,   196,   196,   196,   196,   196,   196,
-     196,   196,   196,   196,   196,   196,   196,   196,   196,   196,
-     196,   196,   196,   196,   196,   196,   196,   197,   198,   199,
-     200,   201,   203,   202,   205,   204,   206,   206,   207,   207,
-     207,   207,   207,   209,   208,   210,   212,   211,   214,   213,
-     215,   215,   216,   216,   216,   216,   216,   216,   216,   216,
-     216,   216,   216,   216,   216,   216,   216,   218,   217,   219,
-     219,   219,   219,   221,   220,   223,   222,   225,   224,   226,
-     228,   227,   229,   230,   231,   232,   234,   233,   236,   235,
-     238,   237,   239,   239,   240,   240,   241,   242,   244,   243,
-     245,   245,   246,   246,   246,   247,   248,   250,   249,   252,
-     251,   253,   253,   254,   254,   256,   255,   258,   257,   259,
-     259,   259,   260,   260,   262,   261,   264,   263,   266,   265,
-     267,   267,   268,   268,   268,   268,   268,   268,   269,   270,
-     271,   272,   273,   274,   276,   275,   277,   277,   278,   278,
-     280,   279,   282,   281,   283,   283,   284,   284,   284,   284,
-     284,   284,   284,   284,   284,   284,   284,   284,   284,   284,
-     284,   284,   284,   284,   284,   286,   285,   288,   287,   290,
-     289,   292,   291,   294,   293,   295,   295,   295,   296,   297,
-     299,   298,   300,   300,   301,   301,   303,   302,   304,   304,
-     305,   305,   305,   305,   305,   305,   305,   305,   305,   305,
-     305,   305,   305,   305,   305,   305,   307,   306,   309,   308,
-     310,   310,   311,   311,   313,   312,   315,   314,   316,   316,
-     317,   317,   318,   318,   318,   318,   318,   318,   318,   318,
-     318,   318,   319,   320,   321,   323,   322,   325,   324,   327,
-     326,   328,   330,   329,   331,   333,   332,   334,   334,   335,
-     335,   337,   336,   339,   338,   340,   340,   341,   341,   342,
-     342,   342,   342,   342,   342,   342,   342,   342,   343,   345,
-     344,   346,   347,   348,   349,   351,   350,   352,   352,   353,
-     353,   355,   354,   357,   356,   358,   358,   359,   359,   359,
-     359,   359,   361,   360,   363,   362,   365,   364,   367,   366,
-     368,   368,   369,   369,   371,   370,   373,   372,   374,   374,
-     375,   375,   375,   375,   375,   375,   375,   375,   375,   377,
-     376,   378,   380,   379,   381,   382,   384,   383,   385,   385,
-     386,   386,   388,   387,   390,   389,   391,   391,   392,   392,
-     393,   393,   393,   393,   393,   393,   393,   393,   393,   393,
-     393,   395,   394,   397,   396,   399,   398,   401,   400,   403,
-     402,   405,   404,   407,   406,   409,   408,   411,   410,   413,
-     412,   414,   414,   415,   291,   416,   416,   417,   417,   418,
-     418,   418,   418,   418,   418,   419,   421,   420,   423,   422,
-     424,   424,   425,   425,   425,   425,   425,   425,   425,   425,
-     425,   427,   426,   428,   428,   428,   429,   431,   430,   432,
-     433,   434,   436,   435,   437,   437,   438,   438,   438,   438,
-     438,   440,   439,   442,   441,   443,   445,   444,   447,   446,
-     449,   448,   450,   450,   451,   451,   451,   451,   451,   451,
-     451,   451,   451,   451,   451,   451,   451,   451,   451,   451,
-     451,   452,   454,   453,   456,   455,   457,   459,   458,   460,
-     461,   463,   462,   464,   464,   466,   465,   467,   468,   469,
-     471,   470,   472,   472,   472,   472,   472,   474,   473,   476,
-     475,   478,   477,   480,   479,   482,   481,   483,   483,   484,
-     486,   485,   487,   487,   489,   488,   490,   490,   491,   491,
-     491,   491,   491,   491,   491,   492,   494,   493,   496,   495,
-     497,   497,   499,   498,   500,   500,   501,   501,   501,   501,
-     503,   502,   504,   505,   506
+       0,   157,   159,   158,   160,   158,   161,   158,   162,   158,
+     163,   158,   164,   158,   165,   158,   166,   158,   167,   158,
+     168,   158,   169,   158,   170,   158,   171,   158,   172,   158,
+     173,   173,   173,   173,   173,   173,   173,   174,   176,   175,
+     177,   178,   178,   179,   179,   181,   180,   182,   182,   183,
+     183,   185,   184,   186,   186,   187,   187,   188,   190,   189,
+     191,   191,   192,   192,   192,   192,   192,   192,   194,   193,
+     196,   195,   197,   197,   198,   198,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   198,
+     198,   198,   198,   198,   198,   198,   198,   198,   198,   199,
+     200,   201,   202,   203,   205,   204,   207,   206,   208,   208,
+     209,   209,   209,   209,   209,   211,   210,   212,   214,   213,
+     216,   215,   217,   217,   218,   218,   218,   218,   218,   218,
+     218,   218,   218,   218,   218,   218,   218,   220,   219,   221,
+     221,   221,   221,   223,   222,   225,   224,   227,   226,   228,
+     230,   229,   231,   232,   233,   234,   236,   235,   238,   237,
+     240,   239,   241,   241,   242,   242,   243,   244,   246,   245,
+     247,   247,   248,   248,   248,   249,   250,   252,   251,   254,
+     253,   255,   255,   256,   256,   258,   257,   260,   259,   261,
+     261,   261,   262,   262,   264,   263,   266,   265,   268,   267,
+     269,   269,   270,   270,   270,   270,   270,   270,   271,   272,
+     273,   274,   275,   276,   278,   277,   279,   279,   280,   280,
+     282,   281,   284,   283,   285,   285,   286,   286,   286,   286,
+     286,   286,   286,   286,   286,   286,   286,   286,   286,   286,
+     286,   286,   286,   286,   286,   288,   287,   290,   289,   292,
+     291,   294,   293,   296,   295,   297,   297,   297,   298,   299,
+     301,   300,   302,   302,   303,   303,   305,   304,   306,   306,
+     307,   307,   307,   307,   307,   307,   307,   307,   307,   307,
+     307,   307,   307,   307,   307,   307,   309,   308,   311,   310,
+     312,   312,   313,   313,   315,   314,   317,   316,   318,   318,
+     319,   319,   320,   320,   320,   320,   320,   320,   320,   320,
+     320,   320,   321,   322,   323,   325,   324,   327,   326,   329,
+     328,   330,   332,   331,   333,   335,   334,   336,   336,   337,
+     337,   339,   338,   341,   340,   342,   342,   343,   343,   344,
+     344,   344,   344,   344,   344,   344,   344,   344,   345,   347,
+     346,   348,   349,   350,   351,   353,   352,   354,   354,   355,
+     355,   357,   356,   359,   358,   360,   360,   361,   361,   361,
+     361,   361,   363,   362,   365,   364,   367,   366,   369,   368,
+     370,   370,   371,   371,   373,   372,   375,   374,   376,   376,
+     377,   377,   377,   377,   377,   377,   377,   377,   377,   379,
+     378,   380,   382,   381,   383,   384,   386,   385,   387,   387,
+     388,   388,   390,   389,   392,   391,   393,   393,   394,   394,
+     395,   395,   395,   395,   395,   395,   395,   395,   395,   395,
+     395,   397,   396,   399,   398,   401,   400,   403,   402,   405,
+     404,   407,   406,   409,   408,   411,   410,   413,   412,   415,
+     414,   416,   416,   417,   293,   418,   418,   419,   419,   420,
+     420,   420,   420,   420,   420,   421,   423,   422,   425,   424,
+     426,   426,   427,   427,   427,   427,   427,   427,   427,   427,
+     427,   429,   428,   430,   430,   430,   431,   433,   432,   434,
+     435,   436,   438,   437,   439,   439,   440,   440,   440,   440,
+     440,   442,   441,   444,   443,   445,   447,   446,   449,   448,
+     451,   450,   452,   452,   453,   453,   453,   453,   453,   453,
+     453,   453,   453,   453,   453,   453,   453,   453,   453,   453,
+     453,   454,   456,   455,   458,   457,   459,   461,   460,   462,
+     463,   465,   464,   466,   466,   468,   467,   469,   470,   471,
+     473,   472,   474,   474,   474,   474,   474,   476,   475,   478,
+     477,   480,   479,   482,   481,   484,   483,   486,   485,   487,
+     487,   488,   490,   489,   491,   491,   493,   492,   494,   494,
+     495,   495,   495,   495,   495,   495,   495,   496,   498,   497,
+     500,   499,   501,   501,   503,   502,   504,   504,   505,   505,
+     505,   505,   507,   506,   508,   509,   510
   };
 
   const unsigned char
@@ -4248,17 +4275,17 @@ namespace isc { namespace dhcp {
   {
        0,     2,     0,     3,     0,     3,     0,     3,     0,     3,
        0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
-       0,     3,     0,     3,     0,     3,     0,     3,     1,     1,
-       1,     1,     1,     1,     1,     1,     0,     4,     1,     0,
-       1,     3,     5,     0,     4,     0,     1,     1,     3,     0,
-       4,     0,     1,     1,     3,     2,     0,     4,     1,     3,
-       1,     1,     1,     1,     1,     1,     0,     6,     0,     4,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       0,     3,     0,     3,     0,     3,     0,     3,     0,     3,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
+       1,     0,     1,     3,     5,     0,     4,     0,     1,     1,
+       3,     0,     4,     0,     1,     1,     3,     2,     0,     4,
+       1,     3,     1,     1,     1,     1,     1,     1,     0,     6,
+       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     3,     3,     3,
-       3,     3,     0,     6,     0,     4,     1,     3,     1,     1,
-       1,     1,     1,     0,     4,     3,     0,     6,     0,     6,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
+       3,     3,     3,     3,     0,     6,     0,     4,     1,     3,
+       1,     1,     1,     1,     1,     0,     4,     3,     0,     6,
+       0,     6,     1,     3,     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,     0,     4,     0,     4,
@@ -4302,11 +4329,11 @@ namespace isc { namespace dhcp {
        1,     3,     0,     4,     0,     4,     3,     0,     4,     3,
        3,     0,     4,     1,     1,     0,     4,     3,     3,     3,
        0,     4,     1,     1,     1,     1,     1,     0,     4,     0,
-       4,     0,     4,     0,     4,     0,     6,     1,     3,     1,
+       4,     0,     4,     0,     4,     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,     1,     1,     1,     3,     0,     4,     0,     6,
-       1,     3,     0,     4,     1,     3,     1,     1,     1,     1,
-       0,     4,     3,     3,     3
+       1,     1,     0,     4,     3,     3,     3
   };
 
 
@@ -4358,91 +4385,92 @@ namespace isc { namespace dhcp {
   "TOPLEVEL_JSON", "TOPLEVEL_DHCP6", "SUB_DHCP6", "SUB_INTERFACES6",
   "SUB_SUBNET6", "SUB_POOL6", "SUB_PD_POOL", "SUB_RESERVATION",
   "SUB_OPTION_DEFS", "SUB_OPTION_DEF", "SUB_OPTION_DATA",
-  "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "\"constant string\"",
-  "\"integer\"", "\"floating point\"", "\"boolean\"", "$accept", "start",
-  "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10",
-  "$@11", "$@12", "$@13", "value", "sub_json", "map2", "$@14", "map_value",
-  "map_content", "not_empty_map", "list_generic", "$@15", "list_content",
-  "not_empty_list", "list_strings", "$@16", "list_strings_content",
-  "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@17",
-  "global_objects", "global_object", "dhcp6_object", "$@18", "sub_dhcp6",
-  "$@19", "global_params", "global_param", "preferred_lifetime",
+  "SUB_HOOKS_LIBRARY", "SUB_DHCP_DDNS", "SUB_LOGGING",
+  "\"constant string\"", "\"integer\"", "\"floating point\"",
+  "\"boolean\"", "$accept", "start", "$@1", "$@2", "$@3", "$@4", "$@5",
+  "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14",
+  "value", "sub_json", "map2", "$@15", "map_value", "map_content",
+  "not_empty_map", "list_generic", "$@16", "list_content",
+  "not_empty_list", "list_strings", "$@17", "list_strings_content",
+  "not_empty_list_strings", "unknown_map_entry", "syntax_map", "$@18",
+  "global_objects", "global_object", "dhcp6_object", "$@19", "sub_dhcp6",
+  "$@20", "global_params", "global_param", "preferred_lifetime",
   "valid_lifetime", "renew_timer", "rebind_timer",
-  "decline_probation_period", "interfaces_config", "$@20",
-  "sub_interfaces6", "$@21", "interfaces_config_params",
-  "interfaces_config_param", "interfaces_list", "$@22", "re_detect",
-  "lease_database", "$@23", "hosts_database", "$@24",
-  "database_map_params", "database_map_param", "database_type", "$@25",
-  "db_type", "user", "$@26", "password", "$@27", "host", "$@28", "port",
-  "name", "$@29", "persist", "lfc_interval", "readonly", "connect_timeout",
-  "contact_points", "$@30", "keyspace", "$@31", "mac_sources", "$@32",
+  "decline_probation_period", "interfaces_config", "$@21",
+  "sub_interfaces6", "$@22", "interfaces_config_params",
+  "interfaces_config_param", "interfaces_list", "$@23", "re_detect",
+  "lease_database", "$@24", "hosts_database", "$@25",
+  "database_map_params", "database_map_param", "database_type", "$@26",
+  "db_type", "user", "$@27", "password", "$@28", "host", "$@29", "port",
+  "name", "$@30", "persist", "lfc_interval", "readonly", "connect_timeout",
+  "contact_points", "$@31", "keyspace", "$@32", "mac_sources", "$@33",
   "mac_sources_list", "mac_sources_value", "duid_id", "string_id",
-  "host_reservation_identifiers", "$@33",
+  "host_reservation_identifiers", "$@34",
   "host_reservation_identifiers_list", "host_reservation_identifier",
-  "hw_address_id", "flex_id", "relay_supplied_options", "$@34",
-  "hooks_libraries", "$@35", "hooks_libraries_list",
-  "not_empty_hooks_libraries_list", "hooks_library", "$@36",
-  "sub_hooks_library", "$@37", "hooks_params", "hooks_param", "library",
-  "$@38", "parameters", "$@39", "expired_leases_processing", "$@40",
+  "hw_address_id", "flex_id", "relay_supplied_options", "$@35",
+  "hooks_libraries", "$@36", "hooks_libraries_list",
+  "not_empty_hooks_libraries_list", "hooks_library", "$@37",
+  "sub_hooks_library", "$@38", "hooks_params", "hooks_param", "library",
+  "$@39", "parameters", "$@40", "expired_leases_processing", "$@41",
   "expired_leases_params", "expired_leases_param",
   "reclaim_timer_wait_time", "flush_reclaimed_timer_wait_time",
   "hold_reclaimed_time", "max_reclaim_leases", "max_reclaim_time",
-  "unwarned_reclaim_cycles", "subnet6_list", "$@41",
-  "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@42",
-  "sub_subnet6", "$@43", "subnet6_params", "subnet6_param", "subnet",
-  "$@44", "interface", "$@45", "interface_id", "$@46", "client_class",
-  "$@47", "reservation_mode", "$@48", "hr_mode", "id", "rapid_commit",
-  "shared_networks", "$@49", "shared_networks_content",
-  "shared_networks_list", "shared_network", "$@50",
+  "unwarned_reclaim_cycles", "subnet6_list", "$@42",
+  "subnet6_list_content", "not_empty_subnet6_list", "subnet6", "$@43",
+  "sub_subnet6", "$@44", "subnet6_params", "subnet6_param", "subnet",
+  "$@45", "interface", "$@46", "interface_id", "$@47", "client_class",
+  "$@48", "reservation_mode", "$@49", "hr_mode", "id", "rapid_commit",
+  "shared_networks", "$@50", "shared_networks_content",
+  "shared_networks_list", "shared_network", "$@51",
   "shared_network_params", "shared_network_param", "option_def_list",
-  "$@51", "sub_option_def_list", "$@52", "option_def_list_content",
-  "not_empty_option_def_list", "option_def_entry", "$@53",
-  "sub_option_def", "$@54", "option_def_params",
+  "$@52", "sub_option_def_list", "$@53", "option_def_list_content",
+  "not_empty_option_def_list", "option_def_entry", "$@54",
+  "sub_option_def", "$@55", "option_def_params",
   "not_empty_option_def_params", "option_def_param", "option_def_name",
-  "code", "option_def_code", "option_def_type", "$@55",
-  "option_def_record_types", "$@56", "space", "$@57", "option_def_space",
-  "option_def_encapsulate", "$@58", "option_def_array", "option_data_list",
-  "$@59", "option_data_list_content", "not_empty_option_data_list",
-  "option_data_entry", "$@60", "sub_option_data", "$@61",
+  "code", "option_def_code", "option_def_type", "$@56",
+  "option_def_record_types", "$@57", "space", "$@58", "option_def_space",
+  "option_def_encapsulate", "$@59", "option_def_array", "option_data_list",
+  "$@60", "option_data_list_content", "not_empty_option_data_list",
+  "option_data_entry", "$@61", "sub_option_data", "$@62",
   "option_data_params", "not_empty_option_data_params",
-  "option_data_param", "option_data_name", "option_data_data", "$@62",
+  "option_data_param", "option_data_name", "option_data_data", "$@63",
   "option_data_code", "option_data_space", "option_data_csv_format",
-  "option_data_always_send", "pools_list", "$@63", "pools_list_content",
-  "not_empty_pools_list", "pool_list_entry", "$@64", "sub_pool6", "$@65",
-  "pool_params", "pool_param", "pool_entry", "$@66", "user_context",
-  "$@67", "comment", "$@68", "pd_pools_list", "$@69",
+  "option_data_always_send", "pools_list", "$@64", "pools_list_content",
+  "not_empty_pools_list", "pool_list_entry", "$@65", "sub_pool6", "$@66",
+  "pool_params", "pool_param", "pool_entry", "$@67", "user_context",
+  "$@68", "comment", "$@69", "pd_pools_list", "$@70",
   "pd_pools_list_content", "not_empty_pd_pools_list", "pd_pool_entry",
-  "$@70", "sub_pd_pool", "$@71", "pd_pool_params", "pd_pool_param",
-  "pd_prefix", "$@72", "pd_prefix_len", "excluded_prefix", "$@73",
-  "excluded_prefix_len", "pd_delegated_len", "reservations", "$@74",
+  "$@71", "sub_pd_pool", "$@72", "pd_pool_params", "pd_pool_param",
+  "pd_prefix", "$@73", "pd_prefix_len", "excluded_prefix", "$@74",
+  "excluded_prefix_len", "pd_delegated_len", "reservations", "$@75",
   "reservations_list", "not_empty_reservations_list", "reservation",
-  "$@75", "sub_reservation", "$@76", "reservation_params",
+  "$@76", "sub_reservation", "$@77", "reservation_params",
   "not_empty_reservation_params", "reservation_param", "ip_addresses",
-  "$@77", "prefixes", "$@78", "duid", "$@79", "hw_address", "$@80",
-  "hostname", "$@81", "flex_id_value", "$@82",
-  "reservation_client_classes", "$@83", "relay", "$@84", "relay_map",
-  "$@85", "client_classes", "$@86", "client_classes_list", "$@87",
+  "$@78", "prefixes", "$@79", "duid", "$@80", "hw_address", "$@81",
+  "hostname", "$@82", "flex_id_value", "$@83",
+  "reservation_client_classes", "$@84", "relay", "$@85", "relay_map",
+  "$@86", "client_classes", "$@87", "client_classes_list", "$@88",
   "client_class_params", "not_empty_client_class_params",
-  "client_class_param", "client_class_name", "client_class_test", "$@88",
-  "server_id", "$@89", "server_id_params", "server_id_param",
-  "server_id_type", "$@90", "duid_type", "htype", "identifier", "$@91",
-  "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@92",
-  "control_socket_params", "control_socket_param", "socket_type", "$@93",
-  "socket_name", "$@94", "socket_user_context", "socket_comment", "$@95",
-  "dhcp_ddns", "$@96", "sub_dhcp_ddns", "$@97", "dhcp_ddns_params",
-  "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@98",
-  "server_ip", "$@99", "server_port", "sender_ip", "$@100", "sender_port",
-  "max_queue_size", "ncr_protocol", "$@101", "ncr_protocol_value",
-  "ncr_format", "$@102", "always_include_fqdn", "override_no_update",
-  "override_client_update", "replace_client_name", "$@103",
-  "replace_client_name_value", "generated_prefix", "$@104",
-  "dhcp4_json_object", "$@105", "dhcpddns_json_object", "$@106",
-  "control_agent_json_object", "$@107", "logging_object", "$@108",
-  "logging_params", "logging_param", "loggers", "$@109", "loggers_entries",
-  "logger_entry", "$@110", "logger_params", "logger_param", "debuglevel",
-  "severity", "$@111", "output_options_list", "$@112",
-  "output_options_list_content", "output_entry", "$@113",
-  "output_params_list", "output_params", "output", "$@114", "flush",
+  "client_class_param", "client_class_name", "client_class_test", "$@89",
+  "server_id", "$@90", "server_id_params", "server_id_param",
+  "server_id_type", "$@91", "duid_type", "htype", "identifier", "$@92",
+  "time", "enterprise_id", "dhcp4o6_port", "control_socket", "$@93",
+  "control_socket_params", "control_socket_param", "socket_type", "$@94",
+  "socket_name", "$@95", "socket_user_context", "socket_comment", "$@96",
+  "dhcp_ddns", "$@97", "sub_dhcp_ddns", "$@98", "dhcp_ddns_params",
+  "dhcp_ddns_param", "enable_updates", "qualifying_suffix", "$@99",
+  "server_ip", "$@100", "server_port", "sender_ip", "$@101", "sender_port",
+  "max_queue_size", "ncr_protocol", "$@102", "ncr_protocol_value",
+  "ncr_format", "$@103", "always_include_fqdn", "override_no_update",
+  "override_client_update", "replace_client_name", "$@104",
+  "replace_client_name_value", "generated_prefix", "$@105",
+  "dhcp4_json_object", "$@106", "dhcpddns_json_object", "$@107",
+  "control_agent_json_object", "$@108", "logging_object", "$@109",
+  "sub_logging", "$@110", "logging_params", "logging_param", "loggers",
+  "$@111", "loggers_entries", "logger_entry", "$@112", "logger_params",
+  "logger_param", "debuglevel", "severity", "$@113", "output_options_list",
+  "$@114", "output_options_list_content", "output_entry", "$@115",
+  "output_params_list", "output_params", "output", "$@116", "flush",
   "maxsize", "maxver", YY_NULLPTR
   };
 
@@ -4450,19 +4478,19 @@ namespace isc { namespace dhcp {
   const unsigned short int
   Dhcp6Parser::yyrline_[] =
   {
-       0,   237,   237,   237,   238,   238,   239,   239,   240,   240,
-     241,   241,   242,   242,   243,   243,   244,   244,   245,   245,
-     246,   246,   247,   247,   248,   248,   249,   249,   257,   258,
-     259,   260,   261,   262,   263,   266,   271,   271,   282,   285,
-     286,   289,   293,   300,   300,   307,   308,   311,   315,   322,
-     322,   329,   330,   333,   337,   348,   358,   358,   373,   374,
-     378,   379,   380,   381,   382,   383,   386,   386,   401,   401,
-     410,   411,   416,   417,   418,   419,   420,   421,   422,   423,
+       0,   238,   238,   238,   239,   239,   240,   240,   241,   241,
+     242,   242,   243,   243,   244,   244,   245,   245,   246,   246,
+     247,   247,   248,   248,   249,   249,   250,   250,   251,   251,
+     259,   260,   261,   262,   263,   264,   265,   268,   273,   273,
+     284,   287,   288,   291,   295,   302,   302,   309,   310,   313,
+     317,   324,   324,   331,   332,   335,   339,   350,   360,   360,
+     375,   376,   380,   381,   382,   383,   384,   385,   388,   388,
+     403,   403,   412,   413,   418,   419,   420,   421,   422,   423,
      424,   425,   426,   427,   428,   429,   430,   431,   432,   433,
-     434,   435,   436,   437,   438,   439,   440,   443,   448,   453,
-     458,   463,   468,   468,   479,   479,   488,   489,   492,   493,
-     494,   495,   496,   499,   499,   509,   515,   515,   527,   527,
-     539,   540,   543,   544,   545,   546,   547,   548,   549,   550,
+     434,   435,   436,   437,   438,   439,   440,   441,   442,   445,
+     450,   455,   460,   465,   470,   470,   481,   481,   490,   491,
+     494,   495,   496,   497,   498,   501,   501,   511,   517,   517,
+     529,   529,   541,   542,   545,   546,   547,   548,   549,   550,
      551,   552,   553,   554,   555,   556,   557,   560,   560,   567,
      568,   569,   570,   573,   573,   581,   581,   589,   589,   597,
      602,   602,   610,   615,   620,   625,   630,   630,   638,   638,
@@ -4506,11 +4534,11 @@ namespace isc { namespace dhcp {
     1793,  1796,  1801,  1801,  1809,  1809,  1817,  1822,  1822,  1830,
     1835,  1840,  1840,  1848,  1849,  1852,  1852,  1860,  1865,  1870,
     1875,  1875,  1883,  1886,  1889,  1892,  1895,  1901,  1901,  1911,
-    1911,  1918,  1918,  1925,  1925,  1938,  1938,  1951,  1952,  1956,
-    1960,  1960,  1972,  1973,  1977,  1977,  1985,  1986,  1989,  1990,
-    1991,  1992,  1993,  1994,  1995,  1998,  2003,  2003,  2011,  2011,
-    2021,  2022,  2025,  2025,  2033,  2034,  2037,  2038,  2039,  2040,
-    2043,  2043,  2051,  2056,  2061
+    1911,  1918,  1918,  1925,  1925,  1938,  1938,  1948,  1948,  1959,
+    1960,  1964,  1968,  1968,  1980,  1981,  1985,  1985,  1993,  1994,
+    1997,  1998,  1999,  2000,  2001,  2002,  2003,  2006,  2011,  2011,
+    2019,  2019,  2029,  2030,  2033,  2033,  2041,  2042,  2045,  2046,
+    2047,  2048,  2051,  2051,  2059,  2064,  2069
   };
 
   // Print the state stack on the debug stream.
@@ -4545,8 +4573,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:1167
 } } // isc::dhcp
-#line 4549 "dhcp6_parser.cc" // lalr1.cc:1167
-#line 2066 "dhcp6_parser.yy" // lalr1.cc:1168
+#line 4577 "dhcp6_parser.cc" // lalr1.cc:1167
+#line 2074 "dhcp6_parser.yy" // lalr1.cc:1168
 
 
 void
index 0d1a7f3ec712a11fedef75b6067e6252f775f860..daefc8b7e11ee86abc0546a5b5670e3340a606e6 100644 (file)
@@ -496,10 +496,11 @@ namespace isc { namespace dhcp {
         TOKEN_SUB_OPTION_DATA = 404,
         TOKEN_SUB_HOOKS_LIBRARY = 405,
         TOKEN_SUB_DHCP_DDNS = 406,
-        TOKEN_STRING = 407,
-        TOKEN_INTEGER = 408,
-        TOKEN_FLOAT = 409,
-        TOKEN_BOOLEAN = 410
+        TOKEN_SUB_LOGGING = 407,
+        TOKEN_STRING = 408,
+        TOKEN_INTEGER = 409,
+        TOKEN_FLOAT = 410,
+        TOKEN_BOOLEAN = 411
       };
     };
 
@@ -1214,6 +1215,10 @@ namespace isc { namespace dhcp {
     symbol_type
     make_SUB_DHCP_DDNS (const location_type& l);
 
+    static inline
+    symbol_type
+    make_SUB_LOGGING (const location_type& l);
+
     static inline
     symbol_type
     make_STRING (const std::string& v, const location_type& l);
@@ -1436,11 +1441,11 @@ namespace isc { namespace dhcp {
     {
       yyeof_ = 0,
       yylast_ = 931,     ///< Last index in yytable_.
-      yynnts_ = 351,  ///< Number of nonterminal symbols.
-      yyfinal_ = 28, ///< Termination state number.
+      yynnts_ = 354,  ///< Number of nonterminal symbols.
+      yyfinal_ = 30, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 156  ///< Number of tokens.
+      yyntokens_ = 157  ///< Number of tokens.
     };
 
 
@@ -1498,9 +1503,9 @@ namespace isc { namespace dhcp {
      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155
+     155,   156
     };
-    const unsigned int user_token_number_max_ = 410;
+    const unsigned int user_token_number_max_ = 411;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int>(t) <= yyeof_)
@@ -1533,29 +1538,29 @@ namespace isc { namespace dhcp {
   {
       switch (other.type_get ())
     {
-      case 171: // value
-      case 175: // map_value
-      case 219: // db_type
-      case 295: // hr_mode
-      case 428: // duid_type
-      case 464: // ncr_protocol_value
-      case 472: // replace_client_name_value
+      case 173: // value
+      case 177: // map_value
+      case 221: // db_type
+      case 297: // hr_mode
+      case 430: // duid_type
+      case 466: // ncr_protocol_value
+      case 474: // replace_client_name_value
         value.copy< ElementPtr > (other.value);
         break;
 
-      case 155: // "boolean"
+      case 156: // "boolean"
         value.copy< bool > (other.value);
         break;
 
-      case 154: // "floating point"
+      case 155: // "floating point"
         value.copy< double > (other.value);
         break;
 
-      case 153: // "integer"
+      case 154: // "integer"
         value.copy< int64_t > (other.value);
         break;
 
-      case 152: // "constant string"
+      case 153: // "constant string"
         value.copy< std::string > (other.value);
         break;
 
@@ -1576,29 +1581,29 @@ namespace isc { namespace dhcp {
     (void) v;
       switch (this->type_get ())
     {
-      case 171: // value
-      case 175: // map_value
-      case 219: // db_type
-      case 295: // hr_mode
-      case 428: // duid_type
-      case 464: // ncr_protocol_value
-      case 472: // replace_client_name_value
+      case 173: // value
+      case 177: // map_value
+      case 221: // db_type
+      case 297: // hr_mode
+      case 430: // duid_type
+      case 466: // ncr_protocol_value
+      case 474: // replace_client_name_value
         value.copy< ElementPtr > (v);
         break;
 
-      case 155: // "boolean"
+      case 156: // "boolean"
         value.copy< bool > (v);
         break;
 
-      case 154: // "floating point"
+      case 155: // "floating point"
         value.copy< double > (v);
         break;
 
-      case 153: // "integer"
+      case 154: // "integer"
         value.copy< int64_t > (v);
         break;
 
-      case 152: // "constant string"
+      case 153: // "constant string"
         value.copy< std::string > (v);
         break;
 
@@ -1678,29 +1683,29 @@ namespace isc { namespace dhcp {
     // Type destructor.
     switch (yytype)
     {
-      case 171: // value
-      case 175: // map_value
-      case 219: // db_type
-      case 295: // hr_mode
-      case 428: // duid_type
-      case 464: // ncr_protocol_value
-      case 472: // replace_client_name_value
+      case 173: // value
+      case 177: // map_value
+      case 221: // db_type
+      case 297: // hr_mode
+      case 430: // duid_type
+      case 466: // ncr_protocol_value
+      case 474: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 155: // "boolean"
+      case 156: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 154: // "floating point"
+      case 155: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 153: // "integer"
+      case 154: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 152: // "constant string"
+      case 153: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -1727,29 +1732,29 @@ namespace isc { namespace dhcp {
     super_type::move(s);
       switch (this->type_get ())
     {
-      case 171: // value
-      case 175: // map_value
-      case 219: // db_type
-      case 295: // hr_mode
-      case 428: // duid_type
-      case 464: // ncr_protocol_value
-      case 472: // replace_client_name_value
+      case 173: // value
+      case 177: // map_value
+      case 221: // db_type
+      case 297: // hr_mode
+      case 430: // duid_type
+      case 466: // ncr_protocol_value
+      case 474: // replace_client_name_value
         value.move< ElementPtr > (s.value);
         break;
 
-      case 155: // "boolean"
+      case 156: // "boolean"
         value.move< bool > (s.value);
         break;
 
-      case 154: // "floating point"
+      case 155: // "floating point"
         value.move< double > (s.value);
         break;
 
-      case 153: // "integer"
+      case 154: // "integer"
         value.move< int64_t > (s.value);
         break;
 
-      case 152: // "constant string"
+      case 153: // "constant string"
         value.move< std::string > (s.value);
         break;
 
@@ -1823,7 +1828,7 @@ namespace isc { namespace dhcp {
      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,   408,   409,   410
+     405,   406,   407,   408,   409,   410,   411
     };
     return static_cast<token_type> (yytoken_number_[type]);
   }
@@ -2728,6 +2733,12 @@ namespace isc { namespace dhcp {
     return symbol_type (token::TOKEN_SUB_DHCP_DDNS, l);
   }
 
+  Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_SUB_LOGGING (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_SUB_LOGGING, l);
+  }
+
   Dhcp6Parser::symbol_type
   Dhcp6Parser::make_STRING (const std::string& v, const location_type& l)
   {
@@ -2755,7 +2766,7 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:377
 } } // isc::dhcp
-#line 2759 "dhcp6_parser.h" // lalr1.cc:377
+#line 2770 "dhcp6_parser.h" // lalr1.cc:377
 
 
 
index 26514357d426170adbd956560cdc7ab5bacb5ba2..fba9c767eefb7f9800352c0aaec7635655f0d1f4 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712021539
+// Generated 201712031245
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Locations for Bison parsers in C++
index bf281a6bae0b2082e6e8349f82a87f5e375c4a3d..22c8b1b3f7b4c526592a84fded2d24d128c6422c 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712021539
+// Generated 201712031245
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Positions for Bison parsers in C++
index b434887ea8ef5259299a957fef98ac6f7c326738..24b889b8132982ef2218b13570cf7d230070c9f4 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712021539
+// Generated 201712031245
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Stack handling for Bison parsers in C++