]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[trac5351] regen flex/bison
authorFrancis Dupont <fdupont@isc.org>
Sat, 2 Dec 2017 15:39:53 +0000 (15:39 +0000)
committerFrancis Dupont <fdupont@isc.org>
Sat, 2 Dec 2017 15:39:53 +0000 (15:39 +0000)
14 files changed:
src/bin/dhcp4/dhcp4_lexer.cc
src/bin/dhcp4/dhcp4_parser.cc
src/bin/dhcp4/dhcp4_parser.h
src/bin/dhcp4/dhcp4_parser.yy
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/dhcp6_parser.yy
src/bin/dhcp6/location.hh
src/bin/dhcp6/position.hh
src/bin/dhcp6/stack.hh

index e374ad186cf0eac70d9a5071e61cd6fe1197dd5b..457bc577486576ef03f999b1a0e157bf56acf4f8 100644 (file)
@@ -1588,18 +1588,18 @@ static const flex_int16_t yy_rule_linenum[159] =
       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,  601,  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
+      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
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -2698,6 +2698,7 @@ YY_RULE_SETUP
     case isc::dhcp::Parser4Context::OPTION_DATA:
     case isc::dhcp::Parser4Context::RESERVATIONS:
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
+    case isc::dhcp::Parser4Context::CONTROL_SOCKET:
     case isc::dhcp::Parser4Context::LOGGERS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
         return isc::dhcp::Dhcp4Parser::make_USER_CONTEXT(driver.loc_);
@@ -2708,7 +2709,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 601 "dhcp4_lexer.ll"
+#line 602 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2722,6 +2723,7 @@ YY_RULE_SETUP
     case isc::dhcp::Parser4Context::OPTION_DATA:
     case isc::dhcp::Parser4Context::RESERVATIONS:
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
+    case isc::dhcp::Parser4Context::CONTROL_SOCKET:
     case isc::dhcp::Parser4Context::LOGGERS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
         return isc::dhcp::Dhcp4Parser::make_COMMENT(driver.loc_);
@@ -2732,7 +2734,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 622 "dhcp4_lexer.ll"
+#line 624 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2744,7 +2746,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 631 "dhcp4_lexer.ll"
+#line 633 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2757,7 +2759,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 641 "dhcp4_lexer.ll"
+#line 643 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2769,7 +2771,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 650 "dhcp4_lexer.ll"
+#line 652 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2781,7 +2783,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 659 "dhcp4_lexer.ll"
+#line 661 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2793,7 +2795,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 668 "dhcp4_lexer.ll"
+#line 670 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2806,7 +2808,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 678 "dhcp4_lexer.ll"
+#line 680 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2818,7 +2820,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 687 "dhcp4_lexer.ll"
+#line 689 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2830,7 +2832,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 696 "dhcp4_lexer.ll"
+#line 698 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2842,7 +2844,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 705 "dhcp4_lexer.ll"
+#line 707 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATION_MODE:
@@ -2854,7 +2856,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 714 "dhcp4_lexer.ll"
+#line 716 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -2867,7 +2869,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 724 "dhcp4_lexer.ll"
+#line 726 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -2879,7 +2881,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 733 "dhcp4_lexer.ll"
+#line 735 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -2891,7 +2893,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 742 "dhcp4_lexer.ll"
+#line 744 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGING:
@@ -2903,7 +2905,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 751 "dhcp4_lexer.ll"
+#line 753 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2915,7 +2917,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 760 "dhcp4_lexer.ll"
+#line 762 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2927,7 +2929,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 769 "dhcp4_lexer.ll"
+#line 771 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2939,7 +2941,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 778 "dhcp4_lexer.ll"
+#line 780 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2951,7 +2953,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 787 "dhcp4_lexer.ll"
+#line 789 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2963,7 +2965,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 796 "dhcp4_lexer.ll"
+#line 798 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
@@ -2975,7 +2977,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 805 "dhcp4_lexer.ll"
+#line 807 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::LOGGERS:
@@ -2987,7 +2989,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 814 "dhcp4_lexer.ll"
+#line 816 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3000,7 +3002,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 824 "dhcp4_lexer.ll"
+#line 826 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3014,7 +3016,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 835 "dhcp4_lexer.ll"
+#line 837 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -3027,7 +3029,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 845 "dhcp4_lexer.ll"
+#line 847 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3039,7 +3041,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 854 "dhcp4_lexer.ll"
+#line 856 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3052,7 +3054,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 864 "dhcp4_lexer.ll"
+#line 866 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3065,7 +3067,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 874 "dhcp4_lexer.ll"
+#line 876 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3078,7 +3080,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 884 "dhcp4_lexer.ll"
+#line 886 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3091,7 +3093,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 894 "dhcp4_lexer.ll"
+#line 896 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3104,7 +3106,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 904 "dhcp4_lexer.ll"
+#line 906 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -3116,7 +3118,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 913 "dhcp4_lexer.ll"
+#line 915 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3129,7 +3131,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 923 "dhcp4_lexer.ll"
+#line 925 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3141,7 +3143,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 932 "dhcp4_lexer.ll"
+#line 934 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3153,7 +3155,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 941 "dhcp4_lexer.ll"
+#line 943 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3165,7 +3167,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 950 "dhcp4_lexer.ll"
+#line 952 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3177,7 +3179,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 959 "dhcp4_lexer.ll"
+#line 961 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3190,7 +3192,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 969 "dhcp4_lexer.ll"
+#line 971 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
@@ -3203,7 +3205,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 979 "dhcp4_lexer.ll"
+#line 981 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3215,7 +3217,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 989 "dhcp4_lexer.ll"
+#line 991 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3227,7 +3229,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 998 "dhcp4_lexer.ll"
+#line 1000 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3239,7 +3241,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 1007 "dhcp4_lexer.ll"
+#line 1009 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3251,7 +3253,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 1016 "dhcp4_lexer.ll"
+#line 1018 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3263,7 +3265,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1025 "dhcp4_lexer.ll"
+#line 1027 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3275,7 +3277,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1034 "dhcp4_lexer.ll"
+#line 1036 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3287,7 +3289,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 1043 "dhcp4_lexer.ll"
+#line 1045 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3299,7 +3301,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1052 "dhcp4_lexer.ll"
+#line 1054 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3311,7 +3313,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1061 "dhcp4_lexer.ll"
+#line 1063 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3323,7 +3325,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 1070 "dhcp4_lexer.ll"
+#line 1072 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3335,7 +3337,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1079 "dhcp4_lexer.ll"
+#line 1081 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3347,7 +3349,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1088 "dhcp4_lexer.ll"
+#line 1090 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3359,7 +3361,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 1097 "dhcp4_lexer.ll"
+#line 1099 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3371,7 +3373,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 1106 "dhcp4_lexer.ll"
+#line 1108 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3383,7 +3385,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 1115 "dhcp4_lexer.ll"
+#line 1117 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3395,7 +3397,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 1124 "dhcp4_lexer.ll"
+#line 1126 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3407,7 +3409,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 1133 "dhcp4_lexer.ll"
+#line 1135 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3419,7 +3421,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 1142 "dhcp4_lexer.ll"
+#line 1144 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3431,7 +3433,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 1151 "dhcp4_lexer.ll"
+#line 1153 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3443,7 +3445,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 1160 "dhcp4_lexer.ll"
+#line 1162 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3455,7 +3457,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 1169 "dhcp4_lexer.ll"
+#line 1171 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3467,7 +3469,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 1178 "dhcp4_lexer.ll"
+#line 1180 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3479,7 +3481,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 1187 "dhcp4_lexer.ll"
+#line 1189 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3491,7 +3493,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1196 "dhcp4_lexer.ll"
+#line 1198 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3503,7 +3505,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 1205 "dhcp4_lexer.ll"
+#line 1207 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3515,7 +3517,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 1214 "dhcp4_lexer.ll"
+#line 1216 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3527,7 +3529,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 1223 "dhcp4_lexer.ll"
+#line 1225 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3539,7 +3541,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 1232 "dhcp4_lexer.ll"
+#line 1234 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3551,7 +3553,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 1241 "dhcp4_lexer.ll"
+#line 1243 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -3564,7 +3566,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 1251 "dhcp4_lexer.ll"
+#line 1253 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -3577,7 +3579,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 1261 "dhcp4_lexer.ll"
+#line 1263 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -3590,7 +3592,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 1271 "dhcp4_lexer.ll"
+#line 1273 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3603,7 +3605,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 1281 "dhcp4_lexer.ll"
+#line 1283 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3616,7 +3618,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 1291 "dhcp4_lexer.ll"
+#line 1293 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3629,7 +3631,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 1301 "dhcp4_lexer.ll"
+#line 1303 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3642,7 +3644,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 1311 "dhcp4_lexer.ll"
+#line 1313 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3655,7 +3657,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 1321 "dhcp4_lexer.ll"
+#line 1323 "dhcp4_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3668,7 +3670,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 1331 "dhcp4_lexer.ll"
+#line 1333 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3680,7 +3682,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 1340 "dhcp4_lexer.ll"
+#line 1342 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3692,7 +3694,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 1349 "dhcp4_lexer.ll"
+#line 1351 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3704,7 +3706,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 1358 "dhcp4_lexer.ll"
+#line 1360 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3716,7 +3718,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 1367 "dhcp4_lexer.ll"
+#line 1369 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3728,7 +3730,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 1376 "dhcp4_lexer.ll"
+#line 1378 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3740,7 +3742,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 1385 "dhcp4_lexer.ll"
+#line 1387 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3752,7 +3754,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 1394 "dhcp4_lexer.ll"
+#line 1396 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3766,7 +3768,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 1405 "dhcp4_lexer.ll"
+#line 1407 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3782,7 +3784,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 1418 "dhcp4_lexer.ll"
+#line 1420 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3798,7 +3800,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 1431 "dhcp4_lexer.ll"
+#line 1433 "dhcp4_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3814,7 +3816,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 1446 "dhcp4_lexer.ll"
+#line 1448 "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.
@@ -3916,7 +3918,7 @@ YY_RULE_SETUP
 case 142:
 /* rule 142 can match eol */
 YY_RULE_SETUP
-#line 1544 "dhcp4_lexer.ll"
+#line 1546 "dhcp4_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -3925,7 +3927,7 @@ YY_RULE_SETUP
 case 143:
 /* rule 143 can match eol */
 YY_RULE_SETUP
-#line 1549 "dhcp4_lexer.ll"
+#line 1551 "dhcp4_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -3933,7 +3935,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 1554 "dhcp4_lexer.ll"
+#line 1556 "dhcp4_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -3941,37 +3943,37 @@ YY_RULE_SETUP
        YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 1559 "dhcp4_lexer.ll"
+#line 1561 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 1560 "dhcp4_lexer.ll"
+#line 1562 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 1561 "dhcp4_lexer.ll"
+#line 1563 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 1562 "dhcp4_lexer.ll"
+#line 1564 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 1563 "dhcp4_lexer.ll"
+#line 1565 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 1564 "dhcp4_lexer.ll"
+#line 1566 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 1566 "dhcp4_lexer.ll"
+#line 1568 "dhcp4_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -3992,7 +3994,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 1584 "dhcp4_lexer.ll"
+#line 1586 "dhcp4_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4008,7 +4010,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 1597 "dhcp4_lexer.ll"
+#line 1599 "dhcp4_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -4016,33 +4018,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 1602 "dhcp4_lexer.ll"
+#line 1604 "dhcp4_lexer.ll"
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 1606 "dhcp4_lexer.ll"
+#line 1608 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 1608 "dhcp4_lexer.ll"
+#line 1610 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 1610 "dhcp4_lexer.ll"
+#line 1612 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 1612 "dhcp4_lexer.ll"
+#line 1614 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1614 "dhcp4_lexer.ll"
+#line 1616 "dhcp4_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -4068,10 +4070,10 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 1637 "dhcp4_lexer.ll"
+#line 1639 "dhcp4_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4074 "dhcp4_lexer.cc"
+#line 4076 "dhcp4_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5176,7 +5178,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1637 "dhcp4_lexer.ll"
+#line 1639 "dhcp4_lexer.ll"
 
 
 using namespace isc::dhcp;
