Browse Source

[master] parsers regenerated

Tomek Mrugalski 7 years ago
parent
commit
18d31ca1da

+ 97 - 96
src/bin/dhcp4/dhcp4_lexer.cc

@@ -1560,16 +1560,16 @@ static const flex_int16_t yy_rule_linenum[155] =
       463,  472,  481,  496,  512,  521,  530,  539,  548,  558,
       463,  472,  481,  496,  512,  521,  530,  539,  548,  558,
       567,  577,  586,  595,  604,  614,  623,  632,  641,  650,
       567,  577,  586,  595,  604,  614,  623,  632,  641,  650,
       660,  669,  678,  687,  696,  705,  714,  723,  732,  741,
       660,  669,  678,  687,  696,  705,  714,  723,  732,  741,
-      750,  760,  770,  780,  789,  799,  809,  819,  829,  839,
-      848,  858,  867,  876,  885,  894,  904,  914,  924,  933,
-      942,  951,  960,  969,  978,  987,  996, 1005, 1014, 1023,
-
-     1032, 1041, 1050, 1059, 1068, 1077, 1086, 1095, 1104, 1113,
-     1122, 1131, 1140, 1149, 1158, 1167, 1176, 1186, 1196, 1206,
-     1216, 1226, 1236, 1246, 1256, 1266, 1275, 1284, 1293, 1302,
-     1311, 1320, 1331, 1342, 1355, 1366, 1379, 1477, 1482, 1487,
-     1492, 1493, 1494, 1495, 1496, 1497, 1499, 1517, 1530, 1535,
-     1539, 1541, 1543, 1545
+      750,  760,  771,  781,  790,  800,  810,  820,  830,  840,
+      849,  859,  868,  877,  886,  895,  905,  915,  925,  934,
+      943,  952,  961,  970,  979,  988,  997, 1006, 1015, 1024,
+
+     1033, 1042, 1051, 1060, 1069, 1078, 1087, 1096, 1105, 1114,
+     1123, 1132, 1141, 1150, 1159, 1168, 1177, 1187, 1197, 1207,
+     1217, 1227, 1237, 1247, 1257, 1267, 1276, 1285, 1294, 1303,
+     1312, 1321, 1332, 1343, 1356, 1367, 1380, 1478, 1483, 1488,
+     1493, 1494, 1495, 1496, 1497, 1498, 1500, 1518, 1531, 1536,
+     1540, 1542, 1544, 1546
     } ;
     } ;
 
 
 /* The intent behind this definition is that it'll catch
 /* The intent behind this definition is that it'll catch
@@ -2899,6 +2899,7 @@ YY_RULE_SETUP
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
+    case Parser4Context::SHARED_NETWORK:
         return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASS(driver.loc_);
         return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASS(driver.loc_);
     default:
     default:
         return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
         return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
@@ -2907,7 +2908,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 73:
 case 73:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 770 "dhcp4_lexer.ll"
+#line 771 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
     case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -2920,7 +2921,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 74:
 case 74:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 780 "dhcp4_lexer.ll"
+#line 781 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -2932,7 +2933,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 75:
 case 75:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 789 "dhcp4_lexer.ll"
+#line 790 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2945,7 +2946,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 76:
 case 76:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 799 "dhcp4_lexer.ll"
+#line 800 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2958,7 +2959,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 77:
 case 77:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 809 "dhcp4_lexer.ll"
+#line 810 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2971,7 +2972,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 78:
 case 78:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 819 "dhcp4_lexer.ll"
+#line 820 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2984,7 +2985,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 79:
 case 79:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 829 "dhcp4_lexer.ll"
+#line 830 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
     case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -2997,7 +2998,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 80:
 case 80:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 839 "dhcp4_lexer.ll"
+#line 840 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RESERVATIONS:
     case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -3009,7 +3010,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 81:
 case 81:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 848 "dhcp4_lexer.ll"
+#line 849 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3022,7 +3023,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 82:
 case 82:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 858 "dhcp4_lexer.ll"
+#line 859 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DATA:
     case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -3034,7 +3035,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 83:
 case 83:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 867 "dhcp4_lexer.ll"
+#line 868 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3046,7 +3047,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 84:
 case 84:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 876 "dhcp4_lexer.ll"
+#line 877 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3058,7 +3059,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 85:
 case 85:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 885 "dhcp4_lexer.ll"
+#line 886 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::OPTION_DEF:
     case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -3070,7 +3071,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 86:
 case 86:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 894 "dhcp4_lexer.ll"
+#line 895 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3083,7 +3084,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 87:
 case 87:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 904 "dhcp4_lexer.ll"
+#line 905 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::RELAY:
     case isc::dhcp::Parser4Context::RELAY:
@@ -3096,7 +3097,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 88:
 case 88:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 914 "dhcp4_lexer.ll"
+#line 915 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3108,7 +3109,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 89:
 case 89:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 924 "dhcp4_lexer.ll"
+#line 925 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3120,7 +3121,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 90:
 case 90:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 933 "dhcp4_lexer.ll"
+#line 934 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
     case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -3132,7 +3133,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 91:
 case 91:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 942 "dhcp4_lexer.ll"
+#line 943 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3144,7 +3145,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 92:
 case 92:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 951 "dhcp4_lexer.ll"
+#line 952 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3156,7 +3157,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 93:
 case 93:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 960 "dhcp4_lexer.ll"
+#line 961 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3168,7 +3169,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 94:
 case 94:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 969 "dhcp4_lexer.ll"
+#line 970 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3180,7 +3181,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 95:
 case 95:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 978 "dhcp4_lexer.ll"
+#line 979 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3192,7 +3193,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 96:
 case 96:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 987 "dhcp4_lexer.ll"
+#line 988 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3204,7 +3205,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 97:
 case 97:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 996 "dhcp4_lexer.ll"
+#line 997 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -3216,7 +3217,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 98:
 case 98:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1005 "dhcp4_lexer.ll"
+#line 1006 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3228,7 +3229,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 99:
 case 99:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1014 "dhcp4_lexer.ll"
+#line 1015 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3240,7 +3241,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 100:
 case 100:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1023 "dhcp4_lexer.ll"
+#line 1024 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3252,7 +3253,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 101:
 case 101:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1032 "dhcp4_lexer.ll"
+#line 1033 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
     case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -3264,7 +3265,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 102:
 case 102:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1041 "dhcp4_lexer.ll"
+#line 1042 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3276,7 +3277,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 103:
 case 103:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1050 "dhcp4_lexer.ll"
+#line 1051 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3288,7 +3289,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 104:
 case 104:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1059 "dhcp4_lexer.ll"
+#line 1060 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3300,7 +3301,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 105:
 case 105:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1068 "dhcp4_lexer.ll"
+#line 1069 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3312,7 +3313,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 106:
 case 106:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1077 "dhcp4_lexer.ll"
+#line 1078 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3324,7 +3325,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 107:
 case 107:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1086 "dhcp4_lexer.ll"
+#line 1087 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3336,7 +3337,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 108:
 case 108:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1095 "dhcp4_lexer.ll"
+#line 1096 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3348,7 +3349,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 109:
 case 109:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1104 "dhcp4_lexer.ll"
+#line 1105 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3360,7 +3361,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 110:
 case 110:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1113 "dhcp4_lexer.ll"
+#line 1114 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3372,7 +3373,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 111:
 case 111:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1122 "dhcp4_lexer.ll"
+#line 1123 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3384,7 +3385,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 112:
 case 112:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1131 "dhcp4_lexer.ll"
+#line 1132 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3396,7 +3397,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 113:
 case 113:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1140 "dhcp4_lexer.ll"
+#line 1141 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3408,7 +3409,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 114:
 case 114:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1149 "dhcp4_lexer.ll"
+#line 1150 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3420,7 +3421,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 115:
 case 115:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1158 "dhcp4_lexer.ll"
+#line 1159 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3432,7 +3433,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 116:
 case 116:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1167 "dhcp4_lexer.ll"
+#line 1168 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP_DDNS:
     case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -3444,7 +3445,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 117:
 case 117:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1176 "dhcp4_lexer.ll"
+#line 1177 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -3457,7 +3458,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 118:
 case 118:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1186 "dhcp4_lexer.ll"
+#line 1187 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -3470,7 +3471,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 119:
 case 119:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1196 "dhcp4_lexer.ll"
+#line 1197 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -3483,7 +3484,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 120:
 case 120:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1206 "dhcp4_lexer.ll"
+#line 1207 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3496,7 +3497,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 121:
 case 121:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1216 "dhcp4_lexer.ll"
+#line 1217 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3509,7 +3510,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 122:
 case 122:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1226 "dhcp4_lexer.ll"
+#line 1227 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3522,7 +3523,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 123:
 case 123:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1236 "dhcp4_lexer.ll"
+#line 1237 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3535,7 +3536,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 124:
 case 124:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1246 "dhcp4_lexer.ll"
+#line 1247 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3548,7 +3549,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 125:
 case 125:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1256 "dhcp4_lexer.ll"
+#line 1257 "dhcp4_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
     if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -3561,7 +3562,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 126:
 case 126:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1266 "dhcp4_lexer.ll"
+#line 1267 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3573,7 +3574,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 127:
 case 127:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1275 "dhcp4_lexer.ll"
+#line 1276 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3585,7 +3586,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 128:
 case 128:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1284 "dhcp4_lexer.ll"
+#line 1285 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::CONFIG:
     case isc::dhcp::Parser4Context::CONFIG:
@@ -3597,7 +3598,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 129:
 case 129:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1293 "dhcp4_lexer.ll"
+#line 1294 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3609,7 +3610,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 130:
 case 130:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1302 "dhcp4_lexer.ll"
+#line 1303 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3621,7 +3622,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 131:
 case 131:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1311 "dhcp4_lexer.ll"
+#line 1312 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3633,7 +3634,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 132:
 case 132:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1320 "dhcp4_lexer.ll"
+#line 1321 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3647,7 +3648,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 133:
 case 133:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1331 "dhcp4_lexer.ll"
+#line 1332 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3661,7 +3662,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 134:
 case 134:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1342 "dhcp4_lexer.ll"
+#line 1343 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::DHCP4:
     case isc::dhcp::Parser4Context::DHCP4:
@@ -3677,7 +3678,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 135:
 case 135:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1355 "dhcp4_lexer.ll"
+#line 1356 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3691,7 +3692,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 136:
 case 136:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1366 "dhcp4_lexer.ll"
+#line 1367 "dhcp4_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser4Context::SUBNET4:
     case isc::dhcp::Parser4Context::SUBNET4:
@@ -3705,7 +3706,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 137:
 case 137:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1379 "dhcp4_lexer.ll"
+#line 1380 "dhcp4_lexer.ll"
 {
 {
     /* A string has been matched. It contains the actual string and single quotes.
     /* 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.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -3807,7 +3808,7 @@ YY_RULE_SETUP
 case 138:
 case 138:
 /* rule 138 can match eol */
 /* rule 138 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1477 "dhcp4_lexer.ll"
+#line 1478 "dhcp4_lexer.ll"
 {
 {
     /* Bad string with a forbidden control character inside */
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -3816,7 +3817,7 @@ YY_RULE_SETUP
 case 139:
 case 139:
 /* rule 139 can match eol */
 /* rule 139 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1482 "dhcp4_lexer.ll"
+#line 1483 "dhcp4_lexer.ll"
 {
 {
     /* Bad string with a bad escape inside */
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -3824,7 +3825,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 140:
 case 140:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1487 "dhcp4_lexer.ll"