index 25bec0a5c0d1021fadfe0e0c349bb036f7482626..003aec56b2a0be94729bdbd6f3b2a4678c4dd866 100644 (file)
@@ -259,8 +259,8 @@ namespace isc { namespace dhcp {
       case 210: // outbound_interface_value
       case 220: // db_type
       case 297: // hr_mode
-      case 442: // ncr_protocol_value
-      case 450: // replace_client_name_value
+      case 445: // ncr_protocol_value
+      case 453: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
@@ -301,8 +301,8 @@ namespace isc { namespace dhcp {
       case 210: // outbound_interface_value
       case 220: // db_type
       case 297: // hr_mode
-      case 442: // ncr_protocol_value
-      case 450: // replace_client_name_value
+      case 445: // ncr_protocol_value
+      case 453: // replace_client_name_value
         value.copy< ElementPtr > (that.value);
         break;
 
@@ -428,14 +428,14 @@ namespace isc { namespace dhcp {
 #line 429 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 442: // ncr_protocol_value
+      case 445: // ncr_protocol_value
 
 #line 225 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 436 "dhcp4_parser.cc" // lalr1.cc:636
         break;
 
-      case 450: // replace_client_name_value
+      case 453: // replace_client_name_value
 
 #line 225 "dhcp4_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
@@ -645,8 +645,8 @@ namespace isc { namespace dhcp {
       case 210: // outbound_interface_value
       case 220: // db_type
       case 297: // hr_mode
-      case 442: // ncr_protocol_value
-      case 450: // replace_client_name_value
+      case 445: // ncr_protocol_value
+      case 453: // replace_client_name_value
         yylhs.value.build< ElementPtr > ();
         break;
 
@@ -2712,16 +2712,16 @@ namespace isc { namespace dhcp {
 #line 2713 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 480:
-#line 1638 "dhcp4_parser.yy" // lalr1.cc:859
+  case 483:
+#line 1641 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 2721 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 481:
-#line 1640 "dhcp4_parser.yy" // lalr1.cc:859
+  case 484:
+#line 1643 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
@@ -2730,16 +2730,16 @@ namespace isc { namespace dhcp {
 #line 2731 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 482:
-#line 1646 "dhcp4_parser.yy" // lalr1.cc:859
+  case 485:
+#line 1649 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 2739 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 483:
-#line 1648 "dhcp4_parser.yy" // lalr1.cc:859
+  case 486:
+#line 1651 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
@@ -2748,509 +2748,526 @@ namespace isc { namespace dhcp {
 #line 2749 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 484:
-#line 1656 "dhcp4_parser.yy" // lalr1.cc:859
+  case 488:
+#line 1659 "dhcp4_parser.yy" // lalr1.cc:859
+    {
+    ctx.enter(ctx.NO_KEYWORD);
+}
+#line 2757 "dhcp4_parser.cc" // lalr1.cc:859
+    break;
+
+  case 489:
+#line 1661 "dhcp4_parser.yy" // lalr1.cc:859
+    {
+    ctx.stack_.back()->combine_set("comment", yystack_[0].value.as< ElementPtr > ());
+    ctx.leave();
+}
+#line 2766 "dhcp4_parser.cc" // lalr1.cc:859
+    break;
+
+  case 490:
+#line 1668 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 2760 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2777 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 485:
-#line 1661 "dhcp4_parser.yy" // lalr1.cc:859
+  case 491:
+#line 1673 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2771 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2788 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 486:
-#line 1668 "dhcp4_parser.yy" // lalr1.cc:859
+  case 492:
+#line 1680 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2781 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2798 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 487:
-#line 1672 "dhcp4_parser.yy" // lalr1.cc:859
+  case 493:
+#line 1684 "dhcp4_parser.yy" // lalr1.cc:859
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2791 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2808 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 507:
-#line 1701 "dhcp4_parser.yy" // lalr1.cc:859
+  case 513:
+#line 1713 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 2800 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2817 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 508:
-#line 1706 "dhcp4_parser.yy" // lalr1.cc:859
+  case 514:
+#line 1718 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2808 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2825 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 509:
-#line 1708 "dhcp4_parser.yy" // lalr1.cc:859
+  case 515:
+#line 1720 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 2818 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2835 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 510:
-#line 1714 "dhcp4_parser.yy" // lalr1.cc:859
+  case 516:
+#line 1726 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2826 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2843 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 511:
-#line 1716 "dhcp4_parser.yy" // lalr1.cc:859
+  case 517:
+#line 1728 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
     ctx.leave();
 }
-#line 2836 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2853 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 512:
-#line 1722 "dhcp4_parser.yy" // lalr1.cc:859
+  case 518:
+#line 1734 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 2845 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2862 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 513:
-#line 1727 "dhcp4_parser.yy" // lalr1.cc:859
+  case 519:
+#line 1739 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2853 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2870 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 514:
-#line 1729 "dhcp4_parser.yy" // lalr1.cc:859
+  case 520:
+#line 1741 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
     ctx.leave();
 }
-#line 2863 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2880 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 515:
-#line 1735 "dhcp4_parser.yy" // lalr1.cc:859
+  case 521:
+#line 1747 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 2872 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2889 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 516:
-#line 1740 "dhcp4_parser.yy" // lalr1.cc:859
+  case 522:
+#line 1752 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 2881 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2898 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 517:
-#line 1745 "dhcp4_parser.yy" // lalr1.cc:859
+  case 523:
+#line 1757 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 2889 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2906 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 518:
-#line 1747 "dhcp4_parser.yy" // lalr1.cc:859
+  case 524:
+#line 1759 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2898 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2915 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 519:
-#line 1753 "dhcp4_parser.yy" // lalr1.cc:859
+  case 525:
+#line 1765 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 2904 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2921 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 520:
-#line 1754 "dhcp4_parser.yy" // lalr1.cc:859
+  case 526:
+#line 1766 "dhcp4_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 2910 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2927 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 521:
-#line 1757 "dhcp4_parser.yy" // lalr1.cc:859
+  case 527:
+#line 1769 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 2918 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2935 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 522:
-#line 1759 "dhcp4_parser.yy" // lalr1.cc:859
+  case 528:
+#line 1771 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 2928 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2945 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 523:
-#line 1765 "dhcp4_parser.yy" // lalr1.cc:859
+  case 529:
+#line 1777 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-include-fqdn", b);
 }
-#line 2937 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2954 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 524:
-#line 1770 "dhcp4_parser.yy" // lalr1.cc:859
+  case 530:
+#line 1782 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 2946 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2963 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 525:
-#line 1775 "dhcp4_parser.yy" // lalr1.cc:859
+  case 531:
+#line 1787 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 2955 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2972 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 526:
-#line 1780 "dhcp4_parser.yy" // lalr1.cc:859
+  case 532:
+#line 1792 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 2963 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2980 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 527:
-#line 1782 "dhcp4_parser.yy" // lalr1.cc:859
+  case 533:
+#line 1794 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2972 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2989 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 528:
-#line 1788 "dhcp4_parser.yy" // lalr1.cc:859
+  case 534:
+#line 1800 "dhcp4_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); 
       }
-#line 2980 "dhcp4_parser.cc" // lalr1.cc:859
+#line 2997 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 529:
-#line 1791 "dhcp4_parser.yy" // lalr1.cc:859
+  case 535:
+#line 1803 "dhcp4_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 2988 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3005 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 530:
-#line 1794 "dhcp4_parser.yy" // lalr1.cc:859
+  case 536:
+#line 1806 "dhcp4_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 2996 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3013 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 531:
-#line 1797 "dhcp4_parser.yy" // lalr1.cc:859
+  case 537:
+#line 1809 "dhcp4_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3004 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3021 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 532:
-#line 1800 "dhcp4_parser.yy" // lalr1.cc:859
+  case 538:
+#line 1812 "dhcp4_parser.yy" // lalr1.cc:859
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3013 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3030 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 533:
-#line 1806 "dhcp4_parser.yy" // lalr1.cc:859
+  case 539:
+#line 1818 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3021 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3038 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 534:
-#line 1808 "dhcp4_parser.yy" // lalr1.cc:859
+  case 540:
+#line 1820 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3031 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3048 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 535:
-#line 1816 "dhcp4_parser.yy" // lalr1.cc:859
+  case 541:
+#line 1828 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3039 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3056 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 536:
-#line 1818 "dhcp4_parser.yy" // lalr1.cc:859
+  case 542:
+#line 1830 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("Dhcp6", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3048 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3065 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 537:
-#line 1823 "dhcp4_parser.yy" // lalr1.cc:859
+  case 543:
+#line 1835 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3056 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3073 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 538:
-#line 1825 "dhcp4_parser.yy" // lalr1.cc:859
+  case 544:
+#line 1837 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3065 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3082 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 539:
-#line 1830 "dhcp4_parser.yy" // lalr1.cc:859
+  case 545:
+#line 1842 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3073 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3090 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 540:
-#line 1832 "dhcp4_parser.yy" // lalr1.cc:859
+  case 546:
+#line 1844 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3082 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3099 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 541:
-#line 1842 "dhcp4_parser.yy" // lalr1.cc:859
+  case 547:
+#line 1854 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Logging", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.LOGGING);
 }
-#line 3093 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3110 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 542:
-#line 1847 "dhcp4_parser.yy" // lalr1.cc:859
+  case 548:
+#line 1859 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3102 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3119 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 546:
-#line 1864 "dhcp4_parser.yy" // lalr1.cc:859
+  case 552:
+#line 1876 "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 3113 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3130 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 547:
-#line 1869 "dhcp4_parser.yy" // lalr1.cc:859
+  case 553:
+#line 1881 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3122 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3139 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 550:
-#line 1881 "dhcp4_parser.yy" // lalr1.cc:859
+  case 556:
+#line 1893 "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 3132 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3149 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 551:
-#line 1885 "dhcp4_parser.yy" // lalr1.cc:859
+  case 557:
+#line 1897 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
-#line 3140 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3157 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 561:
-#line 1902 "dhcp4_parser.yy" // lalr1.cc:859
+  case 567:
+#line 1914 "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 3149 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3166 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 562:
-#line 1907 "dhcp4_parser.yy" // lalr1.cc:859
+  case 568:
+#line 1919 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3157 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3174 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 563:
-#line 1909 "dhcp4_parser.yy" // lalr1.cc:859
+  case 569:
+#line 1921 "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 3167 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3184 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 564:
-#line 1915 "dhcp4_parser.yy" // lalr1.cc:859
+  case 570:
+#line 1927 "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 3178 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3195 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 565:
-#line 1920 "dhcp4_parser.yy" // lalr1.cc:859
+  case 571:
+#line 1932 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3187 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3204 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 568:
-#line 1929 "dhcp4_parser.yy" // lalr1.cc:859
+  case 574:
+#line 1941 "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 3197 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3214 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 569:
-#line 1933 "dhcp4_parser.yy" // lalr1.cc:859
+  case 575:
+#line 1945 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
-#line 3205 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3222 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 576:
-#line 1947 "dhcp4_parser.yy" // lalr1.cc:859
+  case 582:
+#line 1959 "dhcp4_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3213 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3230 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 577:
-#line 1949 "dhcp4_parser.yy" // lalr1.cc:859
+  case 583:
+#line 1961 "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 3223 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3240 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 578:
-#line 1955 "dhcp4_parser.yy" // lalr1.cc:859
+  case 584:
+#line 1967 "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 3232 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3249 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 579:
-#line 1960 "dhcp4_parser.yy" // lalr1.cc:859
+  case 585:
+#line 1972 "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 3241 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3258 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
-  case 580:
-#line 1965 "dhcp4_parser.yy" // lalr1.cc:859
+  case 586:
+#line 1977 "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 3250 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3267 "dhcp4_parser.cc" // lalr1.cc:859
     break;
 
 
-#line 3254 "dhcp4_parser.cc" // lalr1.cc:859
+#line 3271 "dhcp4_parser.cc" // lalr1.cc:859
             default:
               break;
             }
@@ -3505,106 +3522,107 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short int Dhcp4Parser::yypact_ninf_ = -737;
+  const short int Dhcp4Parser::yypact_ninf_ = -721;
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
   const short int
   Dhcp4Parser::yypact_[] =
   {
-     425,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,    17,    24,    32,    43,    95,   106,   110,
-     114,   125,   131,   137,   142,   144,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-      24,   -65,    22,   141,    61,    41,    35,   171,   103,   343,
-     225,   -14,   346,  -737,    85,   154,   164,   162,   178,  -737,
-    -737,  -737,  -737,  -737,   196,  -737,    44,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,   205,   214,  -737,  -737,  -737,  -737,
-    -737,   244,   268,   269,   271,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,   272,  -737,  -737,  -737,   132,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,   279,
-    -737,   138,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,   281,   298,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,   139,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,   193,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,   189,
-     231,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,   293,  -737,  -737,   308,  -737,  -737,  -737,
-     310,  -737,  -737,   303,   318,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,   320,   322,
-    -737,  -737,  -737,  -737,   314,   326,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,   195,  -737,
-    -737,  -737,   328,  -737,  -737,   330,  -737,   334,   335,  -737,
-    -737,   337,   339,   342,  -737,  -737,  -737,  -737,  -737,   204,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,    24,    24,  -737,   202,
-     347,   348,   349,   351,   352,  -737,    22,  -737,   356,   213,
-     215,   370,   371,   372,   373,   375,   239,   248,   251,   252,
-     378,   385,   387,   388,   400,   402,   409,   424,   426,   427,
-     284,   429,   431,   141,  -737,   432,   433,   434,   289,    61,
-    -737,   243,   436,   437,   438,   439,   440,   441,   444,   315,
-     316,   460,   461,   463,   464,    41,  -737,   465,    35,  -737,
-     466,   467,   469,   470,   471,   474,   476,   477,  -737,   171,
-    -737,   478,   481,   338,   483,   484,   487,   344,  -737,   343,
-     488,   345,   350,  -737,   225,   492,   494,    70,  -737,   355,
-     498,   502,   359,   505,   362,   363,   508,   510,   365,   366,
-     368,   515,   516,   346,  -737,  -737,  -737,   517,   422,   518,
-      24,    24,    24,  -737,   519,  -737,  -737,   376,   377,   380,
-     524,   525,  -737,  -737,  -737,  -737,   528,   531,   532,   533,
-     534,    24,   535,   537,   538,   539,  -737,   540,   543,  -737,
-     546,   175,   210,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,   514,   541,  -737,  -737,  -737,
-     398,   405,   406,   550,   410,   411,   430,  -737,  -737,   187,
-     435,   551,   565,  -737,   442,  -737,   546,   443,   445,   446,
-     447,   448,   449,   450,  -737,   451,   452,  -737,   453,   454,
-     455,  -737,  -737,   456,  -737,  -737,  -737,   457,    24,  -737,
-    -737,   458,   459,  -737,   462,  -737,  -737,    11,   468,  -737,
-    -737,  -737,   -53,   472,  -737,    24,   141,   486,  -737,  -737,
-    -737,    61,  -737,  -737,  -737,   382,   382,   566,   567,   569,
-     571,  -737,  -737,  -737,   -40,     9,   572,    83,   130,   346,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,   576,  -737,
-     243,  -737,  -737,  -737,   574,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,   577,   496,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,   217,  -737,   218,
-    -737,  -737,   230,  -737,  -737,  -737,  -737,   581,   583,   584,
-     587,   603,  -737,  -737,  -737,   234,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,   238,  -737,   602,   608,  -737,  -737,   606,   610,  -737,
-    -737,   609,   611,  -737,  -737,   612,   613,  -737,  -737,  -737,
-    -737,  -737,  -737,    54,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,    75,  -737,   614,   618,  -737,   619,   620,   621,   622,
-     623,   624,   241,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,   242,  -737,  -737,  -737,   254,   475,   482,  -737,
-    -737,   625,   627,  -737,  -737,   626,   630,  -737,  -737,   628,
-    -737,   631,   486,  -737,  -737,   633,   634,   635,   636,   493,
-     495,   499,   500,   501,   638,   639,   382,  -737,  -737,    41,
-    -737,   566,   343,  -737,   567,   225,  -737,   569,    72,  -737,
-     571,   -40,  -737,     9,  -737,   -14,  -737,   572,   503,   504,
-     506,   507,   509,   511,    83,  -737,   640,   642,   130,  -737,
-    -737,  -737,   647,   645,  -737,    35,  -737,   574,   171,  -737,
-     577,   652,  -737,   629,  -737,   396,   513,   521,   522,  -737,
-    -737,  -737,  -737,  -737,   523,   526,  -737,   260,  -737,   650,
-    -737,   653,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,   266,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,   288,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,   544,   552,  -737,  -737,   555,   295,
-    -737,   654,  -737,   558,   656,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,    72,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,    98,  -737,
-    -737,   159,   656,  -737,  -737,   660,  -737,  -737,  -737,  -737,
-    -737,   297,  -737,  -737,  -737,  -737,  -737,   661,   527,   662,
-     159,  -737,   666,  -737,   560,  -737,   665,  -737,  -737,   128,
-    -737,    84,   665,  -737,  -737,   674,   677,   678,   307,  -737,
-    -737,  -737,  -737,  -737,  -737,   680,   559,   542,   563,    84,
-    -737,   568,  -737,  -737,  -737,  -737,  -737
+     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
   };
 
   const unsigned short int
@@ -3615,13 +3633,13 @@ namespace isc { namespace dhcp {
        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,   486,    25,
+     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,
-     541,   535,   537,   539,     0,    63,     0,    56,    58,    60,
+     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,   484,    95,     0,
+     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,
@@ -3638,10 +3656,10 @@ namespace isc { namespace dhcp {
      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,   508,   510,     0,   513,     0,     0,   517,
-     521,     0,     0,     0,   526,   533,   506,   504,   505,     0,
-     488,   490,   491,   492,   493,   494,   495,   496,   497,   498,
-     499,   500,   501,   502,   503,    42,     0,     0,    35,     0,
+     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,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -3652,7 +3670,7 @@ namespace isc { namespace dhcp {
      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,   487,    46,    39,     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,
@@ -3662,17 +3680,17 @@ namespace isc { namespace dhcp {
        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,
-     507,     0,     0,   512,     0,   515,   516,     0,     0,   523,
-     524,   525,     0,     0,   489,     0,     0,     0,   536,   538,
-     540,     0,   425,   427,   429,     0,     0,   221,   307,   344,
+     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,   509,   511,   514,   519,   520,   518,   522,   528,
-     529,   530,   531,   532,   527,   534,    40,     0,   546,     0,
-     543,   545,     0,   147,   153,   155,   157,     0,     0,     0,
+     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,
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
      145,     0,   225,     0,   222,   223,   311,     0,   308,   309,
@@ -3680,68 +3698,69 @@ namespace isc { namespace dhcp {
      181,   182,   183,     0,   172,   174,   175,   176,   177,   178,
      452,     0,   190,     0,   187,   188,     0,     0,     0,     0,
        0,     0,     0,   205,   207,   208,   209,   210,   211,   212,
-     480,   482,     0,   476,   478,   479,     0,    49,     0,   459,
-     378,     0,   375,   376,   401,     0,   398,   399,   448,     0,
-      65,     0,     0,   542,   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,   475,
-     485,    51,     0,    50,   472,     0,   373,     0,   405,   396,
-       0,     0,   447,     0,   544,     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,   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,   481,   483,    52,   379,   402,   449,   550,     0,   548,
-     285,     0,     0,   547,   564,     0,   562,   560,   554,   558,
-     559,     0,   552,   556,   557,   555,   549,     0,     0,     0,
-       0,   551,     0,   561,     0,   553,     0,   563,   568,     0,
-     566,     0,     0,   565,   576,     0,     0,     0,     0,   570,
-     572,   573,   574,   575,   567,     0,     0,     0,     0,     0,
-     569,     0,   578,   579,   580,   571,   577
+     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
   };
 
   const short int
   Dhcp4Parser::yypgoto_[] =
   {
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,   -46,  -737,   167,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,   192,  -737,  -737,  -737,   -62,
-    -737,  -737,  -737,   393,  -737,  -737,  -737,  -737,   149,   361,
-     -52,   -50,   -47,  -737,  -737,   -44,  -737,  -737,   179,   367,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,   176,   -15,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,   -69,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-     -27,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-     -28,  -737,  -737,  -737,   -25,   331,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,   -29,  -737,  -737,  -737,  -737,  -737,  -737,
-    -736,  -737,  -737,  -737,    -2,  -737,  -737,  -737,     1,   374,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -729,  -737,
-    -737,  -737,  -549,  -737,  -728,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,    -9,  -737,  -737,  -116,   -57,  -737,  -737,
-    -737,  -737,  -737,    -1,  -737,  -737,  -737,     3,  -737,   353,
-    -737,   -35,  -737,  -737,  -737,  -737,  -737,   -33,  -737,  -737,
-    -737,  -737,  -737,     5,  -737,  -737,  -737,     4,  -737,  -737,
-    -737,    10,  -737,   354,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,   -23,  -737,  -737,  -737,   -19,
-     381,  -737,  -737,   -42,  -737,   -11,  -737,  -737,  -737,  -737,
-    -737,   -34,  -737,  -737,  -737,   -30,  -737,   379,   -31,  -737,
-     -21,  -737,   -16,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -710,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-     180,  -737,  -737,  -737,  -737,  -737,  -737,  -737,    -8,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,   206,   340,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,  -737,
-    -737,    39,  -737,  -737,  -737,  -106,  -737,  -737,  -121,  -737,
-    -737,  -737,  -737,  -737,  -737,  -132,  -737,  -737,  -148,  -737,
-    -737,  -737,  -737,  -737
+    -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
   };
 
   const short int
@@ -3749,224 +3768,224 @@ namespace isc { namespace dhcp {
   {
       -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,   707,   772,   773,   118,
+      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,   725,   849,
-     638,   726,   639,   727,   640,   728,   641,   242,   392,   643,
-     644,   645,   646,   647,   734,   648,   735,   130,   346,   673,
+     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,   755,    57,    71,   278,   279,   280,   405,   281,   406,
+     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,   739,    45,    65,   178,   179,
+     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,   748,   813,   814,   135,   341,    51,
-      68,   657,   658,   659,   742,    53,    69,   243,   244,   245,
+     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,   745,    55,
+     253,   396,   254,   136,   342,   661,   662,   663,   750,    55,
       70,   264,   265,   266,   267,   268,   400,   269,   270,   271,
-     272,   191,   365,   711,   712,   713,   775,    47,    66,   202,
-     203,   204,   377,   137,   344,   138,   345,   194,   373,   715,
-     716,   717,   778,    49,    67,   219,   220,   221,   139,   331,
+     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,   719,   781,   142,   347,   681,   361,   475,   476,
-     477,   478,   479,   568,   143,   144,   351,   702,   703,   704,
-     766,   705,   767,   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,   721,   868,   869,   871,   881,   882,   883,
-     884,   889,   885,   887,   899,   900,   901,   908,   909,   910,
-     915,   911,   912,   913
+     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
   };
 
   const unsigned short int
   Dhcp4Parser::yytable_[] =
   {
-      85,   261,   150,   173,   200,   215,   680,   241,   260,   277,
-     296,   233,   809,   174,    73,   175,   159,    26,   176,   810,
-     812,   177,   157,   192,   205,   217,   605,   255,   273,    27,
-     297,    28,    79,    29,   195,   262,   222,   263,   821,    38,
-     668,   669,   670,   671,   196,   672,   223,   326,   159,   197,
-      40,   224,   327,   158,   193,   206,   218,   751,   256,   274,
-     752,   298,    95,    96,    97,    98,   609,   610,   611,   612,
-     190,   201,   216,   146,   147,   275,   276,   148,   753,   159,
-     149,   754,    76,   101,   102,   103,   107,   170,   160,   161,
-     162,   315,   107,    95,    96,    97,    98,   613,   199,   109,
-     110,   872,    42,   163,   873,   109,   110,   164,   165,   166,
-     167,   168,   169,    44,   101,   102,   103,    46,   105,   170,
-     171,    48,   809,   107,   235,   109,   110,   172,   606,   810,
-     812,   902,    50,    84,   903,   353,   109,   110,    52,   165,
-     354,   359,   375,   169,    54,    80,   360,   376,   821,    56,
-     170,    58,    93,   106,    81,    82,    83,   316,   172,   275,
-     276,    94,    95,    96,    97,    98,    99,   100,   317,    84,
-     318,    30,    31,    32,    33,   686,   687,   688,   689,   690,
-     691,   319,    84,   101,   102,   103,   104,   105,    84,   562,
-     563,   106,   107,    96,    97,    98,   378,   388,   407,   811,
-     325,   379,   108,   408,   824,   109,   110,   423,    84,   329,
-     904,   235,   424,   905,   906,   907,   111,   112,   330,    84,
-     353,   722,   107,   109,   110,   720,   723,   565,   566,   113,
-     700,   701,   114,   359,   389,   109,   110,   736,   724,   115,
-     116,   736,   737,   117,   764,   768,   738,   207,   336,   765,
-     769,   208,   209,   210,   211,   212,   213,   423,   214,   578,
-     579,   580,   770,   375,    85,    96,    97,    98,   855,   858,
-     425,   426,   337,   338,   859,   339,   350,   235,   257,   236,
-     237,   258,   259,   358,   874,   369,   875,   876,    84,   109,
-     110,   407,   467,   106,   107,   235,   860,   150,   378,   466,
-     890,   390,   370,   864,   468,   891,    84,   109,   110,   811,
-     919,   398,   393,   173,   397,   920,   200,   157,    84,   470,
-     465,   399,   403,   174,   401,   175,   402,   215,   176,   404,
-     472,   177,   409,   192,   412,   261,   205,   241,   414,   415,
-     473,   418,   260,   419,   195,   474,   420,   217,   158,   427,
-     471,   428,   429,   430,   196,   431,   432,   255,   222,   197,
-     434,   296,   273,   435,   193,   436,   469,   206,   223,   262,
-     234,   263,    84,   224,   437,   438,   439,   440,   218,   441,
-     190,   297,   446,   201,   538,   539,   540,   442,   256,   447,
-      84,   448,   449,   274,   216,   235,   443,   236,   237,   444,
-     445,   238,   239,   240,   450,   553,   451,   109,   110,   623,
-     109,   110,   298,   452,   624,   625,   626,   627,   628,   629,
-     630,   631,   632,   633,   845,   846,   847,   848,   453,   536,
-     454,   455,   456,   457,   235,   458,   460,   461,   462,   463,
-     480,   481,   482,   483,   484,   485,   109,   110,   486,   282,
-     283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
-     293,   294,   295,   487,   489,   490,   488,   491,   492,   494,
-     496,   497,   601,   498,   499,   500,   642,   642,   501,   150,
-     502,   503,   505,   634,   634,   506,   507,   508,   509,   616,
-      84,   510,   513,    84,   511,   514,   517,   296,   518,   157,
-     515,   467,   521,   649,   649,   520,   522,   523,   466,   524,
-     525,   526,   527,   468,   528,   529,   530,   297,   531,   532,
-     533,   535,   569,   542,   543,   537,   541,   544,   470,    84,
-     158,   545,   546,   547,   650,   650,   548,   549,   550,   472,
-     554,    28,   555,   556,   570,   571,   557,   558,   298,   473,
-     559,   560,   572,   573,   474,   574,   583,   575,   576,   471,
+      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,
        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,   584,   652,   656,   469,   660,   577,   664,   682,
-     708,   710,   582,   718,   714,   729,   608,   730,   731,   585,
-     587,   732,   588,   589,   590,   591,   592,   593,   594,   595,
-     596,   597,   598,   599,   600,   602,   603,   733,   740,   604,
-     618,   741,   743,   744,   747,   746,   750,   551,   749,   615,
-     756,   757,   771,   758,   759,   760,   761,   762,   763,   774,
-     777,   776,   779,   780,   844,   783,   782,   785,   786,   787,
-     788,   789,   794,   795,   834,   790,   835,   791,   838,   793,
-     792,   827,   828,   837,   829,   830,   843,   831,   856,   832,
-     850,   857,   865,   867,   888,   892,   894,   642,   851,   852,
-     853,   896,   898,   854,   634,   893,   261,   173,   916,   808,
-     241,   917,   918,   260,   921,   617,   803,   174,   586,   175,
-     923,   861,   176,   277,   649,   177,   804,   192,   805,   862,
-     255,   806,   863,   273,   807,   866,   816,   897,   195,   922,
-     262,   924,   263,   200,   459,   926,   215,   818,   196,   433,
-     622,   796,   651,   197,   823,   650,   464,   819,   193,   826,
-     825,   256,   820,   205,   274,   833,   217,   817,   519,   798,
-     797,   822,   870,   800,   190,   799,   842,   222,   841,   493,
-     709,   802,   512,   815,   840,   801,   839,   223,   516,   495,
-     836,   784,   224,   534,   206,   706,   886,   218,   504,   895,
-     914,   925,     0,     0,     0,     0,     0,     0,     0,     0,
-     201,     0,     0,   216,     0,     0,     0,     0,     0,   808,
-       0,     0,     0,     0,     0,     0,   803,     0,     0,     0,
-       0,     0,   878,     0,     0,     0,   804,     0,   805,   877,
-       0,   806,     0,     0,   807,     0,   816,     0,     0,     0,
-       0,   878,     0,     0,     0,     0,     0,   818,   877,   879,
-       0,     0,     0,     0,     0,     0,     0,   819,     0,     0,
-       0,     0,   820,     0,     0,     0,     0,   817,   879,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     880,     0,     0,   815,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   880
+      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
   };
 
   const short int
   Dhcp4Parser::yycheck_[] =
   {
-      62,    70,    64,    65,    66,    67,   555,    69,    70,    71,
-      72,    68,   748,    65,    60,    65,     7,     0,    65,   748,
-     748,    65,    64,    65,    66,    67,    15,    69,    70,     5,
-      72,     7,    10,     9,    65,    70,    67,    70,   748,     7,
-      80,    81,    82,    83,    65,    85,    67,     3,     7,    65,
-       7,    67,     8,    64,    65,    66,    67,     3,    69,    70,
-       6,    72,    21,    22,    23,    24,   119,   120,   121,   122,
-      65,    66,    67,    12,    13,    89,    90,    16,     3,     7,
-      19,     6,   147,    42,    43,    44,    51,    78,    47,    48,
-      49,     6,    51,    21,    22,    23,    24,   150,    63,    64,
-      65,     3,     7,    62,     6,    64,    65,    66,    67,    68,
-      69,    70,    71,     7,    42,    43,    44,     7,    46,    78,
-      79,     7,   858,    51,    52,    64,    65,    86,   117,   858,
-     858,     3,     7,   147,     6,     3,    64,    65,     7,    67,
-       8,     3,     3,    71,     7,   123,     8,     8,   858,     7,
-      78,     7,    11,    50,   132,   133,   134,     3,    86,    89,
-      90,    20,    21,    22,    23,    24,    25,    26,     4,   147,
-       8,   147,   148,   149,   150,    92,    93,    94,    95,    96,
-      97,     3,   147,    42,    43,    44,    45,    46,   147,    14,
-      15,    50,    51,    22,    23,    24,     3,     8,     3,   748,
-       4,     8,    61,     8,   753,    64,    65,     3,   147,     4,
-     126,    52,     8,   129,   130,   131,    75,    76,     4,   147,
-       3,     3,    51,    64,    65,     8,     8,    17,    18,    88,
-     100,   101,    91,     3,     3,    64,    65,     3,     8,    98,
-      99,     3,     8,   102,     3,     3,     8,    76,     4,     8,
-       8,    80,    81,    82,    83,    84,    85,     3,    87,    72,
-      73,    74,     8,     3,   326,    22,    23,    24,     8,     3,
-     316,   317,     4,     4,     8,     4,     4,    52,    53,    54,
-      55,    56,    57,     4,   125,     4,   127,   128,   147,    64,
-      65,     3,   361,    50,    51,    52,     8,   359,     3,   361,
-       3,     8,     4,     8,   361,     8,   147,    64,    65,   858,
-       3,     8,     4,   375,     4,     8,   378,   359,   147,   361,
-      77,     3,     8,   375,     4,   375,     4,   389,   375,     3,
-     361,   375,     4,   375,     4,   404,   378,   399,     4,     4,
-     361,     4,   404,     4,   375,   361,     4,   389,   359,   147,
-     361,     4,     4,     4,   375,     4,     4,   399,   389,   375,
-       4,   423,   404,   150,   375,   150,   361,   378,   389,   404,
-      27,   404,   147,   389,     4,     4,     4,     4,   389,     4,
-     375,   423,     4,   378,   430,   431,   432,   148,   399,     4,
-     147,     4,     4,   404,   389,    52,   148,    54,    55,   148,
-     148,    58,    59,    60,     4,   451,     4,    64,    65,    27,
-      64,    65,   423,     4,    32,    33,    34,    35,    36,    37,
-      38,    39,    40,    41,    28,    29,    30,    31,     4,     7,
-       4,     4,   148,     4,    52,     4,     4,     4,     4,   150,
-       4,     4,     4,     4,     4,     4,    64,    65,     4,   103,
-     104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
-     114,   115,   116,   148,     4,     4,   150,     4,     4,     4,
-       4,     4,   518,     4,     4,     4,   545,   546,     4,   541,
-       4,     4,     4,   545,   546,     4,   148,     4,     4,   535,
-     147,     4,     4,   147,   150,   150,     4,   559,     4,   541,
-     150,   570,     4,   545,   546,   150,     4,   148,   570,     4,
-     148,   148,     4,   570,     4,   150,   150,   559,   150,     4,
-       4,     4,     8,   147,   147,     7,     7,   147,   570,   147,
-     541,     7,     7,     5,   545,   546,     5,     5,     5,   570,
-       5,     7,     5,     5,     3,   147,     7,     7,   559,   570,
-       7,     5,   147,   147,   570,     5,     5,   147,   147,   570,
+      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,
+     107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
-     145,   146,     7,     7,     7,   570,     7,   147,     7,     7,
-       4,     7,   147,    87,     7,     4,   118,     4,     4,   147,
-     147,     4,   147,   147,   147,   147,   147,   147,   147,   147,
-     147,   147,   147,   147,   147,   147,   147,     4,     6,   147,
-     124,     3,     6,     3,     3,     6,     3,   450,     6,   147,
-       6,     3,   147,     4,     4,     4,     4,     4,     4,   147,
-       3,     6,     6,     3,     5,     4,     8,     4,     4,     4,
-       4,   148,     4,     4,     4,   150,     4,   148,     3,   148,
-     150,   148,   148,     6,   148,   148,     4,   148,     8,   148,
-     147,     8,     8,     7,     4,     4,     4,   736,   147,   147,
-     147,     5,     7,   147,   736,   148,   745,   739,     4,   748,
-     742,     4,     4,   745,     4,   536,   748,   739,   496,   739,
-     148,   147,   739,   755,   736,   739,   748,   739,   748,   147,
-     742,   748,   147,   745,   748,   147,   748,   147,   739,   150,
-     745,   148,   745,   775,   353,   147,   778,   748,   739,   326,
-     541,   736,   546,   739,   751,   736,   359,   748,   739,   757,
-     755,   742,   748,   775,   745,   764,   778,   748,   407,   741,
-     739,   750,   858,   744,   739,   742,   780,   778,   778,   375,
-     570,   747,   399,   748,   777,   745,   775,   778,   404,   378,
-     768,   722,   778,   423,   775,   559,   872,   778,   389,   890,
-     902,   919,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     775,    -1,    -1,   778,    -1,    -1,    -1,    -1,    -1,   858,
-      -1,    -1,    -1,    -1,    -1,    -1,   858,    -1,    -1,    -1,
-      -1,    -1,   871,    -1,    -1,    -1,   858,    -1,   858,   871,
-      -1,   858,    -1,    -1,   858,    -1,   858,    -1,    -1,    -1,
-      -1,   890,    -1,    -1,    -1,    -1,    -1,   858,   890,   871,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   858,    -1,    -1,
-      -1,    -1,   858,    -1,    -1,    -1,    -1,   858,   890,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     871,    -1,    -1,   858,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   890
+     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
   };
 
   const unsigned short int
@@ -3977,16 +3996,16 @@ namespace isc { namespace dhcp {
      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,   426,
+       7,   310,     7,   316,     7,   340,     7,   253,     7,   429,
      173,   168,   182,   188,   202,   278,   359,   375,   311,   317,
-     341,   254,   427,   165,   174,   175,   147,   170,   171,    10,
-     123,   132,   133,   134,   147,   180,   183,   184,   185,   453,
-     455,   457,   459,    11,    20,    21,    22,    23,    24,    25,
+     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,   424,    12,    13,    16,    19,
+     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,
@@ -4001,20 +4020,20 @@ namespace isc { namespace dhcp {
      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,   428,
-     429,   430,   431,   433,   435,   436,   438,   439,   440,   443,
-     445,   446,   447,   448,   451,     6,     3,     4,     8,     3,
-     186,   460,   454,   456,   458,     4,     3,     8,   198,     4,
+     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,   425,     3,     8,   204,   206,   209,     4,     3,
+       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,
-     432,   434,     4,   437,     4,     4,   441,   444,     4,     4,
-       4,   449,   452,     3,     8,   165,   165,   147,     4,     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,
@@ -4025,16 +4044,16 @@ namespace isc { namespace dhcp {
        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,   429,     4,     7,     7,   165,   165,
+     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,   442,   118,   119,
-     120,   121,   122,   150,   450,   147,   165,   189,   124,   461,
-     462,   463,   199,    27,    32,    33,    34,    35,    36,    37,
+     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,
@@ -4042,29 +4061,30 @@ namespace isc { namespace dhcp {
       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,
-     100,   101,   418,   419,   420,   422,   428,   177,     4,   411,
-       7,   354,   355,   356,     7,   370,   371,   372,    87,   403,
-       8,   464,     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,   421,   423,     3,     8,
-       8,   147,   178,   179,   147,   357,     6,     3,   373,     6,
-       3,   404,     8,     4,   462,     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,   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,   147,   147,   147,     8,     8,   147,     7,   465,   466,
-     307,   467,     3,     6,   125,   127,   128,   180,   228,   364,
-     366,   468,   469,   470,   471,   473,   466,   474,     4,   472,
-       3,     8,     4,   148,     4,   469,     5,   147,     7,   475,
-     476,   477,     3,     6,   126,   129,   130,   131,   478,   479,
-     480,   482,   483,   484,   476,   481,     4,     4,     4,     3,
-       8,     4,   150,   148,   148,   479,   147
+      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
   };
 
   const unsigned short int
@@ -4118,17 +4138,17 @@ namespace isc { namespace dhcp {
      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,
-     421,   420,   423,   422,   425,   424,   427,   426,   428,   428,
-     429,   429,   429,   429,   429,   429,   429,   429,   429,   429,
-     429,   429,   429,   429,   429,   429,   429,   430,   432,   431,
-     434,   433,   435,   437,   436,   438,   439,   441,   440,   442,
-     442,   444,   443,   445,   446,   447,   449,   448,   450,   450,
-     450,   450,   450,   452,   451,   454,   453,   456,   455,   458,
-     457,   460,   459,   461,   461,   462,   464,   463,   465,   465,
-     467,   466,   468,   468,   469,   469,   469,   469,   469,   469,
-     469,   470,   472,   471,   474,   473,   475,   475,   477,   476,
-     478,   478,   479,   479,   479,   479,   481,   480,   482,   483,
-     484
+     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
   };
 
   const unsigned char
@@ -4182,17 +4202,17 @@ namespace isc { namespace dhcp {
        0,     6,     1,     3,     0,     4,     0,     1,     1,     3,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     0,     4,     3,     0,     6,     1,     3,     1,     1,
-       0,     4,     0,     4,     0,     6,     0,     4,     1,     3,
+       1,     1,     1,     0,     4,     0,     4,     1,     0,     4,
+       0,     6,     0,     4,     1,     3,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     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,     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
+       0,     6,     1,     3,     0,     4,     1,     3,     1,     1,
+       1,     1,     0,     4,     3,     3,     3
   };
 
 
@@ -4310,20 +4330,21 @@ namespace isc { namespace dhcp {
   "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", "dhcp_ddns", "$@93", "sub_dhcp_ddns",
-  "$@94", "dhcp_ddns_params", "dhcp_ddns_param", "enable_updates",
-  "qualifying_suffix", "$@95", "server_ip", "$@96", "server_port",
-  "sender_ip", "$@97", "sender_port", "max_queue_size", "ncr_protocol",
-  "$@98", "ncr_protocol_value", "ncr_format", "$@99",
+  "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",
   "always_include_fqdn", "override_no_update", "override_client_update",
-  "replace_client_name", "$@100", "replace_client_name_value",
-  "generated_prefix", "$@101", "dhcp6_json_object", "$@102",
-  "dhcpddns_json_object", "$@103", "control_agent_json_object", "$@104",
-  "logging_object", "$@105", "logging_params", "logging_param", "loggers",
-  "$@106", "loggers_entries", "logger_entry", "$@107", "logger_params",
-  "logger_param", "debuglevel", "severity", "$@108", "output_options_list",
-  "$@109", "output_options_list_content", "output_entry", "$@110",
-  "output_params_list", "output_params", "output", "$@111", "flush",
+  "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
   };
 
@@ -4379,17 +4400,17 @@ namespace isc { namespace dhcp {
     1555,  1555,  1565,  1566,  1569,  1569,  1579,  1580,  1583,  1584,
     1587,  1588,  1589,  1590,  1591,  1592,  1593,  1594,  1595,  1596,
     1599,  1601,  1601,  1613,  1620,  1620,  1630,  1631,  1634,  1635,
-    1638,  1638,  1646,  1646,  1656,  1656,  1668,  1668,  1678,  1679,
-    1682,  1683,  1684,  1685,  1686,  1687,  1688,  1689,  1690,  1691,
-    1692,  1693,  1694,  1695,  1696,  1697,  1698,  1701,  1706,  1706,
-    1714,  1714,  1722,  1727,  1727,  1735,  1740,  1745,  1745,  1753,
-    1754,  1757,  1757,  1765,  1770,  1775,  1780,  1780,  1788,  1791,
-    1794,  1797,  1800,  1806,  1806,  1816,  1816,  1823,  1823,  1830,
-    1830,  1842,  1842,  1855,  1856,  1860,  1864,  1864,  1876,  1877,
-    1881,  1881,  1889,  1890,  1893,  1894,  1895,  1896,  1897,  1898,
-    1899,  1902,  1907,  1907,  1915,  1915,  1925,  1926,  1929,  1929,
-    1937,  1938,  1941,  1942,  1943,  1944,  1947,  1947,  1955,  1960,
-    1965
+    1636,  1637,  1638,  1641,  1641,  1649,  1649,  1657,  1659,  1659,
+    1668,  1668,  1680,  1680,  1690,  1691,  1694,  1695,  1696,  1697,
+    1698,  1699,  1700,  1701,  1702,  1703,  1704,  1705,  1706,  1707,
+    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
   };
 
   // Print the state stack on the debug stream.
@@ -4424,8 +4445,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:1167
 } } // isc::dhcp
-#line 4428 "dhcp4_parser.cc" // lalr1.cc:1167
-#line 1970 "dhcp4_parser.yy" // lalr1.cc:1168
+#line 4449 "dhcp4_parser.cc" // lalr1.cc:1167
+#line 1982 "dhcp4_parser.yy" // lalr1.cc:1168
 
 
 void
index ad0c81107046ad0cbb29905478592f8a0c4284c1..acf35b8edfe47047824dddffc99f6f221f64ceea 100644 (file)
@@ -1411,8 +1411,8 @@ namespace isc { namespace dhcp {
     enum
     {
       yyeof_ = 0,
-      yylast_ = 879,     ///< Last index in yytable_.
-      yynnts_ = 334,  ///< Number of nonterminal symbols.
+      yylast_ = 878,     ///< Last index in yytable_.
+      yynnts_ = 337,  ///< Number of nonterminal symbols.
       yyfinal_ = 26, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
@@ -1514,8 +1514,8 @@ namespace isc { namespace dhcp {
       case 210: // outbound_interface_value
       case 220: // db_type
       case 297: // hr_mode
-      case 442: // ncr_protocol_value
-      case 450: // replace_client_name_value
+      case 445: // ncr_protocol_value
+      case 453: // replace_client_name_value
         value.copy< ElementPtr > (other.value);
         break;
 
@@ -1558,8 +1558,8 @@ namespace isc { namespace dhcp {
       case 210: // outbound_interface_value
       case 220: // db_type
       case 297: // hr_mode
-      case 442: // ncr_protocol_value
-      case 450: // replace_client_name_value
+      case 445: // ncr_protocol_value
+      case 453: // replace_client_name_value
         value.copy< ElementPtr > (v);
         break;
 
@@ -1661,8 +1661,8 @@ namespace isc { namespace dhcp {
       case 210: // outbound_interface_value
       case 220: // db_type
       case 297: // hr_mode
-      case 442: // ncr_protocol_value
-      case 450: // replace_client_name_value
+      case 445: // ncr_protocol_value
+      case 453: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
@@ -1711,8 +1711,8 @@ namespace isc { namespace dhcp {
       case 210: // outbound_interface_value
       case 220: // db_type
       case 297: // hr_mode
-      case 442: // ncr_protocol_value
-      case 450: // replace_client_name_value
+      case 445: // ncr_protocol_value
+      case 453: // replace_client_name_value
         value.move< ElementPtr > (s.value);
         break;
 
index d56637ec9dbbfe3092ec052af9ce4714717ac10a..3e5252313738e8ddaf7505f052d41c3bd2177520 100644 (file)
@@ -1633,8 +1633,8 @@ control_socket_params: control_socket_param
 
 control_socket_param: control_socket_type
                     | control_socket_name
-                    | user_context
-                    | comment
+                    | control_socket_user_context
+                    | control_socket_comment
                     | unknown_map_entry
                     ;
 
@@ -1654,6 +1654,15 @@ control_socket_name: SOCKET_NAME {
     ctx.leave();
 };
 
+control_socket_user_context: user_context;
+
+control_socket_comment: COMMENT {
+    ctx.enter(ctx.NO_KEYWORD);
+} COLON value {
+    ctx.stack_.back()->combine_set("comment", $4);
+    ctx.leave();
+};
+
 // --- dhcp ddns ---------------------------------------------
 
 dhcp_ddns: DHCP_DDNS {
index aacf7e4208df263637bebeb21789ad9363429bbc..5241f9b2df14d86ae09d99a247a55c44b67f54d7 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712011520
+// Generated 201712021537
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Locations for Bison parsers in C++
index d10c59368fb3801def4f4a13f9d7a886f82c6bcb..309506a23b04819dd56a352e07f1986a0a59dd27 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712011520
+// Generated 201712021537
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Positions for Bison parsers in C++
index ef4cc748f6821c4381517fc86706c95f216a96c6..50f35a6df488577a8071a96511d009f5a767d5b6 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712011520
+// Generated 201712021537
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Stack handling for Bison parsers in C++
index bd621a9668469ab856a7a27bb32d5287ae07c555..d70b7ba4d382e4428f3a8ee581a14a5dbc558517 100644 (file)
@@ -1577,17 +1577,17 @@ static const flex_int16_t yy_rule_linenum[162] =
       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,  833,  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
+      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
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -2987,6 +2987,7 @@ YY_RULE_SETUP
     case isc::dhcp::Parser6Context::OPTION_DATA:
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
     case isc::dhcp::Parser6Context::SERVER_ID:
+    case isc::dhcp::Parser6Context::CONTROL_SOCKET:
     case isc::dhcp::Parser6Context::POOLS:
     case isc::dhcp::Parser6Context::PD_POOLS:
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3000,7 +3001,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 833 "dhcp6_lexer.ll"
+#line 834 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3013,6 +3014,7 @@ YY_RULE_SETUP
     case isc::dhcp::Parser6Context::OPTION_DATA:
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
     case isc::dhcp::Parser6Context::SERVER_ID:
+    case isc::dhcp::Parser6Context::CONTROL_SOCKET:
     case isc::dhcp::Parser6Context::POOLS:
     case isc::dhcp::Parser6Context::PD_POOLS:
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3026,7 +3028,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 856 "dhcp6_lexer.ll"
+#line 858 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3038,7 +3040,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 865 "dhcp6_lexer.ll"
+#line 867 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3051,7 +3053,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 875 "dhcp6_lexer.ll"
+#line 877 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3064,7 +3066,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 885 "dhcp6_lexer.ll"
+#line 887 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3076,7 +3078,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 894 "dhcp6_lexer.ll"
+#line 896 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3089,7 +3091,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 904 "dhcp6_lexer.ll"
+#line 906 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3102,7 +3104,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 914 "dhcp6_lexer.ll"
+#line 916 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3114,7 +3116,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 923 "dhcp6_lexer.ll"
+#line 925 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3126,7 +3128,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 932 "dhcp6_lexer.ll"
+#line 934 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3138,7 +3140,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 941 "dhcp6_lexer.ll"
+#line 943 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATION_MODE:
@@ -3150,7 +3152,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 950 "dhcp6_lexer.ll"
+#line 952 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3163,7 +3165,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 960 "dhcp6_lexer.ll"
+#line 962 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3175,7 +3177,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 969 "dhcp6_lexer.ll"
+#line 971 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3187,7 +3189,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 978 "dhcp6_lexer.ll"
+#line 980 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3199,7 +3201,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 987 "dhcp6_lexer.ll"
+#line 989 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3211,7 +3213,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 996 "dhcp6_lexer.ll"
+#line 998 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGING:
@@ -3223,7 +3225,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 1005 "dhcp6_lexer.ll"
+#line 1007 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3235,7 +3237,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 1014 "dhcp6_lexer.ll"
+#line 1016 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3247,7 +3249,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 1023 "dhcp6_lexer.ll"
+#line 1025 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3259,7 +3261,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 1032 "dhcp6_lexer.ll"
+#line 1034 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3271,7 +3273,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 1041 "dhcp6_lexer.ll"
+#line 1043 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
@@ -3283,7 +3285,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 1051 "dhcp6_lexer.ll"
+#line 1053 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3295,7 +3297,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 1060 "dhcp6_lexer.ll"
+#line 1062 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::LOGGERS:
@@ -3307,7 +3309,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 1069 "dhcp6_lexer.ll"
+#line 1071 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3320,7 +3322,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 1079 "dhcp6_lexer.ll"
+#line 1081 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3334,7 +3336,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 1090 "dhcp6_lexer.ll"
+#line 1092 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -3347,7 +3349,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 1100 "dhcp6_lexer.ll"
+#line 1102 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3359,7 +3361,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 1109 "dhcp6_lexer.ll"
+#line 1111 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3371,7 +3373,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 1118 "dhcp6_lexer.ll"
+#line 1120 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3383,7 +3385,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 1127 "dhcp6_lexer.ll"
+#line 1129 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -3397,7 +3399,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 1138 "dhcp6_lexer.ll"
+#line 1140 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3410,7 +3412,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 1148 "dhcp6_lexer.ll"
+#line 1150 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3422,7 +3424,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 1157 "dhcp6_lexer.ll"
+#line 1159 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3435,7 +3437,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 1167 "dhcp6_lexer.ll"
+#line 1169 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3448,7 +3450,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 1177 "dhcp6_lexer.ll"
+#line 1179 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3460,7 +3462,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 1186 "dhcp6_lexer.ll"
+#line 1188 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3472,7 +3474,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 1195 "dhcp6_lexer.ll"
+#line 1197 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3484,7 +3486,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 1204 "dhcp6_lexer.ll"
+#line 1206 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3496,7 +3498,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 1213 "dhcp6_lexer.ll"
+#line 1215 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3509,7 +3511,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 1223 "dhcp6_lexer.ll"
+#line 1225 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
@@ -3521,7 +3523,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 1232 "dhcp6_lexer.ll"
+#line 1234 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3533,7 +3535,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 1242 "dhcp6_lexer.ll"
+#line 1244 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3545,7 +3547,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 1251 "dhcp6_lexer.ll"
+#line 1253 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3557,7 +3559,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 1260 "dhcp6_lexer.ll"
+#line 1262 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3569,7 +3571,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 1269 "dhcp6_lexer.ll"
+#line 1271 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3581,7 +3583,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 1278 "dhcp6_lexer.ll"
+#line 1280 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3593,7 +3595,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 1287 "dhcp6_lexer.ll"
+#line 1289 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3605,7 +3607,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 1296 "dhcp6_lexer.ll"
+#line 1298 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3617,7 +3619,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 1305 "dhcp6_lexer.ll"
+#line 1307 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3629,7 +3631,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 1314 "dhcp6_lexer.ll"
+#line 1316 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3641,7 +3643,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 1323 "dhcp6_lexer.ll"
+#line 1325 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3653,7 +3655,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 1332 "dhcp6_lexer.ll"
+#line 1334 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3665,7 +3667,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 1341 "dhcp6_lexer.ll"
+#line 1343 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3677,7 +3679,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 1350 "dhcp6_lexer.ll"
+#line 1352 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3689,7 +3691,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 1359 "dhcp6_lexer.ll"
+#line 1361 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3701,7 +3703,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 1368 "dhcp6_lexer.ll"
+#line 1370 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3713,7 +3715,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 1377 "dhcp6_lexer.ll"
+#line 1379 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3725,7 +3727,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 1386 "dhcp6_lexer.ll"
+#line 1388 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3737,7 +3739,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 1395 "dhcp6_lexer.ll"
+#line 1397 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3749,7 +3751,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 1404 "dhcp6_lexer.ll"
+#line 1406 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3761,7 +3763,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 1413 "dhcp6_lexer.ll"
+#line 1415 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -3773,7 +3775,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 1422 "dhcp6_lexer.ll"
+#line 1424 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -3785,7 +3787,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 1431 "dhcp6_lexer.ll"
+#line 1433 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3797,7 +3799,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 1440 "dhcp6_lexer.ll"
+#line 1442 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3809,7 +3811,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 1449 "dhcp6_lexer.ll"
+#line 1451 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3821,7 +3823,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 1458 "dhcp6_lexer.ll"
+#line 1460 "dhcp6_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3833,7 +3835,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 1468 "dhcp6_lexer.ll"
+#line 1470 "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.
@@ -3935,7 +3937,7 @@ YY_RULE_SETUP
 case 145:
 /* rule 145 can match eol */
 YY_RULE_SETUP
-#line 1566 "dhcp6_lexer.ll"
+#line 1568 "dhcp6_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -3944,7 +3946,7 @@ YY_RULE_SETUP
 case 146:
 /* rule 146 can match eol */
 YY_RULE_SETUP
-#line 1571 "dhcp6_lexer.ll"
+#line 1573 "dhcp6_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -3952,7 +3954,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 1576 "dhcp6_lexer.ll"
+#line 1578 "dhcp6_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -3960,37 +3962,37 @@ YY_RULE_SETUP
        YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 1581 "dhcp6_lexer.ll"
+#line 1583 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 1582 "dhcp6_lexer.ll"
+#line 1584 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
        YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 1583 "dhcp6_lexer.ll"
+#line 1585 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 1584 "dhcp6_lexer.ll"
+#line 1586 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
        YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 1585 "dhcp6_lexer.ll"
+#line 1587 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
        YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 1586 "dhcp6_lexer.ll"
+#line 1588 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
        YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 1588 "dhcp6_lexer.ll"
+#line 1590 "dhcp6_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -4011,7 +4013,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 1606 "dhcp6_lexer.ll"
+#line 1608 "dhcp6_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -4027,7 +4029,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 1619 "dhcp6_lexer.ll"
+#line 1621 "dhcp6_lexer.ll"
 {
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -4035,33 +4037,33 @@ YY_RULE_SETUP
        YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 1624 "dhcp6_lexer.ll"
+#line 1626 "dhcp6_lexer.ll"
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
        YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 1628 "dhcp6_lexer.ll"
+#line 1630 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 1630 "dhcp6_lexer.ll"
+#line 1632 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
        YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 1632 "dhcp6_lexer.ll"
+#line 1634 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
        YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 1634 "dhcp6_lexer.ll"
+#line 1636 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
        YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 1636 "dhcp6_lexer.ll"
+#line 1638 "dhcp6_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -4087,10 +4089,10 @@ case YY_STATE_EOF(INITIAL):
        YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 1659 "dhcp6_lexer.ll"
+#line 1661 "dhcp6_lexer.ll"
 ECHO;
        YY_BREAK
-#line 4093 "dhcp6_lexer.cc"
+#line 4095 "dhcp6_lexer.cc"
 
        case YY_END_OF_BUFFER:
                {
@@ -5195,7 +5197,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 1659 "dhcp6_lexer.ll"
+#line 1661 "dhcp6_lexer.ll"
 
 
 using namespace isc::dhcp;
index 33c10a23d84827ddb98e7ff1d3e6ff6acefca048..74a013143f697088506e608701e09d0cee64a0ae 100644 (file)
@@ -258,8 +258,8 @@ namespace isc { namespace dhcp {
       case 219: // db_type
       case 295: // hr_mode
       case 428: // duid_type
-      case 461: // ncr_protocol_value
-      case 469: // replace_client_name_value
+      case 464: // ncr_protocol_value
+      case 472: // replace_client_name_value
         value.move< ElementPtr > (that.value);
         break;
 
@@ -299,8 +299,8 @@ namespace isc { namespace dhcp {
       case 219: // db_type
       case 295: // hr_mode
       case 428: // duid_type
-      case 461: // ncr_protocol_value
-      case 469: // replace_client_name_value
+      case 464: // ncr_protocol_value
+      case 472: // replace_client_name_value
         value.copy< ElementPtr > (that.value);
         break;
 
@@ -419,14 +419,14 @@ namespace isc { namespace dhcp {
 #line 420 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 461: // ncr_protocol_value
+      case 464: // ncr_protocol_value
 
 #line 228 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
 #line 427 "dhcp6_parser.cc" // lalr1.cc:636
         break;
 
-      case 469: // replace_client_name_value
+      case 472: // replace_client_name_value
 
 #line 228 "dhcp6_parser.yy" // lalr1.cc:636
         { yyoutput << yysym.value.template as< ElementPtr > (); }
@@ -635,8 +635,8 @@ namespace isc { namespace dhcp {
       case 219: // db_type
       case 295: // hr_mode
       case 428: // duid_type
-      case 461: // ncr_protocol_value
-      case 469: // replace_client_name_value
+      case 464: // ncr_protocol_value
+      case 472: // replace_client_name_value
         yylhs.value.build< ElementPtr > ();
         break;
 
@@ -2774,16 +2774,16 @@ namespace isc { namespace dhcp {
 #line 2775 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 498:
-#line 1721 "dhcp6_parser.yy" // lalr1.cc:859
+  case 501:
+#line 1724 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 2783 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 499:
-#line 1723 "dhcp6_parser.yy" // lalr1.cc:859
+  case 502:
+#line 1726 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-type", stype);
@@ -2792,16 +2792,16 @@ namespace isc { namespace dhcp {
 #line 2793 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 500:
-#line 1729 "dhcp6_parser.yy" // lalr1.cc:859
+  case 503:
+#line 1732 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
 #line 2801 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 501:
-#line 1731 "dhcp6_parser.yy" // lalr1.cc:859
+  case 504:
+#line 1734 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("socket-name", name);
@@ -2810,509 +2810,526 @@ namespace isc { namespace dhcp {
 #line 2811 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 502:
-#line 1739 "dhcp6_parser.yy" // lalr1.cc:859
+  case 506:
+#line 1742 "dhcp6_parser.yy" // lalr1.cc:859
+    {
+    ctx.enter(ctx.NO_KEYWORD);
+}
+#line 2819 "dhcp6_parser.cc" // lalr1.cc:859
+    break;
+
+  case 507:
+#line 1744 "dhcp6_parser.yy" // lalr1.cc:859
+    {
+    ctx.stack_.back()->combine_set("comment", yystack_[0].value.as< ElementPtr > ());
+    ctx.leave();
+}
+#line 2828 "dhcp6_parser.cc" // lalr1.cc:859
+    break;
+
+  case 508:
+#line 1751 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("dhcp-ddns", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.DHCP_DDNS);
 }
-#line 2822 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2839 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 503:
-#line 1744 "dhcp6_parser.yy" // lalr1.cc:859
+  case 509:
+#line 1756 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location));
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 2833 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2850 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 504:
-#line 1751 "dhcp6_parser.yy" // lalr1.cc:859
+  case 510:
+#line 1763 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // Parse the dhcp-ddns map
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.push_back(m);
 }
-#line 2843 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2860 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 505:
-#line 1755 "dhcp6_parser.yy" // lalr1.cc:859
+  case 511:
+#line 1767 "dhcp6_parser.yy" // lalr1.cc:859
     {
     // The enable updates DHCP DDNS parameter is required.
     ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
     // parsing completed
 }
-#line 2853 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2870 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 525:
-#line 1784 "dhcp6_parser.yy" // lalr1.cc:859
+  case 531:
+#line 1796 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("enable-updates", b);
 }
-#line 2862 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2879 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 526:
-#line 1789 "dhcp6_parser.yy" // lalr1.cc:859
+  case 532:
+#line 1801 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2870 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2887 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 527:
-#line 1791 "dhcp6_parser.yy" // lalr1.cc:859
+  case 533:
+#line 1803 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("qualifying-suffix", s);
     ctx.leave();
 }
-#line 2880 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2897 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 528:
-#line 1797 "dhcp6_parser.yy" // lalr1.cc:859
+  case 534:
+#line 1809 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2888 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2905 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 529:
-#line 1799 "dhcp6_parser.yy" // lalr1.cc:859
+  case 535:
+#line 1811 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-ip", s);
     ctx.leave();
 }
-#line 2898 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2915 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 530:
-#line 1805 "dhcp6_parser.yy" // lalr1.cc:859
+  case 536:
+#line 1817 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("server-port", i);
 }
-#line 2907 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2924 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 531:
-#line 1810 "dhcp6_parser.yy" // lalr1.cc:859
+  case 537:
+#line 1822 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 2915 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2932 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 532:
-#line 1812 "dhcp6_parser.yy" // lalr1.cc:859
+  case 538:
+#line 1824 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-ip", s);
     ctx.leave();
 }
-#line 2925 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2942 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 533:
-#line 1818 "dhcp6_parser.yy" // lalr1.cc:859
+  case 539:
+#line 1830 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("sender-port", i);
 }
-#line 2934 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2951 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 534:
-#line 1823 "dhcp6_parser.yy" // lalr1.cc:859
+  case 540:
+#line 1835 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("max-queue-size", i);
 }
-#line 2943 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2960 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 535:
-#line 1828 "dhcp6_parser.yy" // lalr1.cc:859
+  case 541:
+#line 1840 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NCR_PROTOCOL);
 }
-#line 2951 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2968 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 536:
-#line 1830 "dhcp6_parser.yy" // lalr1.cc:859
+  case 542:
+#line 1842 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 2960 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2977 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 537:
-#line 1836 "dhcp6_parser.yy" // lalr1.cc:859
+  case 543:
+#line 1848 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 2966 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2983 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 538:
-#line 1837 "dhcp6_parser.yy" // lalr1.cc:859
+  case 544:
+#line 1849 "dhcp6_parser.yy" // lalr1.cc:859
     { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 2972 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2989 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 539:
-#line 1840 "dhcp6_parser.yy" // lalr1.cc:859
+  case 545:
+#line 1852 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NCR_FORMAT);
 }
-#line 2980 "dhcp6_parser.cc" // lalr1.cc:859
+#line 2997 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 540:
-#line 1842 "dhcp6_parser.yy" // lalr1.cc:859
+  case 546:
+#line 1854 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("ncr-format", json);
     ctx.leave();
 }
-#line 2990 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3007 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 541:
-#line 1848 "dhcp6_parser.yy" // lalr1.cc:859
+  case 547:
+#line 1860 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("always-include-fqdn", b);
 }
-#line 2999 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3016 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 542:
-#line 1853 "dhcp6_parser.yy" // lalr1.cc:859
+  case 548:
+#line 1865 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-no-update", b);
 }
-#line 3008 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3025 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 543:
-#line 1858 "dhcp6_parser.yy" // lalr1.cc:859
+  case 549:
+#line 1870 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("override-client-update", b);
 }
-#line 3017 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3034 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 544:
-#line 1863 "dhcp6_parser.yy" // lalr1.cc:859
+  case 550:
+#line 1875 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.REPLACE_CLIENT_NAME);
 }
-#line 3025 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3042 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 545:
-#line 1865 "dhcp6_parser.yy" // lalr1.cc:859
+  case 551:
+#line 1877 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3034 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3051 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 546:
-#line 1871 "dhcp6_parser.yy" // lalr1.cc:859
+  case 552:
+#line 1883 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); 
       }
-#line 3042 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3059 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 547:
-#line 1874 "dhcp6_parser.yy" // lalr1.cc:859
+  case 553:
+#line 1886 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3050 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3067 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 548:
-#line 1877 "dhcp6_parser.yy" // lalr1.cc:859
+  case 554:
+#line 1889 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3058 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3075 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 549:
-#line 1880 "dhcp6_parser.yy" // lalr1.cc:859
+  case 555:
+#line 1892 "dhcp6_parser.yy" // lalr1.cc:859
     {
       yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location)));
       }
-#line 3066 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3083 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 550:
-#line 1883 "dhcp6_parser.yy" // lalr1.cc:859
+  case 556:
+#line 1895 "dhcp6_parser.yy" // lalr1.cc:859
     {
       error(yystack_[0].location, "boolean values for the replace-client-name are "
                 "no longer supported");
       }
-#line 3075 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3092 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 551:
-#line 1889 "dhcp6_parser.yy" // lalr1.cc:859
+  case 557:
+#line 1901 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3083 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3100 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 552:
-#line 1891 "dhcp6_parser.yy" // lalr1.cc:859
+  case 558:
+#line 1903 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("generated-prefix", s);
     ctx.leave();
 }
-#line 3093 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3110 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 553:
-#line 1899 "dhcp6_parser.yy" // lalr1.cc:859
+  case 559:
+#line 1911 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3101 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3118 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 554:
-#line 1901 "dhcp6_parser.yy" // lalr1.cc:859
+  case 560:
+#line 1913 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3110 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3127 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 555:
-#line 1906 "dhcp6_parser.yy" // lalr1.cc:859
+  case 561:
+#line 1918 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3118 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3135 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 556:
-#line 1908 "dhcp6_parser.yy" // lalr1.cc:859
+  case 562:
+#line 1920 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3127 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3144 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 557:
-#line 1913 "dhcp6_parser.yy" // lalr1.cc:859
+  case 563:
+#line 1925 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3135 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3152 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 558:
-#line 1915 "dhcp6_parser.yy" // lalr1.cc:859
+  case 564:
+#line 1927 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ());
     ctx.leave();
 }
-#line 3144 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3161 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 559:
-#line 1926 "dhcp6_parser.yy" // lalr1.cc:859
+  case 565:
+#line 1938 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
     ctx.stack_.back()->set("Logging", m);
     ctx.stack_.push_back(m);
     ctx.enter(ctx.LOGGING);
 }
-#line 3155 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3172 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 560:
-#line 1931 "dhcp6_parser.yy" // lalr1.cc:859
+  case 566:
+#line 1943 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3164 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3181 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 564:
-#line 1948 "dhcp6_parser.yy" // lalr1.cc:859
+  case 570:
+#line 1960 "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 3175 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3192 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 565:
-#line 1953 "dhcp6_parser.yy" // lalr1.cc:859
+  case 571:
+#line 1965 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3184 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3201 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 568:
-#line 1965 "dhcp6_parser.yy" // lalr1.cc:859
+  case 574:
+#line 1977 "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 3194 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3211 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 569:
-#line 1969 "dhcp6_parser.yy" // lalr1.cc:859
+  case 575:
+#line 1981 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
-#line 3202 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3219 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 579:
-#line 1986 "dhcp6_parser.yy" // lalr1.cc:859
+  case 585:
+#line 1998 "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 3211 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3228 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 580:
-#line 1991 "dhcp6_parser.yy" // lalr1.cc:859
+  case 586:
+#line 2003 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3219 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3236 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 581:
-#line 1993 "dhcp6_parser.yy" // lalr1.cc:859
+  case 587:
+#line 2005 "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 3229 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3246 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 582:
-#line 1999 "dhcp6_parser.yy" // lalr1.cc:859
+  case 588:
+#line 2011 "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 3240 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3257 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 583:
-#line 2004 "dhcp6_parser.yy" // lalr1.cc:859
+  case 589:
+#line 2016 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
     ctx.leave();
 }
-#line 3249 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3266 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 586:
-#line 2013 "dhcp6_parser.yy" // lalr1.cc:859
+  case 592:
+#line 2025 "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 3259 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3276 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 587:
-#line 2017 "dhcp6_parser.yy" // lalr1.cc:859
+  case 593:
+#line 2029 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.stack_.pop_back();
 }
-#line 3267 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3284 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 594:
-#line 2031 "dhcp6_parser.yy" // lalr1.cc:859
+  case 600:
+#line 2043 "dhcp6_parser.yy" // lalr1.cc:859
     {
     ctx.enter(ctx.NO_KEYWORD);
 }
-#line 3275 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3292 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 595:
-#line 2033 "dhcp6_parser.yy" // lalr1.cc:859
+  case 601:
+#line 2045 "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 3285 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3302 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 596:
-#line 2039 "dhcp6_parser.yy" // lalr1.cc:859
+  case 602:
+#line 2051 "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 3294 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3311 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 597:
-#line 2044 "dhcp6_parser.yy" // lalr1.cc:859
+  case 603:
+#line 2056 "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 3303 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3320 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
-  case 598:
-#line 2049 "dhcp6_parser.yy" // lalr1.cc:859
+  case 604:
+#line 2061 "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 3312 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3329 "dhcp6_parser.cc" // lalr1.cc:859
     break;
 
 
-#line 3316 "dhcp6_parser.cc" // lalr1.cc:859
+#line 3333 "dhcp6_parser.cc" // lalr1.cc:859
             default:
               break;
             }
@@ -3567,110 +3584,111 @@ namespace isc { namespace dhcp {
   }
 
 
-  const short int Dhcp6Parser::yypact_ninf_ = -729;
+  const short int Dhcp6Parser::yypact_ninf_ = -745;
 
   const signed char Dhcp6Parser::yytable_ninf_ = -1;
 
   const short int
   Dhcp6Parser::yypact_[] =
   {
-     264,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,    25,    15,    20,    22,    69,    71,
-      73,    77,    94,   110,   117,   193,   199,   221,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,    15,   -15,    13,   121,    29,    33,
-     164,   142,   315,   203,    12,   227,   -10,   340,  -729,   270,
-     275,   296,   298,   305,  -729,  -729,  -729,  -729,  -729,   316,
-    -729,    74,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,   320,   328,   329,   335,   336,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,   337,
-    -729,  -729,  -729,   100,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-     343,  -729,   113,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,   345,   358,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,   130,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,   140,  -729,  -729,  -729,  -729,  -729,
-     362,  -729,   365,   369,  -729,  -729,  -729,  -729,   216,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,   367,   373,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,   372,  -729,  -729,   377,
-    -729,  -729,  -729,   378,  -729,  -729,   379,   382,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,   384,   396,  -729,  -729,  -729,  -729,   409,   417,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,   224,  -729,  -729,  -729,   418,  -729,  -729,   419,  -729,
-     420,   421,  -729,  -729,   425,   426,   427,  -729,  -729,  -729,
-    -729,  -729,   228,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,    15,
-      15,  -729,   280,   429,   430,   431,   432,   433,  -729,    13,
-    -729,   434,   436,   437,   268,   290,   291,   292,   307,   457,
-     458,   459,   460,   461,   462,   464,   465,   466,   467,   468,
-     469,   470,   325,   475,   478,   121,  -729,   479,   330,    29,
-    -729,   173,   480,   482,   483,   484,   485,   341,   342,   486,
-     491,   492,   495,    33,  -729,   496,   164,  -729,   497,   353,
-     503,   355,   356,   142,  -729,   507,   508,   509,   510,   511,
-     516,   518,  -729,   315,  -729,   519,   520,   375,   521,   525,
-     526,   376,  -729,    12,   529,   380,   381,  -729,   227,   533,
-     534,   132,  -729,   385,   537,   538,   390,   540,   392,   393,
-     543,   544,   394,   395,   397,   547,   549,   340,  -729,  -729,
-    -729,   550,   551,   552,    15,    15,    15,  -729,   553,   554,
-     555,  -729,  -729,  -729,  -729,  -729,   558,   559,   560,   561,
-      15,   562,   564,   565,   566,   567,   568,   569,   570,  -729,
-     571,   572,  -729,   575,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,   548,   563,  -729,  -729,  -729,   576,   577,   405,
-     422,   423,  -729,  -729,    80,   435,   578,   579,  -729,   438,
-    -729,   439,  -729,   440,  -729,  -729,  -729,   575,   575,   575,
-     441,   442,   443,   444,  -729,   445,   446,  -729,   447,   448,
-     449,  -729,  -729,   450,  -729,  -729,  -729,   451,    15,  -729,
-    -729,   452,   453,  -729,   454,  -729,  -729,   138,   463,  -729,
-    -729,  -729,   -14,   455,  -729,    15,   121,   456,  -729,  -729,
-    -729,    29,   225,   225,   581,   582,   601,  -729,  -729,  -729,
-     602,   -39,    15,   321,    14,   603,    84,    63,   185,   340,
-    -729,  -729,   607,  -729,   173,   605,   606,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,   608,   532,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-     231,  -729,   234,  -729,  -729,   235,  -729,  -729,  -729,  -729,
-     612,   613,   614,   615,   616,  -729,  -729,  -729,   253,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,   254,  -729,   617,   618,  -729,  -729,
-     619,   621,  -729,  -729,   620,   624,  -729,  -729,   622,   626,
-    -729,  -729,  -729,   112,  -729,  -729,  -729,   625,  -729,  -729,
-    -729,   124,  -729,  -729,  -729,  -729,   128,  -729,   627,   629,
-    -729,   630,   631,   632,   633,   634,   635,   257,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,   636,   637,   638,
-    -729,  -729,  -729,  -729,   269,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,   271,  -729,  -729,  -729,   272,   493,   494,
-    -729,  -729,   641,   640,  -729,  -729,   642,   646,  -729,  -729,
-     644,   648,  -729,  -729,   645,  -729,   650,   456,  -729,  -729,
-     651,   652,   653,   654,   477,   489,   499,   504,   512,   656,
-     657,   225,  -729,  -729,    33,  -729,   581,    12,  -729,   582,
-     227,  -729,   601,    66,  -729,   602,   -39,  -729,  -729,   321,
-    -729,    14,  -729,   -10,  -729,   603,   513,   514,   515,   517,
-     522,   523,    84,  -729,   658,   659,   524,   527,   528,    63,
-    -729,   660,   665,   185,  -729,  -729,  -729,   666,   668,  -729,
-     164,  -729,   605,   142,  -729,   606,   315,  -729,   608,   669,
-    -729,   673,  -729,   311,   530,   531,   535,  -729,  -729,  -729,
-    -729,  -729,   541,   584,  -729,   282,  -729,   671,  -729,   676,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,   283,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,   284,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,    88,   587,  -729,  -729,  -729,  -729,   589,   590,
-    -729,  -729,   591,   293,  -729,   294,  -729,   682,  -729,   592,
-     667,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,    66,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-     351,  -729,  -729,   287,   667,  -729,  -729,   688,  -729,  -729,
-    -729,  -729,  -729,   295,  -729,  -729,  -729,  -729,  -729,   692,
-     557,   700,   287,  -729,   701,  -729,   594,  -729,   698,  -729,
-    -729,   357,  -729,    75,   698,  -729,  -729,   710,   711,   713,
-     301,  -729,  -729,  -729,  -729,  -729,  -729,   714,   573,   574,
-     580,    75,  -729,   595,  -729,  -729,  -729,  -729,  -729
+     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
   };
 
   const unsigned short int
@@ -3682,13 +3700,13 @@ namespace isc { namespace dhcp {
       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,   504,    27,    45,    39,     0,     0,     0,     0,
+     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,   559,   553,   555,   557,     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,   502,    96,     0,    70,    72,    73,    74,    75,    76,
+     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,
@@ -3704,10 +3722,10 @@ namespace isc { namespace dhcp {
      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,   526,   528,     0,   531,
-       0,     0,   535,   539,     0,     0,     0,   544,   551,   524,
-     522,   523,     0,   506,   508,   509,   510,   511,   512,   513,
-     514,   515,   516,   517,   518,   519,   520,   521,    44,     0,
+     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,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -3718,7 +3736,7 @@ namespace isc { namespace dhcp {
        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,   505,    48,
+       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,
@@ -3728,16 +3746,16 @@ namespace isc { namespace dhcp {
      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,
-     525,     0,     0,   530,     0,   533,   534,     0,     0,   541,
-     542,   543,     0,     0,   507,     0,     0,     0,   554,   556,
-     558,     0,     0,     0,   216,   290,   327,    38,   375,   377,
+     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,   527,   529,   532,   537,   538,
-     536,   540,   546,   547,   548,   549,   550,   545,   552,    42,
-       0,   564,     0,   561,   563,     0,   137,   143,   145,   147,
+     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,
      132,   133,   134,   135,     0,   220,     0,   217,   218,   294,
@@ -3747,72 +3765,74 @@ namespace isc { namespace dhcp {
      183,     0,     0,     0,     0,     0,     0,     0,   200,   202,
      203,   204,   205,   206,   207,   481,   487,     0,     0,     0,
      480,   477,   478,   479,     0,   470,   472,   475,   473,   474,
-     476,   498,   500,     0,   494,   496,   497,     0,    51,     0,
-     458,   361,     0,   358,   359,   384,     0,   381,   382,   412,
-       0,   409,   410,   447,     0,    67,     0,     0,   560,   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,   493,   503,    53,     0,    52,   467,
-       0,   356,     0,     0,   379,     0,   416,   407,     0,     0,
-     446,     0,   562,     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,
-     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,   499,   501,    54,   362,   385,   413,   448,   568,
-       0,   566,   269,     0,     0,   565,   582,     0,   580,   578,
-     572,   576,   577,     0,   570,   574,   575,   573,   567,     0,
-       0,     0,     0,   569,     0,   579,     0,   571,     0,   581,
-     586,     0,   584,     0,     0,   583,   594,     0,     0,     0,
-       0,   588,   590,   591,   592,   593,   585,     0,     0,     0,
-       0,     0,   587,     0,   596,   597,   598,   589,   595
+     476,   506,   501,   503,   500,   505,     0,   494,   496,   497,
+     498,   499,     0,    51,     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
   };
 
   const short int
   Dhcp6Parser::yypgoto_[] =
   {
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,    -8,  -729,   281,  -729,  -729,
-    -729,  -729,  -729,  -729,    70,  -729,  -184,  -729,  -729,  -729,
-     -66,  -729,  -729,  -729,   391,  -729,  -729,  -729,  -729,   188,
-     366,   -68,   -55,   -54,   -51,  -729,  -729,  -729,  -729,  -729,
-     190,   389,  -729,  -729,  -729,  -729,  -729,  -729,  -729,   206,
-      -1,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,   -62,  -729,  -545,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,   -13,  -534,  -729,  -729,  -729,  -729,
-     -17,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,   -20,
-    -729,  -729,  -729,   -16,   347,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,   -26,  -729,  -729,  -729,  -729,  -729,  -729,  -728,
-    -729,  -729,  -729,     3,  -729,  -729,  -729,     6,   388,  -729,
-    -729,  -715,  -729,  -708,  -729,  -538,  -729,  -707,  -729,  -729,
-    -729,  -693,  -729,  -729,  -729,  -729,    -2,  -729,  -729,  -128,
-     694,  -729,  -729,  -729,  -729,  -729,    10,  -729,  -729,  -729,
-      16,  -729,   368,  -729,   -58,  -729,  -729,  -729,  -729,  -729,
-     -49,  -729,  -729,  -729,  -729,  -729,    -9,  -729,  -729,  -729,
-       8,  -729,  -729,  -729,    17,  -729,   364,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,   -28,  -729,
-    -729,  -729,   -24,   403,  -729,  -729,   -38,  -729,   -25,  -729,
-    -729,  -729,  -729,  -729,   -23,  -729,  -729,  -729,   -19,   400,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,   -22,  -729,  -729,  -729,   -21,  -729,   387,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -691,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,   223,  -729,  -729,  -729,  -729,  -729,  -729,     0,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,    -5,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,   233,   363,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,  -729,
-    -729,  -729,  -729,  -729,  -729,    56,  -729,  -729,  -729,  -119,
-    -729,  -729,  -136,  -729,  -729,  -729,  -729,  -729,  -729,  -146,
-    -729,  -729,  -162,  -729,  -729,  -729,  -729,  -729
+    -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
   };
 
   const short int
@@ -3820,231 +3840,238 @@ namespace isc { namespace dhcp {
   {
       -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,   718,   797,   798,
+      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,   740,   885,   631,   741,   632,   742,   633,   743,
-     634,   245,   396,   636,   637,   638,   639,   640,   749,   641,
-     750,   133,   345,   663,   664,   665,   666,   134,   347,   671,
+     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,
-     773,    61,    76,   281,   282,   283,   409,   284,   410,   137,
+     778,    61,    76,   281,   282,   283,   409,   284,   410,   137,
      350,   687,   688,   689,   690,   691,   692,   693,   694,   138,
-     339,   646,   647,   648,   754,    47,    69,   175,   176,   177,
+     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,   763,   843,   844,
-     140,   340,    55,    73,   650,   651,   652,   757,    57,    74,
+     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,   760,    59,    75,   267,   268,   269,   270,   271,   404,
-     272,   273,   274,   275,   185,   362,   722,   723,   724,   800,
+     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,   726,   727,   728,   803,    51,    71,   208,   209,
-     210,   378,   211,   212,   380,   213,   214,   189,   371,   730,
-     731,   732,   806,    53,    72,   226,   227,   228,   229,   386,
+     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,   734,   809,   144,   348,   676,   361,
+     235,   385,   190,   372,   739,   815,   144,   348,   676,   361,
      472,   473,   474,   475,   476,   562,   145,   351,   704,   705,
-     706,   784,   900,   707,   708,   785,   709,   710,   146,   147,
-     353,   713,   714,   715,   791,   716,   792,   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,   736,   910,   911,
-     913,   923,   924,   925,   926,   931,   927,   929,   941,   942,
-     943,   950,   951,   952,   957,   953,   954,   955
+     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
   };
 
   const unsigned short int
   Dhcp6Parser::yytable_[] =
   {
-      90,   171,   151,   170,   192,   204,   222,    36,   244,   263,
-     280,   299,   701,   264,   172,   173,   675,   265,   174,   670,
-      29,   158,    30,    84,    31,    28,   266,    40,   237,    42,
-     156,   186,   197,   206,   224,   837,   258,   276,   661,   300,
-     158,   149,   150,   157,   187,   198,   207,   225,   838,   259,
-     277,   238,   301,   239,   240,   839,   841,   241,   242,   243,
-     184,   193,   205,   223,   101,   102,   103,   104,   109,   110,
-     842,   108,   848,   158,   278,   279,    44,   329,    46,   695,
-      48,   159,   330,   160,    50,   109,   110,   167,   621,   109,
-     110,   161,   162,   163,   164,   165,   166,   101,   102,   103,
-     104,    52,   106,   355,   108,   238,   167,   168,   356,   602,
-     603,   604,   605,   662,   169,   766,   359,    54,   767,   109,
-     110,   360,   109,   110,    56,   162,   163,   769,   165,   166,
-     770,   771,    98,   373,   772,    99,   100,    81,   374,   167,
-      85,   606,    89,   376,   570,   571,   572,   169,   377,    86,
-      87,    88,   101,   102,   103,   104,   105,   106,   107,   108,
-     696,   697,   698,   699,    89,    89,   837,    32,    33,    34,
-      35,   681,   682,   683,   684,   685,   686,   109,   110,   838,
-     108,    89,   897,   898,   899,    89,   839,   841,   111,   112,
-     113,   114,   115,   199,   200,   201,   202,   203,   109,   110,
-      58,   842,   108,   848,   116,   946,    60,   117,   947,   948,
-     949,   108,   238,   191,   118,    89,   278,   279,    89,   383,
-     109,   110,   119,   120,   384,   840,   121,   411,    62,   109,
-     110,   427,   412,   852,   355,   670,   428,   737,   359,   735,
-     107,   616,   738,   739,   701,   466,   617,   618,   619,   620,
-     621,   622,   623,   624,   625,   626,   751,   751,   598,   599,
-     782,   752,   753,    90,   238,   783,   238,   260,   239,   240,
-     261,   262,   789,    89,   793,   427,   318,   790,   319,   794,
-     795,   109,   110,   109,   110,   373,   894,   411,   711,   712,
-     891,   895,   896,   151,    89,   467,   376,   383,   932,   468,
-     320,   905,   906,   933,   961,   171,   321,   170,   322,   962,
-     192,   429,   430,   580,   581,   582,    89,   204,   172,   173,
-     328,   156,   174,   470,   334,    89,   238,   222,   881,   882,
-     883,   884,   335,   336,   157,   186,   471,   244,   197,   337,
-     338,   352,   263,   109,   110,   206,   264,   358,   187,   367,
-     265,   198,   469,   108,   914,   224,   840,   915,   207,   266,
-     944,   299,   368,   945,   184,   258,   379,   193,   225,   381,
-     276,   109,   110,   382,   205,   392,   393,    89,   259,    89,
-     394,   397,   401,   277,   223,   403,   215,   402,   405,   300,
-     216,   217,   218,   219,   220,   221,   109,   110,   661,   668,
-     406,   669,   301,     1,     2,     3,     4,     5,     6,     7,
-       8,     9,    10,    11,    12,    13,   916,   407,   917,   918,
-     408,   441,   413,   416,   418,   419,   538,   539,   540,   422,
-     423,   424,   431,   432,   433,   434,   435,   436,   438,    89,
-     439,   440,   549,   442,   443,   444,   285,   286,   287,   288,
-     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     445,   446,   447,   448,   449,   450,   451,    89,   452,   453,
-     454,   455,   456,   457,   458,   151,   627,   627,   459,   460,
-     635,   635,   461,   463,   477,   464,   478,   479,   480,   481,
-     484,   700,    89,   299,   482,   485,   486,   483,   467,   487,
-     489,   491,   468,   156,   642,   642,   492,   493,   494,   495,
-     594,   497,   498,   499,   500,   501,   157,   643,   643,   702,
-     502,   300,   503,   505,   506,   508,   470,   609,   507,   509,
-     510,   511,   703,   513,   301,   514,   515,   517,   518,   471,
-     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
-     530,   532,   531,   533,   535,   469,   563,   567,   536,   537,
-     541,   542,   543,   544,   545,   546,   564,   550,    30,   551,
-     552,   553,   554,   555,   568,   569,   556,   557,   558,   559,
-     560,   565,   566,   575,   611,   601,   576,   574,   645,   649,
-     577,   578,   579,   583,   584,   585,   586,   587,   588,   589,
-     590,   591,   592,   593,   595,   596,   597,   608,   653,   657,
-     677,   719,   721,   725,   733,   729,   744,   745,   746,   747,
-     748,   756,   667,   755,   759,   758,   761,   762,   764,   765,
-     817,   768,   775,   774,   776,   777,   778,   779,   780,   781,
-     786,   787,   788,   802,   818,   796,   799,   801,   804,   805,
-     807,   808,   819,   810,   811,   813,   814,   815,   816,   820,
-     822,   823,   862,   863,   868,   821,   855,   856,   857,   869,
-     858,   872,   871,   879,   909,   859,   860,   864,   880,   892,
-     865,   866,   886,   887,   893,   627,   171,   888,   170,   635,
-     907,   244,   930,   889,   263,   832,   934,   831,   264,   172,
-     173,   836,   265,   174,   936,   940,   938,   280,   833,   834,
-     935,   266,   835,   642,   958,   959,   186,   960,   963,   258,
-     437,   462,   276,   700,   610,   846,   643,   965,   964,   187,
-     547,   615,   259,   966,   192,   277,   890,   204,   847,   901,
-     222,   902,   903,   904,   908,   184,   939,   968,   465,   644,
-     824,   702,   851,   850,   845,   854,   861,   853,   519,   826,
-     825,   488,   197,   849,   703,   206,   912,   236,   224,   828,
-     830,   512,   516,   827,   874,   198,   873,   829,   207,   490,
-     504,   225,   876,   496,   875,   877,   878,   720,   870,   867,
-     534,   193,   717,   812,   205,   928,   937,   223,   956,   967,
+      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,
        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,     0,     0,     0,     0,     0,   832,     0,   831,     0,
-       0,     0,   836,     0,     0,     0,     0,     0,     0,   833,
-     834,     0,     0,   835,     0,     0,     0,   919,     0,     0,
-       0,   920,     0,     0,     0,     0,   846,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   919,     0,     0,   847,
-     920,     0,     0,     0,     0,   921,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   845,     0,     0,   922,     0,
-       0,     0,     0,     0,   921,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   922
+       0,   930
   };
 
   const short int
   Dhcp6Parser::yycheck_[] =
   {
-      66,    69,    68,    69,    70,    71,    72,    15,    74,    75,
-      76,    77,   557,    75,    69,    69,   554,    75,    69,   553,
-       5,     7,     7,    10,     9,     0,    75,     7,    16,     7,
-      68,    69,    70,    71,    72,   763,    74,    75,    77,    77,
-       7,    12,    13,    68,    69,    70,    71,    72,   763,    74,
-      75,    39,    77,    41,    42,   763,   763,    45,    46,    47,
-      69,    70,    71,    72,    31,    32,    33,    34,    56,    57,
-     763,    38,   763,     7,    84,    85,     7,     3,     7,    16,
-       7,    48,     8,    50,     7,    56,    57,    73,    25,    56,
-      57,    58,    59,    60,    61,    62,    63,    31,    32,    33,
-      34,     7,    36,     3,    38,    39,    73,    74,     8,   123,
-     124,   125,   126,   152,    81,     3,     3,     7,     6,    56,
-      57,     8,    56,    57,     7,    59,    60,     3,    62,    63,
-       6,     3,    11,     3,     6,    14,    15,   152,     8,    73,
-     127,   155,   152,     3,    64,    65,    66,    81,     8,   136,
-     137,   138,    31,    32,    33,    34,    35,    36,    37,    38,
-      97,    98,    99,   100,   152,   152,   894,   152,   153,   154,
-     155,    87,    88,    89,    90,    91,    92,    56,    57,   894,
-      38,   152,    94,    95,    96,   152,   894,   894,    67,    68,
-      69,    70,    71,    51,    52,    53,    54,    55,    56,    57,
-       7,   894,    38,   894,    83,   130,     7,    86,   133,   134,
-     135,    38,    39,    49,    93,   152,    84,    85,   152,     3,
-      56,    57,   101,   102,     8,   763,   105,     3,     7,    56,
-      57,     3,     8,   771,     3,   769,     8,     3,     3,     8,
-      37,    16,     8,     8,   789,    72,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,     3,     3,   120,   121,
-       3,     8,     8,   329,    39,     8,    39,    40,    41,    42,
-      43,    44,     3,   152,     3,     3,     6,     8,     3,     8,
-       8,    56,    57,    56,    57,     3,     3,     3,   103,   104,
-       8,     8,     8,   359,   152,   361,     3,     3,     3,   361,
-       4,     8,     8,     8,     3,   373,     8,   373,     3,     8,
-     376,   319,   320,   497,   498,   499,   152,   383,   373,   373,
-       4,   359,   373,   361,     4,   152,    39,   393,    17,    18,
-      19,    20,     4,     4,   359,   373,   361,   403,   376,     4,
-       4,     4,   408,    56,    57,   383,   408,     4,   373,     4,
-     408,   376,   361,    38,     3,   393,   894,     6,   383,   408,
-       3,   427,     4,     6,   373,   403,     4,   376,   393,     4,
-     408,    56,    57,     4,   383,     8,     3,   152,   403,   152,
-       8,     4,     4,   408,   393,     3,    71,     8,     4,   427,
-      75,    76,    77,    78,    79,    80,    56,    57,    77,    78,
-       4,    80,   427,   139,   140,   141,   142,   143,   144,   145,
-     146,   147,   148,   149,   150,   151,   129,     8,   131,   132,
-       3,   153,     4,     4,     4,     4,   434,   435,   436,     4,
-       4,     4,   152,     4,     4,     4,     4,     4,     4,   152,
-       4,     4,   450,   153,   153,   153,   106,   107,   108,   109,
-     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     153,     4,     4,     4,     4,     4,     4,   152,     4,     4,
-       4,     4,     4,     4,     4,   541,   542,   543,   153,     4,
-     542,   543,     4,     4,     4,   155,     4,     4,     4,     4,
-       4,   557,   152,   559,   153,     4,     4,   155,   564,     4,
-       4,     4,   564,   541,   542,   543,   153,     4,   153,   153,
-     518,     4,     4,     4,     4,     4,   541,   542,   543,   557,
-       4,   559,     4,     4,     4,     4,   564,   535,   153,     4,
-       4,   155,   557,     4,   559,   155,   155,     4,     4,   564,
-     155,     4,     4,   153,     4,   153,   153,     4,     4,   155,
-     155,     4,   155,     4,     4,   564,     8,   152,     7,     7,
-       7,     7,     7,     5,     5,     5,     3,     5,     7,     5,
-       5,     5,     5,     5,   152,   152,     7,     7,     7,     7,
-       5,     5,     5,     5,   128,   122,     7,   152,     7,     7,
-     152,   152,   152,   152,   152,   152,   152,   152,   152,   152,
-     152,   152,   152,   152,   152,   152,   152,   152,     7,     7,
-       7,     4,     7,     7,    82,     7,     4,     4,     4,     4,
-       4,     3,   552,     6,     3,     6,     6,     3,     6,     3,
-     153,     6,     3,     6,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     3,   155,   152,   152,     6,     6,     3,
-       6,     3,   153,     8,     4,     4,     4,     4,     4,   155,
-       4,     4,     4,     4,     4,   153,   153,   153,   153,     4,
-     153,     3,     6,     4,     7,   153,   153,   153,     5,     8,
-     153,   153,   152,   152,     8,   751,   754,   152,   754,   751,
-       8,   757,     4,   152,   760,   763,     4,   763,   760,   754,
-     754,   763,   760,   754,     4,     7,     5,   773,   763,   763,
-     153,   760,   763,   751,     4,     4,   754,     4,     4,   757,
-     329,   355,   760,   789,   536,   763,   751,   153,   155,   754,
-     449,   541,   757,   153,   800,   760,   152,   803,   763,   152,
-     806,   152,   152,   152,   152,   754,   152,   152,   359,   543,
-     751,   789,   769,   766,   763,   775,   782,   773,   411,   756,
-     754,   373,   800,   765,   789,   803,   894,    73,   806,   759,
-     762,   403,   408,   757,   802,   800,   800,   760,   803,   376,
-     393,   806,   805,   383,   803,   806,   808,   564,   793,   789,
-     427,   800,   559,   737,   803,   914,   932,   806,   944,   961,
+      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,
       -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,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   894,    -1,   894,    -1,
-      -1,    -1,   894,    -1,    -1,    -1,    -1,    -1,    -1,   894,
-     894,    -1,    -1,   894,    -1,    -1,    -1,   913,    -1,    -1,
-      -1,   913,    -1,    -1,    -1,    -1,   894,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   932,    -1,    -1,   894,
-     932,    -1,    -1,    -1,    -1,   913,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   894,    -1,    -1,   913,    -1,
-      -1,    -1,    -1,    -1,   932,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   932
+      -1,   940
   };
 
   const unsigned short int
@@ -4056,15 +4083,15 @@ namespace isc { namespace dhcp {
        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,   445,   179,   174,   188,   194,   205,   282,
-     357,   373,   390,   309,   315,   339,   258,   446,   171,   180,
+       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,   472,   474,   476,   478,    11,    14,
+     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,   443,    12,
+     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,
@@ -4080,19 +4107,19 @@ namespace isc { namespace dhcp {
      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,   447,   448,   449,   450,   452,   454,   455,   457,
-     458,   459,   462,   464,   465,   466,   467,   470,     6,     3,
-       4,     8,     3,   192,   479,   473,   475,   477,     4,     3,
+     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,   444,     3,     8,   209,     4,     3,
+     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,   451,   453,     4,   456,     4,     4,
-     460,   463,     4,     4,     4,   468,   471,     3,     8,   171,
+     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,
@@ -4103,15 +4130,15 @@ namespace isc { namespace dhcp {
        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,   448,     4,     7,     7,   171,   171,
+     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,
-     461,   122,   123,   124,   125,   126,   155,   469,   152,   171,
-     195,   128,   480,   481,   482,   206,    16,    21,    22,    23,
+     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,
@@ -4121,32 +4148,33 @@ namespace isc { namespace dhcp {
      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,   103,   104,   437,   438,   439,   441,   447,   183,     4,
-     418,     7,   352,   353,   354,     7,   368,   369,   370,     7,
-     385,   386,   387,    82,   410,     8,   483,     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,   440,   442,     3,     8,     8,   152,   184,   185,   152,
-     355,     6,     3,   371,     6,     3,   388,     6,     3,   411,
-       8,     4,   481,     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,
-     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,   152,   152,   152,     8,     8,     8,   152,     7,
-     484,   485,   305,   486,     3,     6,   129,   131,   132,   186,
-     227,   362,   364,   487,   488,   489,   490,   492,   485,   493,
-       4,   491,     3,     8,     4,   153,     4,   488,     5,   152,
-       7,   494,   495,   496,     3,     6,   130,   133,   134,   135,
-     497,   498,   499,   501,   502,   503,   495,   500,     4,     4,
-       4,     3,     8,     4,   155,   153,   153,   498,   152
+     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
   };
 
   const unsigned short int
@@ -4201,17 +4229,18 @@ namespace isc { namespace dhcp {
      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,   440,   439,
-     442,   441,   444,   443,   446,   445,   447,   447,   448,   448,
-     448,   448,   448,   448,   448,   448,   448,   448,   448,   448,
-     448,   448,   448,   448,   448,   449,   451,   450,   453,   452,
-     454,   456,   455,   457,   458,   460,   459,   461,   461,   463,
-     462,   464,   465,   466,   468,   467,   469,   469,   469,   469,
-     469,   471,   470,   473,   472,   475,   474,   477,   476,   479,
-     478,   480,   480,   481,   483,   482,   484,   484,   486,   485,
-     487,   487,   488,   488,   488,   488,   488,   488,   488,   489,
-     491,   490,   493,   492,   494,   494,   496,   495,   497,   497,
-     498,   498,   498,   498,   500,   499,   501,   502,   503
+     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
   };
 
   const unsigned char
@@ -4266,17 +4295,18 @@ namespace isc { namespace dhcp {
        1,     1,     1,     1,     1,     1,     0,     4,     0,     6,
        1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     0,     4,     1,     1,     1,     3,     0,     4,     3,
-       3,     3,     0,     6,     1,     3,     1,     1,     0,     4,
-       0,     4,     0,     6,     0,     4,     1,     3,     1,     1,
+       3,     3,     0,     6,     1,     3,     1,     1,     1,     1,
+       1,     0,     4,     0,     4,     1,     0,     4,     0,     6,
+       0,     4,     1,     3,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     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
+       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
   };
 
 
@@ -4398,20 +4428,21 @@ namespace isc { namespace dhcp {
   "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", "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", "$@102", "replace_client_name_value",
-  "generated_prefix", "$@103", "dhcp4_json_object", "$@104",
-  "dhcpddns_json_object", "$@105", "control_agent_json_object", "$@106",
-  "logging_object", "$@107", "logging_params", "logging_param", "loggers",
-  "$@108", "loggers_entries", "logger_entry", "$@109", "logger_params",
-  "logger_param", "debuglevel", "severity", "$@110", "output_options_list",
-  "$@111", "output_options_list_content", "output_entry", "$@112",
-  "output_params_list", "output_params", "output", "$@113", "flush",
+  "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",
   "maxsize", "maxver", YY_NULLPTR
   };
 
@@ -4468,17 +4499,18 @@ namespace isc { namespace dhcp {
     1612,  1613,  1614,  1615,  1616,  1619,  1621,  1621,  1632,  1632,
     1644,  1645,  1648,  1649,  1650,  1651,  1652,  1653,  1654,  1655,
     1656,  1659,  1659,  1666,  1667,  1668,  1671,  1676,  1676,  1684,
-    1689,  1696,  1703,  1703,  1713,  1714,  1717,  1718,  1721,  1721,
-    1729,  1729,  1739,  1739,  1751,  1751,  1761,  1762,  1765,  1766,
-    1767,  1768,  1769,  1770,  1771,  1772,  1773,  1774,  1775,  1776,
-    1777,  1778,  1779,  1780,  1781,  1784,  1789,  1789,  1797,  1797,
-    1805,  1810,  1810,  1818,  1823,  1828,  1828,  1836,  1837,  1840,
-    1840,  1848,  1853,  1858,  1863,  1863,  1871,  1874,  1877,  1880,
-    1883,  1889,  1889,  1899,  1899,  1906,  1906,  1913,  1913,  1926,
-    1926,  1939,  1940,  1944,  1948,  1948,  1960,  1961,  1965,  1965,
-    1973,  1974,  1977,  1978,  1979,  1980,  1981,  1982,  1983,  1986,
-    1991,  1991,  1999,  1999,  2009,  2010,  2013,  2013,  2021,  2022,
-    2025,  2026,  2027,  2028,  2031,  2031,  2039,  2044,  2049
+    1689,  1696,  1703,  1703,  1713,  1714,  1717,  1718,  1719,  1720,
+    1721,  1724,  1724,  1732,  1732,  1740,  1742,  1742,  1751,  1751,
+    1763,  1763,  1773,  1774,  1777,  1778,  1779,  1780,  1781,  1782,
+    1783,  1784,  1785,  1786,  1787,  1788,  1789,  1790,  1791,  1792,
+    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
   };
 
   // Print the state stack on the debug stream.
@@ -4513,8 +4545,8 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:1167
 } } // isc::dhcp
-#line 4517 "dhcp6_parser.cc" // lalr1.cc:1167
-#line 2054 "dhcp6_parser.yy" // lalr1.cc:1168
+#line 4549 "dhcp6_parser.cc" // lalr1.cc:1167
+#line 2066 "dhcp6_parser.yy" // lalr1.cc:1168
 
 
 void
index 9b83798293e4aafbc533f9c251e9d8d1676685c5..0d1a7f3ec712a11fedef75b6067e6252f775f860 100644 (file)
@@ -1435,8 +1435,8 @@ namespace isc { namespace dhcp {
     enum
     {
       yyeof_ = 0,
-      yylast_ = 907,     ///< Last index in yytable_.
-      yynnts_ = 348,  ///< Number of nonterminal symbols.
+      yylast_ = 931,     ///< Last index in yytable_.
+      yynnts_ = 351,  ///< Number of nonterminal symbols.
       yyfinal_ = 28, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
@@ -1538,8 +1538,8 @@ namespace isc { namespace dhcp {
       case 219: // db_type
       case 295: // hr_mode
       case 428: // duid_type
-      case 461: // ncr_protocol_value
-      case 469: // replace_client_name_value
+      case 464: // ncr_protocol_value
+      case 472: // replace_client_name_value
         value.copy< ElementPtr > (other.value);
         break;
 
@@ -1581,8 +1581,8 @@ namespace isc { namespace dhcp {
       case 219: // db_type
       case 295: // hr_mode
       case 428: // duid_type
-      case 461: // ncr_protocol_value
-      case 469: // replace_client_name_value
+      case 464: // ncr_protocol_value
+      case 472: // replace_client_name_value
         value.copy< ElementPtr > (v);
         break;
 
@@ -1683,8 +1683,8 @@ namespace isc { namespace dhcp {
       case 219: // db_type
       case 295: // hr_mode
       case 428: // duid_type
-      case 461: // ncr_protocol_value
-      case 469: // replace_client_name_value
+      case 464: // ncr_protocol_value
+      case 472: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
@@ -1732,8 +1732,8 @@ namespace isc { namespace dhcp {
       case 219: // db_type
       case 295: // hr_mode
       case 428: // duid_type
-      case 461: // ncr_protocol_value
-      case 469: // replace_client_name_value
+      case 464: // ncr_protocol_value
+      case 472: // replace_client_name_value
         value.move< ElementPtr > (s.value);
         break;
 
index 10eca1db5ad470f2fe4e7470445a55e3a4f93348..687aa99ea47dc2d9aedb0d1867348d61695fe978 100644 (file)
@@ -1716,8 +1716,8 @@ control_socket_params: control_socket_param
 
 control_socket_param: socket_type
                     | socket_name
-                    | user_context
-                    | comment
+                    | socket_user_context
+                    | socket_comment
                     | unknown_map_entry
                     ;
 
@@ -1737,6 +1737,15 @@ socket_name: SOCKET_NAME {
     ctx.leave();
 };
 
+socket_user_context: user_context;
+
+socket_comment: COMMENT {
+    ctx.enter(ctx.NO_KEYWORD);
+} COLON value {
+    ctx.stack_.back()->combine_set("comment", $4);
+    ctx.leave();
+};
+
 // --- dhcp ddns ---------------------------------------------
 
 dhcp_ddns: DHCP_DDNS {
index d56f91e2a2344b485fbad2e6e7382f14fe7d6548..26514357d426170adbd956560cdc7ab5bacb5ba2 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712011520
+// Generated 201712021539
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Locations for Bison parsers in C++
index 00e224eaffec55288efd015303c0ef01bfbdeabd..bf281a6bae0b2082e6e8349f82a87f5e375c4a3d 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712011520
+// Generated 201712021539
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Positions for Bison parsers in C++
index 64fcfb902970b585492b185dcfe41b87ca91ccd1..b434887ea8ef5259299a957fef98ac6f7c326738 100644 (file)
@@ -1,4 +1,4 @@
-// Generated 201712011520
+// Generated 201712021539
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Stack handling for Bison parsers in C++