+#line 1488 "dhcp4_lexer.ll"
 {
 {
     /* Bad string with an open escape at the end */
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -3832,37 +3833,37 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 141:
 case 141:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1492 "dhcp4_lexer.ll"
+#line 1493 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
 { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 142:
 case 142:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1493 "dhcp4_lexer.ll"
+#line 1494 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
 { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 143:
 case 143:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1494 "dhcp4_lexer.ll"
+#line 1495 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
 { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 144:
 case 144:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1495 "dhcp4_lexer.ll"
+#line 1496 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
 { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 145:
 case 145:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1496 "dhcp4_lexer.ll"
+#line 1497 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
 { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 146:
 case 146:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1497 "dhcp4_lexer.ll"
+#line 1498 "dhcp4_lexer.ll"
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
 { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 147:
 case 147:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1499 "dhcp4_lexer.ll"
+#line 1500 "dhcp4_lexer.ll"
 {
 {
     /* An integer was found. */
     /* An integer was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
@@ -3883,7 +3884,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 148:
 case 148:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1517 "dhcp4_lexer.ll"
+#line 1518 "dhcp4_lexer.ll"
 {
 {
     /* A floating point was found. */
     /* A floating point was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
@@ -3899,7 +3900,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 149:
 case 149:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1530 "dhcp4_lexer.ll"
+#line 1531 "dhcp4_lexer.ll"
 {
 {
     string tmp(yytext);
     string tmp(yytext);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
     return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -3907,33 +3908,33 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 150:
 case 150:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1535 "dhcp4_lexer.ll"
+#line 1536 "dhcp4_lexer.ll"
 {
 {
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
    return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 151:
 case 151:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1539 "dhcp4_lexer.ll"
+#line 1540 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 152:
 case 152:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1541 "dhcp4_lexer.ll"
+#line 1542 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 153:
 case 153:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1543 "dhcp4_lexer.ll"
+#line 1544 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 154:
 case 154:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1545 "dhcp4_lexer.ll"
+#line 1546 "dhcp4_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(INITIAL):
-#line 1547 "dhcp4_lexer.ll"
+#line 1548 "dhcp4_lexer.ll"
 {
 {
     if (driver.states_.empty()) {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
         return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -3959,10 +3960,10 @@ case YY_STATE_EOF(INITIAL):
 	YY_BREAK
 	YY_BREAK
 case 155:
 case 155:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1570 "dhcp4_lexer.ll"
+#line 1571 "dhcp4_lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 3965 "dhcp4_lexer.cc"
+#line 3966 "dhcp4_lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -5067,7 +5068,7 @@ void yyfree (void * ptr )
 
 
 /* %ok-for-header */
 /* %ok-for-header */
 
 
-#line 1570 "dhcp4_lexer.ll"
+#line 1571 "dhcp4_lexer.ll"
 
 
 
 
 using namespace isc::dhcp;
 using namespace isc::dhcp;

+ 253 - 253
src/bin/dhcp4/dhcp4_parser.cc

@@ -3443,102 +3443,102 @@ namespace isc { namespace dhcp {
   }
   }
 
 
 
 
-  const short int Dhcp4Parser::yypact_ninf_ = -688;
+  const short int Dhcp4Parser::yypact_ninf_ = -686;
 
 
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
   const signed char Dhcp4Parser::yytable_ninf_ = -1;
 
 
   const short int
   const short int
   Dhcp4Parser::yypact_[] =
   Dhcp4Parser::yypact_[] =
   {
   {
-     211,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,    39,    18,    38,    58,    71,    73,    75,
-     120,   146,   179,   185,   193,   203,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-      18,   -72,     9,    83,   196,    22,   -14,    31,    51,    91,
-      23,   -27,   222,  -688,   214,   226,   227,   239,   257,  -688,
-    -688,  -688,  -688,  -688,   275,  -688,    34,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,   277,   278,  -688,  -688,  -688,   280,
-     281,   282,   287,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,   288,  -688,  -688,  -688,    45,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-     290,    46,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,   291,   292,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,    52,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,    61,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,   298,   296,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,   299,  -688,  -688,
-     305,  -688,  -688,  -688,   306,  -688,  -688,   304,   297,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-     311,   312,  -688,  -688,  -688,  -688,   309,   316,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,    87,  -688,
-    -688,  -688,   331,  -688,  -688,   332,  -688,   334,   335,  -688,
-    -688,   350,   351,   352,  -688,  -688,  -688,   148,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,    18,    18,  -688,   217,   357,   359,
-     360,   362,   363,  -688,     9,  -688,   364,   223,   228,   366,
-     367,   368,   229,   231,   232,   233,   374,   375,   376,   377,
-     378,   379,   380,   381,   242,   383,   384,    83,  -688,   385,
-     386,   245,   196,  -688,    72,   388,   389,   390,   391,   392,
-     393,   394,   395,   260,   254,   397,   398,   399,   401,    22,
-    -688,   402,   -14,  -688,   403,   404,   405,   406,   407,   408,
-     409,   410,   411,   412,  -688,    31,  -688,   413,   414,   276,
-     415,   417,   418,   279,  -688,    91,   419,   283,   284,  -688,
-      23,   420,   422,   -29,  -688,   285,   423,   424,   289,   428,
-     293,   294,   430,   431,   295,   301,   302,   432,   435,   222,
-    -688,  -688,  -688,   438,   436,   437,    18,    18,    18,  -688,
-     442,  -688,  -688,   307,   444,   447,  -688,  -688,  -688,  -688,
-     450,   451,   453,   454,   455,   456,   457,   458,  -688,   459,
-     460,  -688,   463,   121,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,   461,   467,  -688,  -688,  -688,   329,   330,
-     333,   469,   468,   336,   337,   338,  -688,  -688,    49,   340,
-     472,   471,  -688,   341,  -688,   342,   343,   463,   344,   346,
-     347,   348,   349,   353,   354,  -688,   355,   356,  -688,   358,
-     361,   365,  -688,  -688,   369,  -688,  -688,  -688,   370,    18,
-    -688,  -688,   371,   372,  -688,   373,  -688,  -688,    20,   396,
-    -688,  -688,  -688,    79,   382,  -688,    18,    83,   387,  -688,
-    -688,  -688,   196,  -688,   219,   219,   486,   487,   488,   493,
-     125,    25,   495,   147,    76,   222,  -688,  -688,  -688,  -688,
-    -688,   499,  -688,    72,  -688,  -688,  -688,   498,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,   502,   434,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,   168,  -688,   172,  -688,  -688,   213,
-    -688,  -688,  -688,  -688,   507,   514,   515,   516,   517,  -688,
-    -688,  -688,   215,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,   216,  -688,   500,   519,
-    -688,  -688,   518,   520,  -688,  -688,   521,   523,  -688,  -688,
-     522,   526,  -688,  -688,  -688,  -688,  -688,  -688,    30,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,   224,  -688,   524,   528,
-    -688,   529,   530,   531,   532,   533,   534,   225,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,   255,  -688,  -688,
-    -688,   256,   400,   416,  -688,  -688,   535,   536,  -688,  -688,
-     538,   537,  -688,  -688,   539,  -688,   541,   387,  -688,  -688,
-     542,   544,   545,   546,   421,   425,   426,   427,   433,   547,
-     548,   219,  -688,  -688,    22,  -688,   486,    91,  -688,   487,
-      23,  -688,   488,   150,  -688,   493,   125,  -688,    25,  -688,
-     -27,  -688,   495,   439,   440,   441,   443,   445,   446,   147,
-    -688,   549,   550,    76,  -688,  -688,  -688,   551,   552,  -688,
-     -14,  -688,   498,    31,  -688,   502,   554,  -688,   527,  -688,
-     132,   429,   448,   449,  -688,  -688,  -688,  -688,  -688,   452,
-     462,  -688,   258,  -688,   553,  -688,   555,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,   259,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,   266,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,   464,   465,  -688,  -688,   466,
-     267,  -688,   556,  -688,   470,   559,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,   150,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,   238,
-    -688,  -688,    64,   559,  -688,  -688,   558,  -688,  -688,  -688,
-     268,  -688,  -688,  -688,  -688,  -688,   563,   473,   564,    64,
-    -688,   569,  -688,   475,  -688,   562,  -688,  -688,   274,  -688,
-      57,   562,  -688,  -688,   571,   572,   574,   270,  -688,  -688,
-    -688,  -688,  -688,  -688,   575,   474,   477,   478,    57,  -688,
-     476,  -688,  -688,  -688,  -688,  -688
+     211,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,    36,    18,    12,    44,    46,    62,    73,
+      75,    85,    94,   107,   129,   136,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+      18,   -83,    23,   179,   255,    22,     4,    97,   138,    51,
+       5,   -48,   224,  -686,   186,   190,   195,   202,   214,  -686,
+    -686,  -686,  -686,  -686,   210,  -686,    68,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,   237,   260,  -686,  -686,  -686,   265,
+     280,   281,   282,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,   291,  -686,  -686,  -686,    69,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+     292,    91,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,   295,   296,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,   102,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,   192,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,   225,   267,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,   298,  -686,  -686,
+     303,  -686,  -686,  -686,   305,  -686,  -686,   304,   312,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+     313,   315,  -686,  -686,  -686,  -686,   308,   318,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,   203,  -686,
+    -686,  -686,   334,  -686,  -686,   335,  -686,   350,   351,  -686,
+    -686,   352,   356,   357,  -686,  -686,  -686,   204,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,    18,    18,  -686,   219,   359,   360,
+     361,   362,   364,  -686,    23,  -686,   365,   226,   227,   366,
+     367,   370,   232,   233,   234,   235,   371,   376,   377,   378,
+     379,   380,   381,   382,   243,   384,   385,   179,  -686,   386,
+     387,   246,   255,  -686,    25,   389,   390,   391,   392,   393,
+     394,   395,   396,   257,   256,   399,   400,   401,   402,    22,
+    -686,   403,     4,  -686,   404,   405,   406,   407,   408,   409,
+     410,   411,   412,   413,  -686,    97,  -686,   414,   415,   276,
+     417,   418,   419,   278,  -686,    51,   421,   283,   284,  -686,
+       5,   422,   423,   -43,  -686,   285,   424,   428,   289,   430,
+     293,   294,   431,   432,   297,   301,   302,   435,   437,   224,
+    -686,  -686,  -686,   438,   442,   443,    18,    18,    18,  -686,
+     444,  -686,  -686,   311,   448,   449,  -686,  -686,  -686,  -686,
+     439,   453,   454,   455,   456,   457,   460,   459,  -686,   461,
+     462,  -686,   465,   108,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,   464,   470,  -686,  -686,  -686,   324,   331,
+     332,   471,   472,   337,   338,   340,  -686,  -686,   212,   341,
+     473,   478,  -686,   343,  -686,   344,   346,   465,   347,   348,
+     349,   353,   354,   355,   358,  -686,   363,   368,  -686,   369,
+     372,   373,  -686,  -686,   374,  -686,  -686,  -686,   375,    18,
+    -686,  -686,   383,   388,  -686,   397,  -686,  -686,    24,   416,
+    -686,  -686,  -686,   -68,   398,  -686,    18,   179,   425,  -686,
+    -686,  -686,   255,  -686,    95,    95,   486,   487,   488,   492,
+     110,    19,   493,    67,    53,   224,  -686,  -686,  -686,  -686,
+    -686,   498,  -686,    25,  -686,  -686,  -686,   496,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,   497,   426,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,   205,  -686,   220,  -686,  -686,   221,
+    -686,  -686,  -686,  -686,   501,   503,   504,   506,   509,  -686,
+    -686,  -686,   222,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,   228,  -686,   508,   474,
+    -686,  -686,   513,   517,  -686,  -686,   515,   519,  -686,  -686,
+     518,   520,  -686,  -686,  -686,  -686,  -686,  -686,   176,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,   229,  -686,   521,   522,
+    -686,   524,   525,   528,   529,   530,   531,   231,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,   240,  -686,  -686,
+    -686,   241,   420,   427,  -686,  -686,   532,   533,  -686,  -686,
+     536,   534,  -686,  -686,   535,  -686,   540,   425,  -686,  -686,
+     542,   543,   544,   545,   429,   433,   434,   436,   440,   546,
+     547,    95,  -686,  -686,    22,  -686,   486,    51,  -686,   487,
+       5,  -686,   488,    72,  -686,   492,   110,  -686,    19,  -686,
+     -48,  -686,   493,   441,   445,   446,   447,   450,   451,    67,
+    -686,   548,   549,    53,  -686,  -686,  -686,   550,   551,  -686,
+       4,  -686,   496,    97,  -686,   497,   553,  -686,   554,  -686,
+     266,   458,   463,   466,  -686,  -686,  -686,  -686,  -686,   467,
+     468,  -686,   244,  -686,   552,  -686,   556,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,   250,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,   251,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,   469,   475,  -686,  -686,   476,
+     252,  -686,   557,  -686,   477,   555,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,    72,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,   272,
+    -686,  -686,    60,   555,  -686,  -686,   562,  -686,  -686,  -686,
+     253,  -686,  -686,  -686,  -686,  -686,   563,   452,   564,    60,
+    -686,   566,  -686,   479,  -686,   565,  -686,  -686,   273,  -686,
+      45,   565,  -686,  -686,   570,   571,   572,   254,  -686,  -686,
+    -686,  -686,  -686,  -686,   573,   480,   481,   483,    45,  -686,
+     485,  -686,  -686,  -686,  -686,  -686
   };
   };
 
 
   const unsigned short int
   const unsigned short int
@@ -3621,8 +3621,8 @@ namespace isc { namespace dhcp {
        0,   348,     0,   377,   368,     0,     0,   417,     0,   509,
        0,   348,     0,   377,   368,     0,     0,   417,     0,   509,
        0,     0,     0,     0,   145,   148,   149,   150,   151,     0,
        0,     0,     0,     0,   145,   148,   149,   150,   151,     0,
        0,   119,     0,   210,     0,   289,     0,   324,   281,   280,
        0,   119,     0,   210,     0,   289,     0,   324,   281,   280,
-     272,   273,   275,   269,   270,   271,   278,     0,   267,   274,
-     276,   277,   279,   264,   159,   423,     0,   175,   199,   200,
+     272,   273,   275,   269,   270,   271,   279,   278,     0,   267,
+     274,   276,   277,   264,   159,   423,     0,   175,   199,   200,
      201,   202,   203,   204,   192,     0,     0,   444,    48,     0,
      201,   202,   203,   204,   192,     0,     0,   444,    48,     0,
        0,   352,     0,   372,     0,     0,   135,   136,   137,   138,
        0,   352,     0,   372,     0,     0,   135,   136,   137,   138,
      134,   140,   142,   144,   153,   155,   212,   291,   326,     0,
      134,   140,   142,   144,   153,   155,   212,   291,   326,     0,
@@ -3638,39 +3638,39 @@ namespace isc { namespace dhcp {
   const short int
   const short int
   Dhcp4Parser::yypgoto_[] =
   Dhcp4Parser::yypgoto_[] =
   {
   {
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,   -49,  -688,    90,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,    89,  -688,  -688,  -688,   -62,
-    -688,  -688,  -688,   300,  -688,  -688,  -688,  -688,    53,   253,
-     -52,   -47,   -44,  -688,  -688,   -41,  -688,  -688,    69,   250,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,    78,  -115,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,   -69,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -128,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -126,  -688,  -688,
-    -688,  -123,   218,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -135,  -688,  -688,  -688,  -688,  -688,  -688,  -687,  -688,  -688,
-    -688,  -108,  -688,  -688,  -688,  -105,   251,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -685,  -688,  -688,  -688,  -504,
-    -688,  -675,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -113,  -688,  -688,  -216,   543,  -688,  -688,  -688,  -688,  -688,
-    -103,  -688,  -688,  -688,   -97,  -688,   237,  -688,   -40,  -688,
-    -688,  -688,  -688,  -688,   -39,  -688,  -688,  -688,  -688,  -688,
-     -51,  -688,  -688,  -688,   -98,  -688,  -688,  -688,   -95,  -688,
-     236,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -119,  -688,  -688,  -688,  -116,   273,  -688,  -688,
-     -64,  -688,  -688,  -688,  -688,  -688,  -118,  -688,  -688,  -688,
-    -117,  -688,   263,   -45,  -688,  -328,  -688,  -322,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -670,  -688,  -688,  -688,  -669,
-    -688,  -688,  -688,  -688,  -688,    96,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -102,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,   105,   234,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,  -688,
-    -688,  -688,  -688,  -688,  -688,  -688,   -53,  -688,  -688,  -688,
-    -198,  -688,  -688,  -213,  -688,  -688,  -688,  -688,  -688,  -688,
-    -224,  -688,  -688,  -240,  -688,  -688,  -688,  -688,  -688
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,   -49,  -686,    87,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,    88,  -686,  -686,  -686,   -62,
+    -686,  -686,  -686,   277,  -686,  -686,  -686,  -686,    54,   242,
+     -52,   -47,   -44,  -686,  -686,   -41,  -686,  -686,    71,   248,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,    43,  -115,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,   -69,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -129,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -134,  -686,  -686,
+    -686,  -128,   215,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -136,  -686,  -686,  -686,  -686,  -686,  -686,  -685,  -686,  -686,
+    -686,  -109,  -686,  -686,  -686,  -105,   258,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -681,  -686,  -686,  -686,  -509,
+    -686,  -679,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -113,  -686,  -686,  -219,   537,  -686,  -686,  -686,  -686,  -686,
+    -106,  -686,  -686,  -686,  -103,  -686,   238,  -686,   -40,  -686,
+    -686,  -686,  -686,  -686,   -39,  -686,  -686,  -686,  -686,  -686,
+     -51,  -686,  -686,  -686,  -104,  -686,  -686,  -686,   -96,  -686,
+     236,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -127,  -686,  -686,  -686,  -123,   269,  -686,  -686,
+     -64,  -686,  -686,  -686,  -686,  -686,  -122,  -686,  -686,  -686,
+    -119,  -686,   264,   -45,  -686,  -328,  -686,  -317,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -678,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,    98,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -100,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,   105,   239,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
+    -686,  -686,  -686,  -686,  -686,  -686,   -53,  -686,  -686,  -686,
+    -198,  -686,  -686,  -213,  -686,  -686,  -686,  -686,  -686,  -686,
+    -224,  -686,  -686,  -238,  -686,  -686,  -686,  -686,  -686
   };
   };
 
 
   const short int
   const short int
@@ -3691,7 +3691,7 @@ namespace isc { namespace dhcp {
      619,   620,   704,    45,    65,   166,   167,   168,   340,   169,
      619,   620,   704,    45,    65,   166,   167,   168,   340,   169,
      335,   170,   336,   171,   337,   172,   341,   173,   342,   174,
      335,   170,   336,   171,   337,   172,   341,   173,   342,   174,
      346,   175,   345,   546,   176,   177,   130,   319,   630,   631,
      346,   175,   345,   546,   176,   177,   130,   319,   630,   631,
-     632,   713,   777,   778,   131,   317,    51,    68,   622,   623,
+     632,   713,   778,   779,   131,   317,    51,    68,   622,   623,
      624,   707,    53,    69,   227,   228,   229,   230,   231,   232,
      624,   707,    53,    69,   227,   228,   229,   230,   231,   232,
      233,   367,   234,   371,   235,   370,   236,   237,   372,   238,
      233,   367,   234,   371,   235,   370,   236,   237,   372,   238,
      132,   318,   626,   627,   628,   710,    55,    70,   246,   247,
      132,   318,   626,   627,   628,   710,    55,    70,   246,   247,
@@ -3715,72 +3715,72 @@ namespace isc { namespace dhcp {
   Dhcp4Parser::yytable_[] =
   Dhcp4Parser::yytable_[] =
   {
   {
       85,   243,   190,   161,   185,   201,   441,   225,   242,   257,
       85,   243,   190,   161,   185,   201,   441,   225,   242,   257,
-     276,    73,   442,   162,   178,   186,   202,   645,   163,    79,
-     182,   164,   206,    27,   165,    28,   774,    29,   775,   146,
-     244,   245,   146,   716,   105,   572,   717,   304,   776,    26,
-      95,    96,   305,   781,   782,    38,   184,   151,   327,   332,
-      96,   191,   192,   328,   333,   349,   255,   256,   255,   256,
-     350,    99,   100,   101,   352,    40,   147,   148,   149,   353,
-     105,    76,   219,   239,   220,   221,   240,   241,    42,   105,
-      44,   150,    46,   151,   152,   153,   154,   155,   156,   157,
-     383,    96,   191,   192,    93,   384,   158,   159,   104,   158,
-      94,    95,    96,   193,   160,    97,    98,   194,   195,   196,
-     197,   198,   199,   219,   200,   218,    84,   543,   544,   545,
-     105,   219,    99,   100,   101,   102,   103,    48,    80,    84,
-     104,   105,   774,   573,   775,   528,   529,    81,    82,    83,
-     219,   106,   220,   221,   776,   436,   222,   223,   224,   781,
-     782,   399,    84,    50,   107,   108,   400,   806,   807,   808,
-     809,    30,    31,    32,    33,    84,    84,   109,    95,    96,
-     110,   327,   665,   666,    84,   687,   685,   111,   112,   863,
-     688,   113,   864,   865,   866,   835,    52,   836,   837,    99,
-     100,   101,    54,   103,   576,   577,   578,   579,   105,   219,
-      56,   633,   634,   635,   636,   441,   637,    84,   138,   139,
-      58,   442,   140,   153,   785,    84,   332,   157,   701,   701,
-     293,   689,   108,   702,   703,   580,    84,   718,   729,   294,
-     719,   295,   160,   730,    84,   651,   652,   653,   654,   655,
-     656,   833,    85,   590,   834,   401,   402,   296,   591,   592,
-     593,   594,   595,   596,   597,   598,   599,   600,   733,   399,
-     297,   349,   819,   734,   735,   438,   816,   820,   219,   383,
-     352,   849,   437,   878,   821,   825,   850,   861,   879,   303,
-     862,   307,   308,   439,   312,   313,   314,   161,   190,   440,
-     185,   315,   324,    84,   331,   343,   344,   162,   178,   365,
-     375,   186,   163,   201,   182,   164,   364,   366,   165,   369,
-     373,   243,   374,   225,   202,   377,   378,   379,   242,   380,
-     206,   262,   263,   264,   265,   266,   267,   268,   269,   270,
-     271,   272,   273,   274,   275,   385,   388,   276,   390,   391,
+     276,    73,   645,   162,   178,   186,   202,   442,   163,    38,
+     182,   164,   206,    27,   165,    28,   146,    29,   774,   146,
+     244,   245,   775,    79,   777,   782,    26,   255,   256,   572,
+      95,    96,   255,   256,    96,   191,   192,   576,   577,   578,
+     579,    40,   105,    42,   219,   239,   220,   221,   240,   241,
+      76,    99,   100,   101,   184,   151,   147,   148,   149,    44,
+     105,   304,   327,   105,   219,   218,   305,   328,   580,   146,
+      46,   150,    48,   151,   152,   153,   154,   155,   156,   157,
+      95,    96,    50,   158,   332,    84,   158,   159,   436,   333,
+     219,    52,   220,   221,   160,   349,   222,   223,   224,   219,
+     350,    99,   100,   101,    54,   103,    96,   191,   192,   590,
+     105,   219,   528,   529,   591,   592,   593,   594,   595,   596,
+     597,   598,   599,   600,   774,   153,    56,   573,   775,   157,
+     777,   782,    80,    58,   219,   105,   158,    84,    84,   665,
+     666,    81,    82,    83,   160,   651,   652,   653,   654,   655,
+     656,    30,    31,    32,    33,    84,    84,   863,    84,   193,
+     864,   865,   866,   194,   195,   196,   197,   198,   199,   716,
+     200,   835,   717,   836,   837,   104,   633,   634,   635,   636,
+      93,   637,   293,   294,    84,   352,    94,    95,    96,   295,
+     353,    97,    98,    84,   776,   441,   383,   399,   327,   785,
+     296,   384,   400,   685,   303,    84,   442,   297,    99,   100,
+     101,   102,   103,   687,   332,   701,   104,   105,   688,   689,
+     702,   701,   718,   364,   729,   719,   703,   106,    84,   730,
+      84,   307,    85,   733,   399,   401,   402,   349,   734,   735,
+     107,   108,   816,   819,   383,   352,   849,   878,   820,   821,
+     825,   850,   879,   109,   308,   438,   110,   138,   139,   312,
+     365,   140,   437,   111,   112,   833,   861,   113,   834,   862,
+     543,   544,   545,   439,   313,   314,   315,   161,   190,   440,
+     185,   806,   807,   808,   809,   324,   331,   162,   178,   343,
+     344,   186,   163,   201,   182,   164,   366,   369,   165,   373,
+     776,   243,   374,   225,   202,   375,   379,   377,   242,   378,
+     206,   380,    84,   262,   263,   264,   265,   266,   267,   268,
+     269,   270,   271,   272,   273,   274,   275,   276,   385,   388,
      244,   245,     1,     2,     3,     4,     5,     6,     7,     8,
      244,   245,     1,     2,     3,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,   394,   395,   396,   509,   510,   511,
-     403,   404,    84,   405,   406,    84,   407,   408,   410,   411,
-     413,   414,   415,   416,   412,   417,   418,   419,   420,   421,
-     422,   423,   424,   425,   426,   427,   428,   429,   430,   432,
-     433,   434,   448,   449,   450,   451,   452,   453,   454,   455,
-     457,   458,   459,   460,   456,   461,   463,   465,   466,   467,
-     468,   469,   470,   471,   472,   473,   474,   476,   477,   479,
-     478,   480,   481,   484,   488,   482,   489,   492,   493,   485,
-     486,   491,   495,   494,   498,   499,   503,   496,   497,   504,
-     568,   500,   506,   507,   508,   609,   609,   501,   502,   512,
-     513,   514,   601,   601,   515,   516,   517,   583,   518,   519,
-     520,   521,   522,   276,   438,   523,   524,   525,   526,   532,
-     533,   437,   534,   535,   537,    28,   536,   548,   549,   540,
-     541,   542,   439,   547,   550,   551,   552,   554,   440,   555,
-     556,   557,   558,   617,   621,   625,   559,   560,   561,   562,
-     629,   563,   647,   673,   564,   675,   705,   585,   565,   679,
-     575,   694,   566,   567,   569,   570,   571,   683,   695,   696,
-     697,   698,   706,   709,   708,   582,   712,   711,   714,   715,
-     721,   722,   805,   723,   724,   725,   726,   727,   728,   742,
-     745,   741,   538,   736,   744,   748,   750,   747,   751,   752,
-     753,   759,   760,   795,   796,   799,   553,   798,   804,   739,
-     584,   817,   847,   818,   826,   754,   828,   851,   853,   857,
-     756,   755,   811,   757,   855,   875,   876,   758,   877,   880,
-     431,   589,   435,   788,   789,   790,   761,   791,   784,   792,
-     793,   812,   813,   616,   794,   814,   787,   786,   763,   762,
-     462,   490,   783,   831,   409,   815,   765,   822,   823,   824,
-     764,   217,   483,   827,   767,   766,   487,   852,   856,   885,
-     881,   882,   883,   801,   800,   464,   802,   803,   475,   674,
-     671,   797,   609,   505,   749,   845,   854,   873,   884,   601,
-       0,   243,   161,     0,   773,   225,     0,     0,   242,     0,
+       9,    10,    11,    12,   390,   391,   394,   509,   510,   511,
+     395,   396,   403,   404,   405,   406,   407,    84,   408,   410,
+     413,   414,   411,   412,   415,   420,   416,   417,   418,   419,
+     421,   422,   423,   424,   425,   426,   427,   428,   429,   430,
+     432,   433,   434,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,   458,   459,   460,   461,   463,   465,   466,
+     467,   468,   469,   470,   471,   472,   473,   474,   476,   477,
+     478,   479,   480,   481,   482,   484,   488,   489,   492,   485,
+     486,   491,   493,   494,   495,   498,   499,   496,   497,   503,
+     568,   504,   506,   500,   516,   609,   609,   501,   502,   507,
+     508,   512,   601,   601,   513,   514,   515,   583,   517,   518,
+     519,   520,   521,   276,   438,   522,   523,   534,   524,   525,
+     526,   437,   532,   533,   535,   536,   537,   706,   548,    28,
+     540,   541,   439,   542,   547,   549,   550,   551,   440,   552,
+     554,   555,   556,   617,   621,   625,   557,   558,   559,   629,
+     647,   560,   673,   675,   679,   694,   561,   695,   696,   683,
+     697,   562,   563,   698,   705,   564,   565,   566,   567,   708,
+     709,   711,   712,   715,   714,   722,   569,   721,   723,   724,
+     575,   570,   725,   726,   727,   728,   742,   745,   741,   538,
+     571,   582,   744,   747,   748,   585,   750,   751,   752,   753,
+     759,   760,   795,   796,   799,   553,   798,   804,   616,   805,
+     817,   584,   828,   736,   818,   826,   847,   851,   853,   431,
+     739,   855,   857,   754,   875,   876,   877,   880,   756,   755,
+     435,   409,   757,   589,   758,   788,   761,   784,   787,   789,
+     790,   791,   786,   794,   792,   793,   852,   763,   490,   762,
+     831,   811,   783,   765,   764,   217,   812,   462,   767,   813,
+     814,   815,   822,   483,   766,   801,   487,   800,   823,   824,
+     827,   464,   856,   803,   802,   882,   881,   883,   885,   475,
+     671,   674,   609,   797,   749,   845,   854,   873,   505,   601,
+     884,   243,   161,     0,   773,   225,     0,     0,   242,     0,
        0,   768,   162,   178,     0,     0,     0,   163,   257,   182,
        0,   768,   162,   178,     0,     0,     0,   163,   257,   182,
-     164,   769,   779,   165,     0,     0,   770,     0,   780,   771,
+     164,   769,   780,   165,     0,     0,   770,     0,   781,   771,
      244,   245,   772,     0,     0,     0,   190,     0,   185,     0,
      244,   245,   772,     0,     0,     0,   190,     0,   185,     0,
        0,   201,     0,     0,     0,     0,     0,     0,     0,   186,
        0,   201,     0,     0,     0,     0,     0,     0,     0,   186,
        0,     0,   202,     0,     0,     0,     0,     0,   206,     0,
        0,     0,   202,     0,     0,     0,     0,     0,   206,     0,
@@ -3790,8 +3790,8 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      773,     0,     0,     0,     0,     0,     0,   768,     0,     0,
      773,     0,     0,     0,     0,     0,     0,   768,     0,     0,
-       0,     0,     0,   839,     0,     0,     0,   769,   779,     0,
-     838,     0,   770,     0,   780,   771,     0,     0,   772,     0,
+       0,     0,     0,   839,     0,     0,     0,   769,   780,     0,
+     838,     0,   770,     0,   781,   771,     0,     0,   772,     0,
      839,     0,     0,     0,     0,     0,     0,   838
      839,     0,     0,     0,     0,     0,     0,   838
   };
   };
 
 
@@ -3799,70 +3799,70 @@ namespace isc { namespace dhcp {
   Dhcp4Parser::yycheck_[] =
   Dhcp4Parser::yycheck_[] =
   {
   {
       62,    70,    66,    65,    66,    67,   334,    69,    70,    71,
       62,    70,    66,    65,    66,    67,   334,    69,    70,    71,
-      72,    60,   334,    65,    65,    66,    67,   521,    65,    10,
-      65,    65,    67,     5,    65,     7,   713,     9,   713,     7,
-      70,    70,     7,     3,    48,    15,     6,     3,   713,     0,
-      18,    19,     8,   713,   713,     7,    60,    61,     3,     3,
-      19,    20,    21,     8,     8,     3,    85,    86,    85,    86,
-       8,    39,    40,    41,     3,     7,    44,    45,    46,     8,
-      48,   143,    49,    50,    51,    52,    53,    54,     7,    48,
+      72,    60,   521,    65,    65,    66,    67,   334,    65,     7,
+      65,    65,    67,     5,    65,     7,     7,     9,   713,     7,
+      70,    70,   713,    10,   713,   713,     0,    85,    86,    15,
+      18,    19,    85,    86,    19,    20,    21,   115,   116,   117,
+     118,     7,    48,     7,    49,    50,    51,    52,    53,    54,
+     143,    39,    40,    41,    60,    61,    44,    45,    46,     7,
+      48,     3,     3,    48,    49,    24,     8,     8,   146,     7,
        7,    59,     7,    61,    62,    63,    64,    65,    66,    67,
        7,    59,     7,    61,    62,    63,    64,    65,    66,    67,
-       3,    19,    20,    21,    11,     8,    74,    75,    47,    74,
-      17,    18,    19,    72,    82,    22,    23,    76,    77,    78,
-      79,    80,    81,    49,    83,    24,   143,    68,    69,    70,
-      48,    49,    39,    40,    41,    42,    43,     7,   119,   143,
-      47,    48,   819,   113,   819,    14,    15,   128,   129,   130,
-      49,    58,    51,    52,   819,    73,    55,    56,    57,   819,
-     819,     3,   143,     7,    71,    72,     8,    25,    26,    27,
-      28,   143,   144,   145,   146,   143,   143,    84,    18,    19,
-      87,     3,    96,    97,   143,     3,     8,    94,    95,   122,
-       8,    98,   125,   126,   127,   121,     7,   123,   124,    39,
-      40,    41,     7,    43,   115,   116,   117,   118,    48,    49,
-       7,    76,    77,    78,    79,   533,    81,   143,    12,    13,
-       7,   533,    16,    63,   718,   143,     3,    67,     3,     3,
-       6,     8,    72,     8,     8,   146,   143,     3,     3,     3,
-       6,     4,    82,     8,   143,    88,    89,    90,    91,    92,
-      93,     3,   304,    24,     6,   294,   295,     8,    29,    30,
-      31,    32,    33,    34,    35,    36,    37,    38,     3,     3,
-       3,     3,     3,     8,     8,   334,     8,     8,    49,     3,
-       3,     3,   334,     3,     8,     8,     8,     3,     8,     4,
-       6,     4,     4,   334,     4,     4,     4,   349,   352,   334,
-     352,     4,     4,   143,     4,     4,     4,   349,   349,     3,
-       3,   352,   349,   365,   349,   349,     8,     8,   349,     4,
-       4,   380,     8,   375,   365,     4,     4,     8,   380,     3,
-     365,    99,   100,   101,   102,   103,   104,   105,   106,   107,
-     108,   109,   110,   111,   112,     4,     4,   399,     4,     4,
+      18,    19,     7,    74,     3,   143,    74,    75,    73,     8,
+      49,     7,    51,    52,    82,     3,    55,    56,    57,    49,
+       8,    39,    40,    41,     7,    43,    19,    20,    21,    24,
+      48,    49,    14,    15,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,   819,    63,     7,   113,   819,    67,
+     819,   819,   119,     7,    49,    48,    74,   143,   143,    96,
+      97,   128,   129,   130,    82,    88,    89,    90,    91,    92,
+      93,   143,   144,   145,   146,   143,   143,   122,   143,    72,
+     125,   126,   127,    76,    77,    78,    79,    80,    81,     3,
+      83,   121,     6,   123,   124,    47,    76,    77,    78,    79,
+      11,    81,     6,     3,   143,     3,    17,    18,    19,     4,
+       8,    22,    23,   143,   713,   533,     3,     3,     3,   718,
+       8,     8,     8,     8,     4,   143,   533,     3,    39,    40,
+      41,    42,    43,     3,     3,     3,    47,    48,     8,     8,
+       8,     3,     3,     8,     3,     6,     8,    58,   143,     8,
+     143,     4,   304,     3,     3,   294,   295,     3,     8,     8,
+      71,    72,     8,     3,     3,     3,     3,     3,     8,     8,
+       8,     8,     8,    84,     4,   334,    87,    12,    13,     4,
+       3,    16,   334,    94,    95,     3,     3,    98,     6,     6,
+      68,    69,    70,   334,     4,     4,     4,   349,   352,   334,
+     352,    25,    26,    27,    28,     4,     4,   349,   349,     4,
+       4,   352,   349,   365,   349,   349,     8,     4,   349,     4,
+     819,   380,     8,   375,   365,     3,     8,     4,   380,     4,
+     365,     3,   143,    99,   100,   101,   102,   103,   104,   105,
+     106,   107,   108,   109,   110,   111,   112,   399,     4,     4,
      380,   380,   131,   132,   133,   134,   135,   136,   137,   138,
      380,   380,   131,   132,   133,   134,   135,   136,   137,   138,
      139,   140,   141,   142,     4,     4,     4,   406,   407,   408,
      139,   140,   141,   142,     4,     4,     4,   406,   407,   408,
-     143,     4,   143,     4,     4,   143,     4,     4,     4,   146,
-       4,     4,     4,   144,   146,   144,   144,   144,     4,     4,
-       4,     4,     4,     4,     4,     4,   144,     4,     4,     4,
-       4,   146,     4,     4,     4,     4,     4,     4,     4,     4,
-     146,     4,     4,     4,   144,     4,     4,     4,     4,     4,
+       4,     4,   143,     4,     4,     4,     4,   143,     4,     4,
+       4,     4,   146,   146,     4,     4,   144,   144,   144,   144,
+       4,     4,     4,     4,     4,     4,     4,   144,     4,     4,
+       4,     4,   146,     4,     4,     4,     4,     4,     4,     4,
+       4,   144,   146,     4,     4,     4,     4,     4,     4,     4,
        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
        4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-     144,     4,     4,     4,     4,   146,     4,     4,     4,   146,
+     144,     4,     4,     4,   146,     4,     4,     4,     4,   146,
      146,   146,     4,   144,     4,     4,     4,   144,   144,     4,
      146,   146,     4,   144,     4,     4,     4,   144,   144,     4,
-     489,   146,     4,     7,     7,   514,   515,   146,   146,     7,
-     143,     7,   514,   515,     7,     5,     5,   506,     5,     5,
-       5,     5,     5,   525,   533,     7,     7,     7,     5,     8,
-       3,   533,   143,   143,     5,     7,   143,     5,     7,   143,
-     143,   143,   533,   143,   143,   143,   143,   143,   533,   143,
-     143,   143,   143,     7,     7,     7,   143,   143,   143,   143,
-       7,   143,     7,     4,   143,     7,     6,   120,   143,     7,
-     114,     4,   143,   143,   143,   143,   143,    83,     4,     4,
-       4,     4,     3,     3,     6,   143,     3,     6,     6,     3,
-       6,     3,     5,     4,     4,     4,     4,     4,     4,     3,
-       3,     6,   452,   143,     6,     4,     4,     8,     4,     4,
-       4,     4,     4,     4,     4,     3,   467,     6,     4,   143,
-     507,     8,     4,     8,     8,   144,     7,     4,     4,     7,
-     144,   146,   143,   146,     5,     4,     4,   144,     4,     4,
-     327,   512,   332,   144,   144,   144,   701,   144,   716,   144,
-     144,   143,   143,   515,   729,   143,   722,   720,   706,   704,
-     349,   383,   715,   819,   304,   143,   709,   143,   143,   143,
-     707,    68,   375,   143,   712,   710,   380,   144,   143,   143,
-     146,   144,   144,   742,   740,   352,   743,   745,   365,   533,
-     525,   733,   701,   399,   687,   833,   849,   861,   878,   701,
-      -1,   710,   704,    -1,   713,   707,    -1,    -1,   710,    -1,
+     489,     4,     4,   146,     5,   514,   515,   146,   146,     7,
+       7,     7,   514,   515,   143,     7,     7,   506,     5,     5,
+       5,     5,     5,   525,   533,     5,     7,   143,     7,     7,
+       5,   533,     8,     3,   143,   143,     5,     3,     5,     7,
+     143,   143,   533,   143,   143,     7,   143,   143,   533,   143,
+     143,   143,   143,     7,     7,     7,   143,   143,   143,     7,
+       7,   143,     4,     7,     7,     4,   143,     4,     4,    83,
+       4,   143,   143,     4,     6,   143,   143,   143,   143,     6,
+       3,     6,     3,     3,     6,     3,   143,     6,     4,     4,
+     114,   143,     4,     4,     4,     4,     3,     3,     6,   452,
+     143,   143,     6,     8,     4,   120,     4,     4,     4,     4,
+       4,     4,     4,     4,     3,   467,     6,     4,   515,     5,
+       8,   507,     7,   143,     8,     8,     4,     4,     4,   327,
+     143,     5,     7,   144,     4,     4,     4,     4,   144,   146,
+     332,   304,   146,   512,   144,   144,   701,   716,   722,   144,
+     144,   144,   720,   729,   144,   144,   144,   706,   383,   704,
+     819,   143,   715,   709,   707,    68,   143,   349,   712,   143,
+     143,   143,   143,   375,   710,   742,   380,   740,   143,   143,
+     143,   352,   143,   745,   743,   144,   146,   144,   143,   365,
+     525,   533,   701,   733,   687,   833,   849,   861,   399,   701,
+     878,   710,   704,    -1,   713,   707,    -1,    -1,   710,    -1,
       -1,   713,   704,   704,    -1,    -1,    -1,   704,   720,   704,
       -1,   713,   704,   704,    -1,    -1,    -1,   704,   720,   704,
      704,   713,   713,   704,    -1,    -1,   713,    -1,   713,   713,
      704,   713,   713,   704,    -1,    -1,   713,    -1,   713,   713,
      710,   710,   713,    -1,    -1,    -1,   740,    -1,   740,    -1,
      710,   710,   713,    -1,    -1,    -1,   740,    -1,   740,    -1,
@@ -3959,8 +3959,8 @@ namespace isc { namespace dhcp {
      350,     6,     3,   364,     6,     3,   395,     8,     4,   453,
      350,     6,     3,   364,     6,     3,   395,     8,     4,   453,
        4,     4,     4,     4,   144,   146,   144,   146,   144,     4,
        4,     4,     4,     4,   144,   146,   144,   146,   144,     4,
        4,   210,   272,   268,   311,   307,   335,   331,   176,   187,
        4,   210,   272,   268,   311,   307,   335,   331,   176,   187,
-     188,   189,   192,   221,   264,   282,   288,   299,   300,   327,
-     370,   392,   396,   297,   234,   286,   248,   244,   144,   144,
+     188,   189,   192,   221,   264,   282,   286,   288,   299,   300,
+     327,   370,   392,   297,   234,   286,   248,   244,   144,   144,
      144,   144,   144,   144,   257,     4,     4,   410,     6,     3,
      144,   144,   144,   144,   257,     4,     4,   410,     6,     3,
      353,   349,   367,   363,     4,     5,    25,    26,    27,    28,
      353,   349,   367,   363,     4,     5,    25,    26,    27,    28,
      213,   143,   143,   143,   143,   143,     8,     8,     8,     3,
      213,   143,   143,   143,   143,   143,     8,     8,     8,     3,

+ 1 - 1
src/bin/dhcp4/location.hh

@@ -1,4 +1,4 @@
-// Generated 201709051123
+// Generated 201709141022
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Locations for Bison parsers in C++
 // Locations for Bison parsers in C++

+ 1 - 1
src/bin/dhcp4/position.hh

@@ -1,4 +1,4 @@
-// Generated 201709051123
+// Generated 201709141022
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Positions for Bison parsers in C++
 // Positions for Bison parsers in C++

+ 1 - 1
src/bin/dhcp4/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201709051123
+// Generated 201709141022
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Stack handling for Bison parsers in C++
 // Stack handling for Bison parsers in C++

+ 70 - 69
src/bin/dhcp6/dhcp6_lexer.cc

@@ -1576,12 +1576,12 @@ static const flex_int16_t yy_rule_linenum[161] =
       855,  865,  875,  884,  893,  902,  911,  921,  930,  939,
       855,  865,  875,  884,  893,  902,  911,  921,  930,  939,
       948,  957,  966,  975,  984,  993, 1002, 1012, 1021, 1030,
       948,  957,  966,  975,  984,  993, 1002, 1012, 1021, 1030,
 
 
-     1040, 1050, 1060, 1069, 1078, 1087, 1098, 1108, 1117, 1127,
-     1137, 1146, 1155, 1164, 1173, 1183, 1192, 1202, 1211, 1220,
-     1229, 1238, 1247, 1256, 1265, 1274, 1283, 1292, 1301, 1310,
-     1319, 1328, 1337, 1346, 1355, 1364, 1373, 1382, 1391, 1400,
-     1409, 1418, 1428, 1526, 1531, 1536, 1541, 1542, 1543, 1544,
-     1545, 1546, 1548, 1566, 1579, 1584, 1588, 1590, 1592, 1594
+     1040, 1051, 1061, 1070, 1079, 1088, 1099, 1109, 1118, 1128,
+     1138, 1147, 1156, 1165, 1174, 1184, 1193, 1203, 1212, 1221,
+     1230, 1239, 1248, 1257, 1266, 1275, 1284, 1293, 1302, 1311,
+     1320, 1329, 1338, 1347, 1356, 1365, 1374, 1383, 1392, 1401,
+     1410, 1419, 1429, 1527, 1532, 1537, 1542, 1543, 1544, 1545,
+     1546, 1547, 1549, 1567, 1580, 1585, 1589, 1591, 1593, 1595
     } ;
     } ;
 
 
 /* The intent behind this definition is that it'll catch
 /* The intent behind this definition is that it'll catch
@@ -3277,6 +3277,7 @@ YY_RULE_SETUP
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
     case isc::dhcp::Parser6Context::SUBNET6:
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
+    case Parser6Context::SHARED_NETWORK:
         return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_);
         return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_);
     default:
     default:
         return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
         return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
@@ -3285,7 +3286,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 102:
 case 102:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1050 "dhcp6_lexer.ll"
+#line 1051 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
     case isc::dhcp::Parser6Context::CLIENT_CLASSES:
@@ -3298,7 +3299,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 103:
 case 103:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1060 "dhcp6_lexer.ll"
+#line 1061 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3310,7 +3311,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 104:
 case 104:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1069 "dhcp6_lexer.ll"
+#line 1070 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3322,7 +3323,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 105:
 case 105:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1078 "dhcp6_lexer.ll"
+#line 1079 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3334,7 +3335,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 106:
 case 106:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1087 "dhcp6_lexer.ll"
+#line 1088 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::MAC_SOURCES:
     case isc::dhcp::Parser6Context::MAC_SOURCES:
@@ -3348,7 +3349,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 107:
 case 107:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1098 "dhcp6_lexer.ll"
+#line 1099 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3361,7 +3362,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 108:
 case 108:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1108 "dhcp6_lexer.ll"
+#line 1109 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RESERVATIONS:
     case isc::dhcp::Parser6Context::RESERVATIONS:
@@ -3373,7 +3374,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 109:
 case 109:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1117 "dhcp6_lexer.ll"
+#line 1118 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
     case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
@@ -3386,7 +3387,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 110:
 case 110:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1127 "dhcp6_lexer.ll"
+#line 1128 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3399,7 +3400,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 111:
 case 111:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1137 "dhcp6_lexer.ll"
+#line 1138 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DATA:
     case isc::dhcp::Parser6Context::OPTION_DATA:
@@ -3411,7 +3412,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 112:
 case 112:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1146 "dhcp6_lexer.ll"
+#line 1147 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3423,7 +3424,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 113:
 case 113:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1155 "dhcp6_lexer.ll"
+#line 1156 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3435,7 +3436,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 114:
 case 114:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1164 "dhcp6_lexer.ll"
+#line 1165 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::OPTION_DEF:
     case isc::dhcp::Parser6Context::OPTION_DEF:
@@ -3447,7 +3448,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 115:
 case 115:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1173 "dhcp6_lexer.ll"
+#line 1174 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SUBNET6:
     case isc::dhcp::Parser6Context::SUBNET6:
@@ -3460,7 +3461,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 116:
 case 116:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1183 "dhcp6_lexer.ll"
+#line 1184 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::RELAY:
     case isc::dhcp::Parser6Context::RELAY:
@@ -3472,7 +3473,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 117:
 case 117:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1192 "dhcp6_lexer.ll"
+#line 1193 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3484,7 +3485,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 118:
 case 118:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1202 "dhcp6_lexer.ll"
+#line 1203 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3496,7 +3497,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 119:
 case 119:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1211 "dhcp6_lexer.ll"
+#line 1212 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
     case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
@@ -3508,7 +3509,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 120:
 case 120:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1220 "dhcp6_lexer.ll"
+#line 1221 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3520,7 +3521,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 121:
 case 121:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1229 "dhcp6_lexer.ll"
+#line 1230 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3532,7 +3533,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 122:
 case 122:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1238 "dhcp6_lexer.ll"
+#line 1239 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3544,7 +3545,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 123:
 case 123:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1247 "dhcp6_lexer.ll"
+#line 1248 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DUID_TYPE:
     case isc::dhcp::Parser6Context::DUID_TYPE:
@@ -3556,7 +3557,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 124:
 case 124:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1256 "dhcp6_lexer.ll"
+#line 1257 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3568,7 +3569,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 125:
 case 125:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1265 "dhcp6_lexer.ll"
+#line 1266 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3580,7 +3581,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 126:
 case 126:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1274 "dhcp6_lexer.ll"
+#line 1275 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3592,7 +3593,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 127:
 case 127:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1283 "dhcp6_lexer.ll"
+#line 1284 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::SERVER_ID:
     case isc::dhcp::Parser6Context::SERVER_ID:
@@ -3604,7 +3605,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 128:
 case 128:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1292 "dhcp6_lexer.ll"
+#line 1293 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3616,7 +3617,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 129:
 case 129:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1301 "dhcp6_lexer.ll"
+#line 1302 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3628,7 +3629,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 130:
 case 130:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1310 "dhcp6_lexer.ll"
+#line 1311 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3640,7 +3641,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 131:
 case 131:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1319 "dhcp6_lexer.ll"
+#line 1320 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3652,7 +3653,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 132:
 case 132:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1328 "dhcp6_lexer.ll"
+#line 1329 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3664,7 +3665,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 133:
 case 133:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1337 "dhcp6_lexer.ll"
+#line 1338 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3676,7 +3677,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 134:
 case 134:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1346 "dhcp6_lexer.ll"
+#line 1347 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
     case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
@@ -3688,7 +3689,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 135:
 case 135:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1355 "dhcp6_lexer.ll"
+#line 1356 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3700,7 +3701,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 136:
 case 136:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1364 "dhcp6_lexer.ll"
+#line 1365 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3712,7 +3713,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 137:
 case 137:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1373 "dhcp6_lexer.ll"
+#line 1374 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -3724,7 +3725,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 138:
 case 138:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1382 "dhcp6_lexer.ll"
+#line 1383 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
     case isc::dhcp::Parser6Context::CONTROL_SOCKET:
@@ -3736,7 +3737,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 139:
 case 139:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1391 "dhcp6_lexer.ll"
+#line 1392 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::DHCP6:
     case isc::dhcp::Parser6Context::DHCP6:
@@ -3748,7 +3749,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 140:
 case 140:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1400 "dhcp6_lexer.ll"
+#line 1401 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3760,7 +3761,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 141:
 case 141:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1409 "dhcp6_lexer.ll"
+#line 1410 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3772,7 +3773,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 142:
 case 142:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1418 "dhcp6_lexer.ll"
+#line 1419 "dhcp6_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::dhcp::Parser6Context::CONFIG:
     case isc::dhcp::Parser6Context::CONFIG:
@@ -3784,7 +3785,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 143:
 case 143:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1428 "dhcp6_lexer.ll"
+#line 1429 "dhcp6_lexer.ll"
 {
 {
     /* A string has been matched. It contains the actual string and single quotes.
     /* 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.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -3886,7 +3887,7 @@ YY_RULE_SETUP
 case 144:
 case 144:
 /* rule 144 can match eol */
 /* rule 144 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1526 "dhcp6_lexer.ll"
+#line 1527 "dhcp6_lexer.ll"
 {
 {
     /* Bad string with a forbidden control character inside */
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -3895,7 +3896,7 @@ YY_RULE_SETUP
 case 145:
 case 145:
 /* rule 145 can match eol */
 /* rule 145 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1531 "dhcp6_lexer.ll"
+#line 1532 "dhcp6_lexer.ll"
 {
 {
     /* Bad string with a bad escape inside */
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -3903,7 +3904,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 146:
 case 146:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1536 "dhcp6_lexer.ll"
+#line 1537 "dhcp6_lexer.ll"
 {
 {
     /* Bad string with an open escape at the end */
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -3911,37 +3912,37 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 147:
 case 147:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1541 "dhcp6_lexer.ll"
+#line 1542 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
 { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 148:
 case 148:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1542 "dhcp6_lexer.ll"
+#line 1543 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
 { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 149:
 case 149:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1543 "dhcp6_lexer.ll"
+#line 1544 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
 { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 150:
 case 150:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1544 "dhcp6_lexer.ll"
+#line 1545 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
 { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 151:
 case 151:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1545 "dhcp6_lexer.ll"
+#line 1546 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
 { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 152:
 case 152:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1546 "dhcp6_lexer.ll"
+#line 1547 "dhcp6_lexer.ll"
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
 { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 153:
 case 153:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1548 "dhcp6_lexer.ll"
+#line 1549 "dhcp6_lexer.ll"
 {
 {
     /* An integer was found. */
     /* An integer was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
@@ -3962,7 +3963,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 154:
 case 154:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1566 "dhcp6_lexer.ll"
+#line 1567 "dhcp6_lexer.ll"
 {
 {
     /* A floating point was found. */
     /* A floating point was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
@@ -3978,7 +3979,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 155:
 case 155:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1579 "dhcp6_lexer.ll"
+#line 1580 "dhcp6_lexer.ll"
 {
 {
     string tmp(yytext);
     string tmp(yytext);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
     return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -3986,33 +3987,33 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 156:
 case 156:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1584 "dhcp6_lexer.ll"
+#line 1585 "dhcp6_lexer.ll"
 {
 {
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
    return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 157:
 case 157:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1588 "dhcp6_lexer.ll"
+#line 1589 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 158:
 case 158:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1590 "dhcp6_lexer.ll"
+#line 1591 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 159:
 case 159:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1592 "dhcp6_lexer.ll"
+#line 1593 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 160:
 case 160:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1594 "dhcp6_lexer.ll"
+#line 1595 "dhcp6_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(INITIAL):
-#line 1596 "dhcp6_lexer.ll"
+#line 1597 "dhcp6_lexer.ll"
 {
 {
     if (driver.states_.empty()) {
     if (driver.states_.empty()) {
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
         return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
@@ -4038,10 +4039,10 @@ case YY_STATE_EOF(INITIAL):
 	YY_BREAK
 	YY_BREAK
 case 161:
 case 161:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 1619 "dhcp6_lexer.ll"
+#line 1620 "dhcp6_lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 4044 "dhcp6_lexer.cc"
+#line 4045 "dhcp6_lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -5146,7 +5147,7 @@ void yyfree (void * ptr )
 
 
 /* %ok-for-header */
 /* %ok-for-header */
 
 
-#line 1619 "dhcp6_lexer.ll"
+#line 1620 "dhcp6_lexer.ll"
 
 
 
 
 using namespace isc::dhcp;
 using namespace isc::dhcp;

+ 254 - 254
src/bin/dhcp6/dhcp6_parser.cc

@@ -3555,100 +3555,100 @@ namespace isc { namespace dhcp {
   const short int
   const short int
   Dhcp6Parser::yypact_[] =
   Dhcp6Parser::yypact_[] =
   {
   {
-     192,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,    45,    23,    54,    58,    88,   118,
-     124,   134,   178,   199,   240,   256,   264,   293,  -707,  -707,
+     211,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,    45,    23,    61,    76,    86,   116,
+     124,   126,   166,   177,   187,   204,   227,   238,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,    23,   -67,    14,    86,   145,    16,
-      56,    92,    32,    66,    40,    93,     8,   143,  -707,    87,
-     227,   304,   275,   307,  -707,  -707,  -707,  -707,  -707,   324,
+    -707,  -707,  -707,  -707,    23,   120,    14,   121,   135,    16,
+      73,    63,    67,   246,    53,   189,   -13,   143,  -707,   281,
+     297,   304,   302,   309,  -707,  -707,  -707,  -707,  -707,   314,
     -707,    59,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,    59,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,   352,   353,   354,   355,   356,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,   357,  -707,  -707,
-    -707,    96,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
+    -707,   318,   319,   337,   338,   343,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,   358,  -707,  -707,
+    -707,    82,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,   358,   158,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   359,   360,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   176,
+    -707,  -707,  -707,  -707,  -707,  -707,   359,    94,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   360,   361,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   100,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,   193,  -707,  -707,
-    -707,  -707,   361,  -707,   362,   363,  -707,  -707,  -707,   195,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,   131,  -707,  -707,
+    -707,  -707,   362,  -707,   363,   364,  -707,  -707,  -707,   158,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,   364,   365,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,   366,  -707,  -707,   367,  -707,
-    -707,  -707,   369,  -707,  -707,   368,   372,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   373,   374,
-    -707,  -707,  -707,  -707,   371,   377,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,   213,  -707,  -707,  -707,
-     378,  -707,  -707,   379,  -707,   380,   381,  -707,  -707,   382,
-     383,   384,  -707,  -707,  -707,   221,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,   365,   366,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,   367,  -707,  -707,   368,  -707,
+    -707,  -707,   370,  -707,  -707,   369,   373,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   374,   375,
+    -707,  -707,  -707,  -707,   372,   378,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,   160,  -707,  -707,  -707,
+     379,  -707,  -707,   380,  -707,   381,   382,  -707,  -707,   383,
+     384,   385,  -707,  -707,  -707,   194,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,    23,    23,  -707,   218,   385,   386,   387,   388,
-     389,  -707,    14,  -707,   390,   391,   392,   229,   245,   246,
-     247,   248,   397,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,   260,   409,   410,    86,  -707,   411,   216,
-     145,  -707,    19,   412,   413,   414,   415,   416,   417,   271,
-     268,   420,   421,   422,   423,    16,  -707,   427,    56,  -707,
-     428,   281,   430,   283,   284,    92,  -707,   433,   434,   435,
-     436,   437,   438,   439,  -707,    32,  -707,   440,   441,   297,
-     442,   446,   447,   298,  -707,    40,   449,   300,   303,  -707,
-      93,   454,   455,   155,  -707,   306,   457,   458,   311,   460,
-     313,   316,   466,   467,   318,   321,   322,   469,   473,   143,
-    -707,  -707,  -707,   474,   472,   475,    23,    23,    23,  -707,
-     476,   477,   478,  -707,  -707,  -707,  -707,  -707,   482,   483,
-     484,   485,   486,   487,   488,   489,   490,   491,   492,  -707,
-     493,   494,  -707,   497,  -707,  -707,  -707,  -707,  -707,  -707,
-     495,   501,  -707,  -707,  -707,   500,   502,   499,   329,   330,
-     345,  -707,  -707,    51,   346,   503,   504,  -707,   370,  -707,
-     376,  -707,   393,  -707,  -707,  -707,   497,   497,   497,   394,
-     395,   396,   408,  -707,   418,   419,  -707,   424,   425,   426,
-    -707,  -707,   429,  -707,  -707,  -707,   431,    23,  -707,  -707,
-     432,   443,  -707,   444,  -707,  -707,   107,   445,  -707,  -707,
-    -707,   110,   448,  -707,    23,    86,   451,  -707,  -707,  -707,
-     145,    13,    13,   505,   506,   507,   508,   -13,    23,    -8,
-      91,   509,   122,    30,   223,   143,  -707,  -707,   513,  -707,
-      19,   511,   512,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,   515,   450,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,    23,    23,  -707,   219,   386,   387,   388,   389,
+     390,  -707,    14,  -707,   391,   392,   393,   230,   247,   248,
+     249,   250,   394,   399,   400,   401,   402,   403,   404,   405,
+     406,   407,   408,   261,   410,   411,   121,  -707,   412,   217,
+     135,  -707,    20,   413,   414,   415,   416,   417,   418,   272,
+     269,   421,   422,   423,   427,    16,  -707,   428,    73,  -707,
+     429,   282,   431,   284,   285,    63,  -707,   434,   435,   436,
+     437,   438,   439,   440,  -707,    67,  -707,   441,   442,   298,
+     445,   447,   448,   299,  -707,    53,   450,   303,   305,  -707,
+     189,   454,   456,   -23,  -707,   307,   458,   459,   312,   461,
+     316,   320,   466,   467,   321,   322,   323,   469,   474,   143,
+    -707,  -707,  -707,   475,   473,   476,    23,    23,    23,  -707,
+     477,   478,   480,  -707,  -707,  -707,  -707,  -707,   483,   484,
+     485,   486,   487,   488,   489,   490,   491,   492,   493,  -707,
+     494,   495,  -707,   498,  -707,  -707,  -707,  -707,  -707,  -707,
+     496,   479,  -707,  -707,  -707,   500,   501,   503,   330,   346,
+     347,  -707,  -707,   271,   356,   506,   505,  -707,   357,  -707,
+     371,  -707,   376,  -707,  -707,  -707,   498,   498,   498,   377,
+     395,   396,   397,  -707,   398,   409,  -707,   419,   420,   424,
+    -707,  -707,   425,  -707,  -707,  -707,   426,    23,  -707,  -707,
+     430,   432,  -707,   433,  -707,  -707,    -7,   443,  -707,  -707,
+    -707,    85,   444,  -707,    23,   121,   446,  -707,  -707,  -707,
+     135,    13,    13,   507,   508,   509,   510,   -30,    23,    93,
+      58,   511,   176,    28,   229,   143,  -707,  -707,   515,  -707,
+      20,   513,   514,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,   516,   449,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   237,  -707,
-     266,  -707,  -707,   267,  -707,  -707,  -707,  -707,   516,   519,
-     520,   521,   524,  -707,  -707,  -707,   269,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   197,  -707,
+     209,  -707,  -707,   212,  -707,  -707,  -707,  -707,   520,   521,
+     525,   527,   528,  -707,  -707,  -707,   232,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-     270,  -707,   523,   527,  -707,  -707,   526,   530,  -707,  -707,
-     528,   532,  -707,  -707,   531,   533,  -707,  -707,  -707,    77,
-    -707,  -707,  -707,   534,  -707,  -707,  -707,   136,  -707,  -707,
-    -707,  -707,   166,  -707,   535,   536,  -707,   538,   539,   544,
-     545,   546,   547,   276,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,   548,   549,   550,  -707,  -707,   277,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,   278,  -707,  -707,
-    -707,   279,   452,   453,  -707,  -707,   551,   552,  -707,  -707,
-     554,   553,  -707,  -707,   555,   559,  -707,  -707,   556,  -707,
-     561,   451,  -707,  -707,   563,   564,   567,   568,   456,   459,
-     462,   461,   464,   569,   570,    13,  -707,  -707,    16,  -707,
-     505,    40,  -707,   506,    93,  -707,   507,   161,  -707,   508,
-     -13,  -707,  -707,    -8,  -707,    91,  -707,     8,  -707,   509,
-     465,   468,   470,   471,   479,   480,   122,  -707,   575,   577,
-     481,   496,   498,    30,  -707,   580,   581,   223,  -707,  -707,
-    -707,   557,   583,  -707,    56,  -707,   511,    92,  -707,   512,
-      32,  -707,   515,   584,  -707,   582,  -707,   328,   518,   525,
-     540,  -707,  -707,  -707,  -707,  -707,   541,   542,  -707,   287,
-    -707,   585,  -707,   588,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,   288,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,   294,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,   257,   543,  -707,  -707,  -707,  -707,
-     558,   562,  -707,  -707,   565,   295,  -707,   315,  -707,   589,
-    -707,   566,   591,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,   161,  -707,  -707,  -707,
+     234,  -707,   529,   530,  -707,  -707,   531,   533,  -707,  -707,
+     532,   536,  -707,  -707,   534,   538,  -707,  -707,  -707,   195,
+    -707,  -707,  -707,   537,  -707,  -707,  -707,   220,  -707,  -707,
+    -707,  -707,   235,  -707,   539,   541,  -707,   546,   547,   548,
+     549,   550,   551,   266,  -707,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,   552,   553,   554,  -707,  -707,   267,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,   270,  -707,  -707,
+    -707,   274,   451,   452,  -707,  -707,   555,   556,  -707,  -707,
+     557,   559,  -707,  -707,   560,   562,  -707,  -707,   526,  -707,
+     563,   446,  -707,  -707,   564,   565,   568,   570,   453,   455,
+     460,   457,   462,   574,   575,    13,  -707,  -707,    16,  -707,
+     507,    53,  -707,   508,   189,  -707,   509,    48,  -707,   510,
+     -30,  -707,  -707,    93,  -707,    58,  -707,   -13,  -707,   511,
+     463,   464,   465,   468,   470,   471,   176,  -707,   576,   578,
+     472,   481,   482,    28,  -707,   581,   582,   229,  -707,  -707,
+    -707,   583,   584,  -707,    73,  -707,   513,    63,  -707,   514,
+      67,  -707,   516,   586,  -707,   587,  -707,   308,   497,   499,
+     502,  -707,  -707,  -707,  -707,  -707,   504,   518,  -707,   276,
+    -707,   580,  -707,   585,  -707,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,   277,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,   278,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,   244,   519,  -707,  -707,  -707,  -707,
+     535,   540,  -707,  -707,   542,   287,  -707,   288,  -707,   588,
+    -707,   543,   590,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,    48,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,   211,  -707,  -707,    74,   591,  -707,  -707,   586,
-    -707,  -707,  -707,   319,  -707,  -707,  -707,  -707,  -707,   587,
-     560,   596,    74,  -707,   597,  -707,   571,  -707,   594,  -707,
-    -707,   212,  -707,   133,   594,  -707,  -707,   601,   602,   603,
-     341,  -707,  -707,  -707,  -707,  -707,  -707,   605,   510,   572,
-     573,   133,  -707,   576,  -707,  -707,  -707,  -707,  -707
+    -707,  -707,   241,  -707,  -707,    65,   590,  -707,  -707,   594,
+    -707,  -707,  -707,   294,  -707,  -707,  -707,  -707,  -707,   595,
+     512,   596,    65,  -707,   589,  -707,   544,  -707,   597,  -707,
+    -707,   327,  -707,    49,   597,  -707,  -707,   602,   603,   604,
+     295,  -707,  -707,  -707,  -707,  -707,  -707,   606,   522,   558,
+     561,    49,  -707,   545,  -707,  -707,  -707,  -707,  -707
   };
   };
 
 
   const unsigned short int
   const unsigned short int
@@ -3735,8 +3735,8 @@ namespace isc { namespace dhcp {
      398,   389,     0,     0,   426,     0,   536,     0,     0,     0,
      398,   389,     0,     0,   426,     0,   536,     0,     0,     0,
        0,   142,   145,   146,   147,   148,     0,     0,   116,     0,
        0,   142,   145,   146,   147,   148,     0,     0,   116,     0,
      212,     0,   283,     0,   318,   275,   272,   274,   266,   267,
      212,     0,   283,     0,   318,   275,   272,   274,   266,   267,
-     262,   263,   264,   265,   270,   273,     0,   260,   268,   269,
-     271,   257,   156,   164,   432,     0,   177,   201,   202,   203,
+     262,   263,   264,   265,   271,   270,   273,     0,   260,   268,
+     269,   257,   156,   164,   432,     0,   177,   201,   202,   203,
      204,   205,   206,   194,     0,     0,   462,   465,   466,   449,
      204,   205,   206,   194,     0,     0,   462,   465,   466,   449,
        0,     0,   471,    50,     0,     0,   346,     0,   366,     0,
        0,     0,   471,    50,     0,     0,   346,     0,   366,     0,
      393,     0,     0,   132,   133,   134,   135,   131,   137,   139,
      393,     0,     0,   132,   133,   134,   135,   131,   137,   139,
@@ -3754,40 +3754,40 @@ namespace isc { namespace dhcp {
   Dhcp6Parser::yypgoto_[] =
   Dhcp6Parser::yypgoto_[] =
   {
   {
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,    12,  -707,    53,  -707,  -707,
-    -707,  -707,  -707,  -707,    10,  -707,  -123,  -707,  -707,  -707,
-     -66,  -707,  -707,  -707,   280,  -707,  -707,  -707,  -707,    43,
-     253,   -62,   -50,   -49,   -48,  -707,  -707,  -707,  -707,  -707,
-      90,   272,  -707,  -707,  -707,  -707,  -707,  -707,  -707,    89,
-    -107,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,   -74,  -707,  -521,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -121,  -507,  -707,  -707,  -707,  -707,
-    -122,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -125,
-    -707,  -707,  -707,  -120,   232,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -130,  -707,  -707,  -707,  -707,  -707,  -707,  -706,
-    -707,  -707,  -707,  -102,  -707,  -707,  -707,   -99,   282,  -707,
-    -707,  -704,  -707,  -693,  -707,  -517,  -707,  -686,  -707,  -707,
-    -707,  -684,  -707,  -707,  -707,  -707,  -109,  -707,  -707,  -232,
-     574,  -707,  -707,  -707,  -707,  -707,   -98,  -707,  -707,  -707,
-     -95,  -707,   254,  -707,   -73,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,    12,  -707,    56,  -707,  -707,
+    -707,  -707,  -707,  -707,    90,  -707,  -132,  -707,  -707,  -707,
+     -66,  -707,  -707,  -707,   279,  -707,  -707,  -707,  -707,    27,
+     265,   -62,   -50,   -49,   -48,  -707,  -707,  -707,  -707,  -707,
+      99,   273,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   103,
+    -104,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
+    -707,   -74,  -707,  -520,  -707,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -114,  -507,  -707,  -707,  -707,  -707,
+    -116,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -121,
+    -707,  -707,  -707,  -118,   237,  -707,  -707,  -707,  -707,  -707,
+    -707,  -707,  -125,  -707,  -707,  -707,  -707,  -707,  -707,  -706,
+    -707,  -707,  -707,   -98,  -707,  -707,  -707,   -93,   283,  -707,
+    -707,  -704,  -707,  -686,  -707,  -518,  -707,  -681,  -707,  -707,
+    -707,  -680,  -707,  -707,  -707,  -707,  -103,  -707,  -707,  -229,
+     566,  -707,  -707,  -707,  -707,  -707,   -92,  -707,  -707,  -707,
+     -91,  -707,   257,  -707,   -73,  -707,  -707,  -707,  -707,  -707,
      -61,  -707,  -707,  -707,  -707,  -707,   -54,  -707,  -707,  -707,
      -61,  -707,  -707,  -707,  -707,  -707,   -54,  -707,  -707,  -707,
-     -96,  -707,  -707,  -707,   -93,  -707,   252,  -707,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -138,  -707,
-    -707,  -707,  -131,   286,  -707,  -707,   -45,  -707,  -707,  -707,
-    -707,  -707,  -134,  -707,  -707,  -707,  -128,   289,  -707,  -707,
-    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -136,
-    -707,  -707,  -707,  -127,  -707,   292,  -707,  -707,  -707,  -707,
+     -90,  -707,  -707,  -707,   -89,  -707,   253,  -707,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -129,  -707,
+    -707,  -707,  -130,   291,  -707,  -707,   -45,  -707,  -707,  -707,
+    -707,  -707,  -127,  -707,  -707,  -707,  -123,   292,  -707,  -707,
+    -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -126,
+    -707,  -707,  -707,  -122,  -707,   310,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -678,  -707,  -707,  -707,  -677,  -707,  -707,  -707,  -707,  -707,
-     112,  -707,  -707,  -707,  -707,  -707,  -707,  -108,  -707,  -707,
+    -674,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
+     127,  -707,  -707,  -707,  -707,  -707,  -707,   -86,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -111,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   123,
-     261,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
+     -95,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,   147,
+     275,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
     -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,  -707,
-    -707,  -707,  -707,   -39,  -707,  -707,  -707,  -229,  -707,  -707,
-    -225,  -707,  -707,  -707,  -707,  -707,  -707,  -230,  -707,  -707,
-    -249,  -707,  -707,  -707,  -707,  -707
+    -707,  -707,  -707,   -21,  -707,  -707,  -707,  -194,  -707,  -707,
+    -204,  -707,  -707,  -707,  -707,  -707,  -707,  -215,  -707,  -707,
+    -231,  -707,  -707,  -707,  -707,  -707
   };
   };
 
 
   const short int
   const short int
@@ -3807,7 +3807,7 @@ namespace isc { namespace dhcp {
      331,   663,   664,   665,   666,   667,   668,   669,   670,   136,
      331,   663,   664,   665,   666,   667,   668,   669,   670,   136,
      322,   622,   623,   624,   728,    47,    69,   169,   170,   171,
      322,   622,   623,   624,   728,    47,    69,   169,   170,   171,
      346,   172,   347,   173,   348,   174,   352,   175,   351,   551,
      346,   172,   347,   173,   348,   174,   352,   175,   351,   551,
-     176,   177,   137,   325,   634,   635,   636,   737,   816,   817,
+     176,   177,   137,   325,   634,   635,   636,   737,   817,   818,
      138,   323,    55,    73,   626,   627,   628,   731,    57,    74,
      138,   323,    55,    73,   626,   627,   628,   731,    57,    74,
      235,   236,   237,   238,   239,   240,   241,   377,   242,   381,
      235,   236,   237,   238,   239,   240,   241,   377,   242,   381,
      243,   380,   244,   245,   382,   246,   139,   324,   630,   631,
      243,   380,   244,   245,   382,   246,   139,   324,   630,   631,
@@ -3834,78 +3834,78 @@ namespace isc { namespace dhcp {
   Dhcp6Parser::yytable_[] =
   Dhcp6Parser::yytable_[] =
   {
   {
       90,   251,   252,   164,   185,   196,   213,   165,   233,   250,
       90,   251,   252,   164,   185,   196,   213,   165,   233,   250,
-     265,   284,   677,   651,   253,   178,   186,   197,   214,   166,
+     265,   284,   651,   677,   253,   178,   186,   197,   214,   166,
      167,   168,   646,   151,    84,   190,   198,    36,    29,   594,
      167,   168,   646,   151,    84,   190,   198,    36,    29,   594,
       30,   811,    31,   812,   595,   596,   597,   598,   599,   600,
       30,   811,    31,   812,   595,   596,   597,   598,   599,   600,
-     601,   602,   603,   604,   813,    28,   671,   101,   102,   103,
-     104,   814,   227,   815,   108,   599,   226,   108,   227,   819,
-     820,    40,   312,   637,   152,    42,   153,   313,   637,   644,
-     108,   645,   154,   155,   156,   157,   158,   159,   160,   227,
-     740,   228,   229,   741,    81,   230,   231,   232,   161,   162,
-     446,   263,   264,   301,   108,    44,   163,    98,   151,   336,
-      99,   100,   206,   107,   337,   184,   207,   208,   209,   210,
-     211,   212,   154,   227,   548,   549,   550,   101,   102,   103,
-     104,   105,   106,   107,   108,    46,   672,   673,   674,   675,
-     108,    48,   227,   247,   228,   229,   248,   249,   638,   743,
-      85,    50,   744,   191,   192,   193,   194,   195,   154,    86,
-      87,    88,   109,   110,   111,   112,   113,   145,   146,    89,
-     811,   340,   812,   161,    89,    89,   341,    89,   114,   745,
-      89,   115,   746,   813,    32,    33,    34,    35,   116,   355,
-     814,    89,   815,    89,   356,    52,   117,   118,   819,   820,
-     119,    89,   101,   102,   103,   104,   358,   106,   365,   108,
-     227,   359,   888,   366,   889,   890,    54,    89,   657,   658,
-     659,   660,   661,   662,   886,   914,   393,   887,   915,   156,
-     157,   394,   159,   160,   409,    89,   576,   577,   824,   410,
-     302,   113,   580,   581,   582,   583,   646,    89,   263,   264,
-     336,   163,   677,    89,    89,   709,    90,    56,   270,   271,
+     601,   602,   603,   604,   671,    28,   637,   101,   102,   103,
+     104,   813,   227,   599,   108,   151,   815,   816,   108,   227,
+     263,   264,   312,   820,   152,   151,   153,   313,    40,   226,
+     263,   264,   154,   155,   156,   157,   158,   159,   160,   101,
+     102,   103,   104,    42,   106,   336,   108,   227,   161,   162,
+     337,   446,   227,    44,   228,   229,   163,   340,   230,   231,
+     232,   108,   341,   355,   227,   108,   156,   157,   356,   159,
+     160,   108,   576,   577,   191,   192,   193,   194,   195,   154,
+     161,   638,   184,    46,   672,   673,   674,   675,   163,   154,
+     161,    48,    98,    50,   358,    99,   100,   206,    89,   359,
+      85,   207,   208,   209,   210,   211,   212,   145,   146,    86,
+      87,    88,   101,   102,   103,   104,   105,   106,   107,   108,
+     811,   365,   812,   393,    89,    89,   366,    89,   394,   637,
+     644,    89,   645,    52,    32,    33,    34,    35,   916,    89,
+     813,   917,   918,   919,    54,   815,   816,   109,   110,   111,
+     112,   113,   820,   888,    56,   889,   890,   409,   740,    89,
+     336,   741,   410,   114,    89,   709,   115,   580,   581,   582,
+     583,    58,   711,   116,    89,   340,    89,   712,    89,   814,
+     713,   117,   118,   743,    89,   119,   744,   824,   227,   247,
+     228,   229,   248,   249,    60,   725,   646,   725,   745,   584,
+     726,   746,   727,   677,   886,    62,    90,   887,   270,   271,
      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
      272,   273,   274,   275,   276,   277,   278,   279,   280,   281,
-     282,   283,   916,    58,   584,   917,   918,   919,   448,   711,
-     340,    60,   725,   725,   712,   713,   447,   726,   727,   756,
-     763,   767,   409,   304,   757,   764,   768,   769,   449,   164,
-     355,   866,   185,   165,    89,   863,   867,   393,   358,   196,
-      62,   178,   868,   877,   186,   166,   167,   168,   303,   213,
-     305,   197,    89,   190,   411,   412,   251,   252,   365,   233,
-     198,   214,   902,   878,   250,   685,   686,   903,   311,   253,
-       1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,   284,   931,   853,   854,   855,   856,   932,
-     869,   870,   871,   558,   559,   560,   317,   318,   319,   320,
-     321,   333,   339,   349,   350,   361,   363,   364,   375,   413,
-     444,   379,   374,   383,   376,   385,   384,   387,   388,   389,
-     390,   423,   395,   398,   400,   401,   404,   405,   406,   414,
-     415,   416,   417,   418,   420,   421,   422,   424,   425,   426,
-     427,   428,   429,   430,   431,   432,   433,   434,   435,   436,
-     437,   438,   439,   440,   441,   443,   455,   456,   457,   458,
-     459,   460,   462,   461,   463,   464,   465,   466,   517,   518,
-     519,   468,   470,   471,   472,   473,   474,   476,   477,   478,
-     479,   480,   481,   482,   484,   485,   487,   613,   613,   486,
-     488,   489,   490,   492,   493,   605,   605,   494,   496,   497,
-     499,   500,   501,   502,   503,   504,   448,   676,   505,   284,
-     506,   507,   508,   511,   447,   509,   510,   512,   514,   515,
-     545,   546,   516,   520,   521,   522,   449,   523,   524,   525,
-     526,   527,   528,   529,   530,   531,   547,   552,   532,   533,
-     534,   535,   536,   539,   540,   541,    30,   542,   553,   572,
-     543,   554,   621,   625,   629,   633,   653,   693,   695,   699,
-     718,   555,   703,   719,   720,   721,   587,   556,   722,   729,
-     730,   707,   732,   733,   735,   736,   739,   738,   643,   749,
-     742,   748,   750,   751,   557,   561,   562,   563,   752,   753,
-     754,   755,   760,   761,   762,   776,   779,   775,   588,   564,
-     778,   781,   782,   843,   784,   785,   579,   787,   788,   565,
-     566,   789,   790,   796,   797,   567,   568,   569,   589,   834,
-     570,   835,   571,   573,   840,   841,   844,   852,   851,   442,
-     900,   904,   419,   864,   574,   575,   865,   879,   881,   586,
-     906,   910,   908,   770,   773,   928,   929,   930,   791,   933,
-     593,   620,   445,   792,   793,   794,   795,   827,   798,   822,
-     828,   823,   829,   830,   826,   498,   833,   825,   800,   799,
-     821,   831,   832,   836,   884,   802,   801,   467,   846,   491,
-     804,   803,   495,   845,   469,   848,   850,   225,   837,   847,
-     838,   613,   694,   849,   475,   839,   842,   898,   691,   605,
-     251,   252,   164,   810,   934,   233,   165,   483,   250,   858,
-     513,   805,   786,   253,   178,   806,   859,   907,   166,   167,
-     168,   265,   937,   818,   926,     0,     0,   807,   808,   809,
-       0,   860,   861,   862,   873,     0,     0,   676,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   185,   874,
-       0,   196,   905,   875,   213,     0,   876,   880,     0,     0,
-     186,     0,   909,   197,   935,   936,   214,   938,     0,   190,
+     282,   283,   657,   658,   659,   660,   661,   662,   448,   756,
+     763,    81,    89,   767,   757,   764,   447,   409,   768,   355,
+     866,   393,   769,   107,   863,   867,   868,   301,   449,   164,
+     358,   365,   185,   165,    89,   877,   878,   902,   931,   196,
+     302,   178,   903,   932,   186,   166,   167,   168,   303,   213,
+     304,   197,   305,   190,   411,   412,   251,   252,   311,   233,
+     198,   214,   317,   318,   250,   853,   854,   855,   856,   253,
+     914,   685,   686,   915,   548,   549,   550,   869,   870,   871,
+      89,   319,   320,   284,   558,   559,   560,   321,   814,     1,
+       2,     3,     4,     5,     6,     7,     8,     9,    10,    11,
+      12,    13,   333,   339,   349,   350,   361,   363,   364,   375,
+     413,   444,   379,   374,   383,   376,   385,   384,   387,   388,
+     389,   390,   423,   395,   398,   400,   401,   404,   405,   406,
+     414,   415,   416,   417,   418,   420,   421,   422,   428,   424,
+     425,   426,   427,   429,   430,   431,   432,   433,   434,   435,
+     436,   437,   438,   439,   440,   441,   443,   455,   456,   457,
+     458,   459,   460,   462,   461,   463,   464,   465,   517,   518,
+     519,   466,   468,   470,   471,   472,   473,   474,   476,   477,
+     478,   479,   480,   481,   482,   484,   485,   613,   613,   487,
+     486,   488,   489,   490,   492,   605,   605,   493,   496,   494,
+     497,   499,   500,   501,   502,   503,   448,   676,   504,   284,
+     506,   507,   505,   511,   447,   508,   509,   510,   512,   514,
+     515,   545,   540,   516,   520,   521,   449,   522,   523,   524,
+     525,   526,   527,   528,   529,   530,   531,   546,   547,   532,
+     533,   534,   535,   536,   539,   541,   542,   552,   555,   572,
+      30,   553,   554,   543,   621,   625,   629,   633,   653,   693,
+     695,   699,   556,   703,   718,   719,   587,   557,   561,   720,
+     707,   721,   722,   730,   784,   729,   733,   732,   735,   736,
+     738,   739,   588,   742,   749,   748,   562,   563,   564,   565,
+     750,   751,   752,   753,   754,   755,   760,   761,   762,   776,
+     566,   775,   779,   778,   579,   782,   781,   785,   787,   788,
+     567,   568,   789,   589,   790,   569,   570,   571,   796,   797,
+     834,   573,   835,   574,   575,   840,   841,   844,   864,   843,
+     851,   419,   852,   865,   908,   586,   879,   881,   900,   904,
+     906,   442,   770,   773,   910,   791,   928,   929,   930,   792,
+     933,   794,   793,   445,   795,   827,   828,   829,   643,   593,
+     830,   798,   831,   832,   836,   620,   822,   823,   826,   825,
+     498,   833,   800,   837,   838,   799,   821,   884,   467,   225,
+     801,   802,   491,   495,   845,   803,   804,   846,   858,   469,
+     859,   613,   848,   860,   847,   861,   850,   475,   849,   605,
+     251,   252,   164,   810,   905,   233,   165,   694,   250,   862,
+     873,   805,   842,   253,   178,   806,   934,   839,   166,   167,
+     168,   265,   691,   819,   513,   483,   874,   807,   808,   809,
+     786,   875,   898,   876,   880,   909,   938,   676,   907,   926,
+     937,     0,     0,     0,     0,     0,     0,     0,   185,     0,
+     935,   196,     0,   936,   213,     0,     0,     0,     0,     0,
+     186,     0,     0,   197,     0,     0,   214,     0,     0,   190,
        0,     0,   198,     0,     0,     0,     0,     0,     0,     0,
        0,     0,   198,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -3914,7 +3914,7 @@ namespace isc { namespace dhcp {
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
        0,     0,   810,     0,     0,     0,     0,     0,     0,     0,
      805,     0,     0,     0,   806,     0,     0,     0,     0,     0,
      805,     0,     0,     0,   806,     0,     0,     0,     0,     0,
-       0,   892,   818,     0,     0,     0,   807,   808,   809,   891,
+       0,   892,   819,     0,     0,     0,   807,   808,   809,   891,
        0,     0,     0,     0,     0,     0,     0,     0,   892,     0,
        0,     0,     0,     0,     0,     0,     0,     0,   892,     0,
        0,     0,     0,     0,     0,     0,   891
        0,     0,     0,     0,     0,     0,   891
   };
   };
@@ -3923,78 +3923,78 @@ namespace isc { namespace dhcp {
   Dhcp6Parser::yycheck_[] =
   Dhcp6Parser::yycheck_[] =
   {
   {
       66,    75,    75,    69,    70,    71,    72,    69,    74,    75,
       66,    75,    75,    69,    70,    71,    72,    69,    74,    75,
-      76,    77,   533,   530,    75,    69,    70,    71,    72,    69,
+      76,    77,   530,   533,    75,    69,    70,    71,    72,    69,
       69,    69,   529,     7,    10,    70,    71,    15,     5,    16,
       69,    69,   529,     7,    10,    70,    71,    15,     5,    16,
        7,   737,     9,   737,    21,    22,    23,    24,    25,    26,
        7,   737,     9,   737,    21,    22,    23,    24,    25,    26,
-      27,    28,    29,    30,   737,     0,    16,    31,    32,    33,
-      34,   737,    39,   737,    38,    25,    16,    38,    39,   737,
-     737,     7,     3,    76,    48,     7,    50,     8,    76,    77,
-      38,    79,    56,    57,    58,    59,    60,    61,    62,    39,
-       3,    41,    42,     6,   151,    45,    46,    47,    72,    73,
-      71,    83,    84,     6,    38,     7,    80,    11,     7,     3,
-      14,    15,    70,    37,     8,    49,    74,    75,    76,    77,
-      78,    79,    56,    39,    63,    64,    65,    31,    32,    33,
-      34,    35,    36,    37,    38,     7,    96,    97,    98,    99,
-      38,     7,    39,    40,    41,    42,    43,    44,   151,     3,
-     126,     7,     6,    51,    52,    53,    54,    55,    56,   135,
-     136,   137,    66,    67,    68,    69,    70,    12,    13,   151,
-     866,     3,   866,    72,   151,   151,     8,   151,    82,     3,
-     151,    85,     6,   866,   151,   152,   153,   154,    92,     3,
-     866,   151,   866,   151,     8,     7,   100,   101,   866,   866,
-     104,   151,    31,    32,    33,    34,     3,    36,     3,    38,
-      39,     8,   128,     8,   130,   131,     7,   151,    86,    87,
-      88,    89,    90,    91,     3,     3,     3,     6,     6,    58,
-      59,     8,    61,    62,     3,   151,   119,   120,   745,     8,
-       3,    70,   122,   123,   124,   125,   743,   151,    83,    84,
-       3,    80,   763,   151,   151,     8,   312,     7,   105,   106,
+      27,    28,    29,    30,    16,     0,    76,    31,    32,    33,
+      34,   737,    39,    25,    38,     7,   737,   737,    38,    39,
+      83,    84,     3,   737,    48,     7,    50,     8,     7,    16,
+      83,    84,    56,    57,    58,    59,    60,    61,    62,    31,
+      32,    33,    34,     7,    36,     3,    38,    39,    72,    73,
+       8,    71,    39,     7,    41,    42,    80,     3,    45,    46,
+      47,    38,     8,     3,    39,    38,    58,    59,     8,    61,
+      62,    38,   119,   120,    51,    52,    53,    54,    55,    56,
+      72,   151,    49,     7,    96,    97,    98,    99,    80,    56,
+      72,     7,    11,     7,     3,    14,    15,    70,   151,     8,
+     126,    74,    75,    76,    77,    78,    79,    12,    13,   135,
+     136,   137,    31,    32,    33,    34,    35,    36,    37,    38,
+     866,     3,   866,     3,   151,   151,     8,   151,     8,    76,
+      77,   151,    79,     7,   151,   152,   153,   154,   129,   151,
+     866,   132,   133,   134,     7,   866,   866,    66,    67,    68,
+      69,    70,   866,   128,     7,   130,   131,     3,     3,   151,
+       3,     6,     8,    82,   151,     8,    85,   122,   123,   124,
+     125,     7,     3,    92,   151,     3,   151,     8,   151,   737,
+       8,   100,   101,     3,   151,   104,     6,   745,    39,    40,
+      41,    42,    43,    44,     7,     3,   743,     3,     3,   154,
+       8,     6,     8,   763,     3,     7,   312,     6,   105,   106,
      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
      107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-     117,   118,   129,     7,   154,   132,   133,   134,   342,     3,
-       3,     7,     3,     3,     8,     8,   342,     8,     8,     3,
-       3,     3,     3,     8,     8,     8,     8,     8,   342,   355,
+     117,   118,    86,    87,    88,    89,    90,    91,   342,     3,
+       3,   151,   151,     3,     8,     8,   342,     3,     8,     3,
+       3,     3,     8,    37,     8,     8,     8,     6,   342,   355,
        3,     3,   358,   355,   151,     8,     8,     3,     3,   365,
        3,     3,   358,   355,   151,     8,     8,     3,     3,   365,
-       7,   355,     8,     8,   358,   355,   355,   355,     4,   375,
-       3,   365,   151,   358,   302,   303,   390,   390,     3,   385,
-     365,   375,     3,     8,   390,   102,   103,     8,     4,   390,
-     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
-     148,   149,   150,   409,     3,    17,    18,    19,    20,     8,
-      93,    94,    95,   476,   477,   478,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     3,   151,
-     154,     4,     8,     4,     8,     3,     8,     4,     4,     8,
-       3,   152,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,   152,   152,   152,
-     152,     4,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,   152,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,   154,   152,     4,     4,     4,     4,   416,   417,
-     418,     4,     4,   152,     4,   152,   152,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,   521,   522,   152,
-       4,     4,   154,     4,   154,   521,   522,   154,     4,     4,
-     154,     4,     4,   152,     4,   152,   540,   533,   152,   535,
-       4,     4,   154,     4,   540,   154,   154,     4,     4,     7,
-     151,   151,     7,     7,     7,     7,   540,     5,     5,     5,
-       5,     5,     5,     5,     5,     5,   151,   151,     7,     7,
-       7,     7,     5,     8,     3,     5,     7,     5,     5,   497,
-     457,     7,     7,     7,     7,     7,     7,     4,     7,     7,
-       4,   151,     7,     4,     4,     4,   514,   151,     4,     6,
-       3,    81,     6,     3,     6,     3,     3,     6,   528,     3,
-       6,     6,     4,     4,   151,   151,   151,   151,     4,     4,
-       4,     4,     4,     4,     4,     3,     3,     6,   515,   151,
-       6,     6,     3,     6,     8,     4,   121,     4,     4,   151,
-     151,     4,     4,     4,     4,   151,   151,   151,   127,     4,
-     151,     4,   151,   151,     4,     4,     3,     5,     4,   336,
-       4,     4,   312,     8,   151,   151,     8,     8,     7,   151,
-       4,     7,     5,   151,   151,     4,     4,     4,   152,     4,
-     520,   522,   340,   154,   152,   154,   152,   152,   725,   740,
-     152,   743,   152,   152,   749,   393,   756,   747,   730,   728,
-     739,   152,   152,   152,   866,   733,   731,   355,   776,   385,
-     736,   734,   390,   774,   358,   779,   782,    73,   152,   777,
-     152,   725,   540,   780,   365,   763,   767,   886,   535,   725,
-     734,   734,   728,   737,   154,   731,   728,   375,   734,   151,
-     409,   737,   711,   734,   728,   737,   151,   902,   728,   728,
-     728,   747,   931,   737,   914,    -1,    -1,   737,   737,   737,
-      -1,   151,   151,   151,   151,    -1,    -1,   763,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   774,   151,
-      -1,   777,   152,   151,   780,    -1,   151,   151,    -1,    -1,
-     774,    -1,   151,   777,   152,   152,   780,   151,    -1,   774,
+       3,   355,     8,     8,   358,   355,   355,   355,     4,   375,
+       8,   365,     3,   358,   302,   303,   390,   390,     4,   385,
+     365,   375,     4,     4,   390,    17,    18,    19,    20,   390,
+       3,   102,   103,     6,    63,    64,    65,    93,    94,    95,
+     151,     4,     4,   409,   476,   477,   478,     4,   866,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+     149,   150,     4,     4,     4,     4,     4,     4,     4,     3,
+     151,   154,     4,     8,     4,     8,     3,     8,     4,     4,
+       8,     3,   152,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,   152,
+     152,   152,   152,     4,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,   152,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,   154,   152,     4,     4,     4,   416,   417,
+     418,     4,     4,     4,   152,     4,   152,   152,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,   521,   522,     4,
+     152,     4,     4,   154,     4,   521,   522,   154,     4,   154,
+       4,   154,     4,     4,   152,     4,   540,   533,   152,   535,
+       4,     4,   152,     4,   540,   154,   154,   154,     4,     4,
+       7,   151,     3,     7,     7,     7,   540,     7,     5,     5,
+       5,     5,     5,     5,     5,     5,     5,   151,   151,     7,
+       7,     7,     7,     5,     8,     5,     5,   151,   151,   497,
+       7,     5,     7,   457,     7,     7,     7,     7,     7,     4,
+       7,     7,   151,     7,     4,     4,   514,   151,   151,     4,
+      81,     4,     4,     3,     8,     6,     3,     6,     6,     3,
+       6,     3,   515,     6,     3,     6,   151,   151,   151,   151,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     3,
+     151,     6,     3,     6,   121,     3,     6,     4,     4,     4,
+     151,   151,     4,   127,     4,   151,   151,   151,     4,     4,
+       4,   151,     4,   151,   151,     4,     4,     3,     8,     6,
+       4,   312,     5,     8,     5,   151,     8,     7,     4,     4,
+       4,   336,   151,   151,     7,   152,     4,     4,     4,   154,
+       4,   154,   152,   340,   152,   152,   152,   152,   528,   520,
+     152,   725,   152,   152,   152,   522,   740,   743,   749,   747,
+     393,   756,   730,   152,   152,   728,   739,   866,   355,    73,
+     731,   733,   385,   390,   774,   734,   736,   776,   151,   358,
+     151,   725,   779,   151,   777,   151,   782,   365,   780,   725,
+     734,   734,   728,   737,   152,   731,   728,   540,   734,   151,
+     151,   737,   767,   734,   728,   737,   154,   763,   728,   728,
+     728,   747,   535,   737,   409,   375,   151,   737,   737,   737,
+     711,   151,   886,   151,   151,   151,   151,   763,   902,   914,
+     931,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   774,    -1,
+     152,   777,    -1,   152,   780,    -1,    -1,    -1,    -1,    -1,
+     774,    -1,    -1,   777,    -1,    -1,   780,    -1,    -1,   774,
       -1,    -1,   777,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,   777,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -4092,8 +4092,8 @@ namespace isc { namespace dhcp {
      385,     6,     3,   408,     8,     4,   478,     4,     4,     4,
      385,     6,     3,   408,     8,     4,   478,     4,     4,     4,
        4,   152,   154,   152,   154,   152,     4,     4,   215,   282,
        4,   152,   154,   152,   154,   152,     4,     4,   215,   282,
      278,   315,   311,   339,   335,   185,   196,   197,   198,   199,
      278,   315,   311,   339,   335,   185,   196,   197,   198,   199,
-     226,   274,   286,   288,   292,   296,   303,   304,   331,   405,
-     409,   301,   239,   245,   290,   258,   254,   152,   152,   152,
+     226,   274,   286,   288,   290,   292,   296,   303,   304,   331,
+     405,   301,   239,   245,   290,   258,   254,   152,   152,   152,
      152,   152,   152,   267,     4,     4,   152,   152,   152,   422,
      152,   152,   152,   267,     4,     4,   152,   152,   152,   422,
        4,     4,   435,     6,     3,   357,   353,   371,   367,   388,
        4,     4,   435,     6,     3,   357,   353,   371,   367,   388,
      384,     4,     5,    17,    18,    19,    20,   218,   151,   151,
      384,     4,     5,    17,    18,    19,    20,   218,   151,   151,

+ 1 - 1
src/bin/dhcp6/location.hh

@@ -1,4 +1,4 @@
-// Generated 201709051124
+// Generated 201709141022
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Locations for Bison parsers in C++
 // Locations for Bison parsers in C++

+ 1 - 1
src/bin/dhcp6/position.hh

@@ -1,4 +1,4 @@
-// Generated 201709051124
+// Generated 201709141022
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Positions for Bison parsers in C++
 // Positions for Bison parsers in C++

+ 1 - 1
src/bin/dhcp6/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201709051124
+// Generated 201709141022
 // A Bison parser, made by GNU Bison 3.0.4.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Stack handling for Bison parsers in C++
 // Stack handling for Bison parsers in C++