From: Thomas Markwalder Date: Mon, 23 Sep 2024 14:51:50 +0000 (-0400) Subject: [#3583] Added client-class to OptionDescriptor X-Git-Tag: Kea-2.7.4~75 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=74a37d39e083035bce54e747c0701f81bcafc020;p=thirdparty%2Fkea.git [#3583] Added client-class to OptionDescriptor option-data.client-classes can be parsed and stored in OptionDescriptor. /src/bin/dhcp4/dhcp4_lexer.ll /src/bin/dhcp4/dhcp4_parser.yy /src/bin/dhcp6/dhcp6_lexer.ll /src/bin/dhcp6/dhcp6_parser.yy /src/lib/dhcp/classify.* Added ClientClasses copy and equality operators /src/lib/dhcp/tests/classify_unittest.cc Udpated unit tests /src/lib/dhcpsrv/cfg_option.cc Added OptionDecription::client_classes_ and supporting funcs /src/lib/dhcpsrv/parsers/option_data_parser.cc OptionDataParser::createOption() - modified to parse 'client-classes' /src/lib/dhcpsrv/parsers/simple_parser4.cc Added 'client-classes' to OPTION4_PARAMETERS /src/lib/dhcpsrv/parsers/simple_parser6.cc Added 'client-classes' to OPTION6_PARAMETERS /src/lib/dhcpsrv/tests/cfg_option_unittest.cc Updated tests /src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc TEST_F(ParseConfigTest, optionDataClientClasses4) TEST_F(ParseConfigTest, optionDataClientClasses6) TEST_F(ParseConfigTest, optionDataClientClassesEmpty4) TEST_F(ParseConfigTest, optionDataClientClassesEmpty6) - new tests --- diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc index a6bcaf2260..ae570ddeda 100644 --- a/src/bin/dhcp4/dhcp4_lexer.cc +++ b/src/bin/dhcp4/dhcp4_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp4_lexer.cc" +#line 2 "dhcp4_lexer.cc" -#line 3 "dhcp4_lexer.cc" +#line 4 "dhcp4_lexer.cc" #define YY_INT_ALIGNED short int @@ -2172,6 +2172,7 @@ static const flex_int16_t yy_rule_linenum[235] = 891, 901, 912, 922, 933, 942, 952, 966, 982, 991, 1000, 1009, 1018, 1027, 1036, 1060, 1084, 1093, 1103, 1112, +<<<<<<< HEAD 1123, 1134, 1145, 1155, 1164, 1175, 1186, 1197, 1208, 1220, 1229, 1238, 1247, 1256, 1265, 1274, 1283, 1292, 1301, 1310, 1320, 1331, 1343, 1352, 1361, 1370, 1380, 1390, 1400, 1410, @@ -2187,6 +2188,23 @@ static const flex_int16_t yy_rule_linenum[235] = 2173, 2182, 2191, 2200, 2212, 2221, 2322, 2338, 2387, 2395, 2410, 2411, 2412, 2413, 2414, 2415, 2417, 2435, 2448, 2453, 2457, 2459, 2461, 2463 +======= + 1120, 1130, 1139, 1150, 1161, 1172, 1182, 1191, 1202, 1213, + 1224, 1235, 1247, 1256, 1265, 1274, 1283, 1292, 1301, 1310, + 1319, 1328, 1337, 1348, 1359, 1371, 1380, 1389, 1398, 1408, + 1418, 1428, 1438, 1448, 1458, 1467, 1477, 1486, 1495, 1504, + 1513, 1523, 1532, 1541, 1551, 1560, 1569, 1578, 1587, 1596, + 1605, 1614, 1623, 1632, 1641, 1650, 1659, 1668, 1677, 1686, + 1695, 1704, 1713, 1722, 1731, 1740, 1749, 1758, 1767, 1776, + 1785, 1794, 1803, 1812, 1821, 1830, 1839, 1848, 1857, 1866, + 1875, 1884, 1893, 1902, 1911, 1920, 1929, 1938, 1947, 1958, + 1969, 1979, 1989, 1999, 2009, 2019, 2029, 2039, 2049, 2059, + + 2068, 2077, 2086, 2095, 2106, 2117, 2130, 2143, 2156, 2165, + 2174, 2183, 2192, 2201, 2210, 2219, 2228, 2240, 2249, 2350, + 2366, 2415, 2423, 2438, 2439, 2440, 2441, 2442, 2443, 2445, + 2463, 2476, 2481, 2485, 2487, 2489, 2491 +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) } ; /* The intent behind this definition is that it'll catch @@ -2241,7 +2259,11 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg) +<<<<<<< HEAD #line 2244 "dhcp4_lexer.cc" +======= +#line 2255 "dhcp4_lexer.cc" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2267,8 +2289,13 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); +<<<<<<< HEAD #line 2270 "dhcp4_lexer.cc" #line 2271 "dhcp4_lexer.cc" +======= +#line 2281 "dhcp4_lexer.cc" +#line 2282 "dhcp4_lexer.cc" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) #define INITIAL 0 #define COMMENT 1 @@ -2596,7 +2623,11 @@ YY_DECL } +<<<<<<< HEAD #line 2599 "dhcp4_lexer.cc" +======= +#line 2610 "dhcp4_lexer.cc" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -4208,6 +4239,7 @@ YY_RULE_SETUP switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::RESERVATIONS: + case isc::dhcp::Parser4Context::OPTION_DATA: return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASSES(driver.loc_); default: return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_); @@ -4216,7 +4248,11 @@ YY_RULE_SETUP YY_BREAK case 121: YY_RULE_SETUP +<<<<<<< HEAD #line 1320 "dhcp4_lexer.ll" +======= +#line 1348 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4230,7 +4266,11 @@ YY_RULE_SETUP YY_BREAK case 122: YY_RULE_SETUP +<<<<<<< HEAD #line 1331 "dhcp4_lexer.ll" +======= +#line 1359 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4245,7 +4285,11 @@ YY_RULE_SETUP YY_BREAK case 123: YY_RULE_SETUP +<<<<<<< HEAD #line 1343 "dhcp4_lexer.ll" +======= +#line 1371 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4257,7 +4301,11 @@ YY_RULE_SETUP YY_BREAK case 124: YY_RULE_SETUP +<<<<<<< HEAD #line 1352 "dhcp4_lexer.ll" +======= +#line 1380 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4269,7 +4317,11 @@ YY_RULE_SETUP YY_BREAK case 125: YY_RULE_SETUP +<<<<<<< HEAD #line 1361 "dhcp4_lexer.ll" +======= +#line 1389 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENT_CLASSES: @@ -4281,7 +4333,11 @@ YY_RULE_SETUP YY_BREAK case 126: YY_RULE_SETUP +<<<<<<< HEAD #line 1370 "dhcp4_lexer.ll" +======= +#line 1398 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4294,7 +4350,11 @@ YY_RULE_SETUP YY_BREAK case 127: YY_RULE_SETUP +<<<<<<< HEAD #line 1380 "dhcp4_lexer.ll" +======= +#line 1408 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4307,7 +4367,11 @@ YY_RULE_SETUP YY_BREAK case 128: YY_RULE_SETUP +<<<<<<< HEAD #line 1390 "dhcp4_lexer.ll" +======= +#line 1418 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4320,7 +4384,11 @@ YY_RULE_SETUP YY_BREAK case 129: YY_RULE_SETUP +<<<<<<< HEAD #line 1400 "dhcp4_lexer.ll" +======= +#line 1428 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4333,7 +4401,11 @@ YY_RULE_SETUP YY_BREAK case 130: YY_RULE_SETUP +<<<<<<< HEAD #line 1410 "dhcp4_lexer.ll" +======= +#line 1438 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4346,7 +4418,11 @@ YY_RULE_SETUP YY_BREAK case 131: YY_RULE_SETUP +<<<<<<< HEAD #line 1420 "dhcp4_lexer.ll" +======= +#line 1448 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS: @@ -4359,7 +4435,11 @@ YY_RULE_SETUP YY_BREAK case 132: YY_RULE_SETUP +<<<<<<< HEAD #line 1430 "dhcp4_lexer.ll" +======= +#line 1458 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -4371,7 +4451,11 @@ YY_RULE_SETUP YY_BREAK case 133: YY_RULE_SETUP +<<<<<<< HEAD #line 1439 "dhcp4_lexer.ll" +======= +#line 1467 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4384,7 +4468,11 @@ YY_RULE_SETUP YY_BREAK case 134: YY_RULE_SETUP +<<<<<<< HEAD #line 1449 "dhcp4_lexer.ll" +======= +#line 1477 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DATA: @@ -4396,7 +4484,11 @@ YY_RULE_SETUP YY_BREAK case 135: YY_RULE_SETUP +<<<<<<< HEAD #line 1458 "dhcp4_lexer.ll" +======= +#line 1486 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4408,7 +4500,11 @@ YY_RULE_SETUP YY_BREAK case 136: YY_RULE_SETUP +<<<<<<< HEAD #line 1467 "dhcp4_lexer.ll" +======= +#line 1495 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4420,7 +4516,11 @@ YY_RULE_SETUP YY_BREAK case 137: YY_RULE_SETUP +<<<<<<< HEAD #line 1476 "dhcp4_lexer.ll" +======= +#line 1504 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::OPTION_DEF: @@ -4432,7 +4532,11 @@ YY_RULE_SETUP YY_BREAK case 138: YY_RULE_SETUP +<<<<<<< HEAD #line 1485 "dhcp4_lexer.ll" +======= +#line 1513 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -4445,7 +4549,11 @@ YY_RULE_SETUP YY_BREAK case 139: YY_RULE_SETUP +<<<<<<< HEAD #line 1495 "dhcp4_lexer.ll" +======= +#line 1523 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RESERVATIONS: @@ -4457,7 +4565,11 @@ YY_RULE_SETUP YY_BREAK case 140: YY_RULE_SETUP +<<<<<<< HEAD #line 1504 "dhcp4_lexer.ll" +======= +#line 1532 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::RELAY: @@ -4469,7 +4581,11 @@ YY_RULE_SETUP YY_BREAK case 141: YY_RULE_SETUP +<<<<<<< HEAD #line 1513 "dhcp4_lexer.ll" +======= +#line 1541 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4481,7 +4597,11 @@ YY_RULE_SETUP YY_BREAK case 142: YY_RULE_SETUP +<<<<<<< HEAD #line 1523 "dhcp4_lexer.ll" +======= +#line 1551 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4493,7 +4613,11 @@ YY_RULE_SETUP YY_BREAK case 143: YY_RULE_SETUP +<<<<<<< HEAD #line 1532 "dhcp4_lexer.ll" +======= +#line 1560 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::HOOKS_LIBRARIES: @@ -4505,7 +4629,11 @@ YY_RULE_SETUP YY_BREAK case 144: YY_RULE_SETUP +<<<<<<< HEAD #line 1541 "dhcp4_lexer.ll" +======= +#line 1569 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4517,7 +4645,11 @@ YY_RULE_SETUP YY_BREAK case 145: YY_RULE_SETUP +<<<<<<< HEAD #line 1550 "dhcp4_lexer.ll" +======= +#line 1578 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4529,7 +4661,11 @@ YY_RULE_SETUP YY_BREAK case 146: YY_RULE_SETUP +<<<<<<< HEAD #line 1559 "dhcp4_lexer.ll" +======= +#line 1587 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4541,7 +4677,11 @@ YY_RULE_SETUP YY_BREAK case 147: YY_RULE_SETUP +<<<<<<< HEAD #line 1568 "dhcp4_lexer.ll" +======= +#line 1596 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4553,7 +4693,11 @@ YY_RULE_SETUP YY_BREAK case 148: YY_RULE_SETUP +<<<<<<< HEAD #line 1577 "dhcp4_lexer.ll" +======= +#line 1605 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4565,7 +4709,11 @@ YY_RULE_SETUP YY_BREAK case 149: YY_RULE_SETUP +<<<<<<< HEAD #line 1586 "dhcp4_lexer.ll" +======= +#line 1614 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4577,7 +4725,11 @@ YY_RULE_SETUP YY_BREAK case 150: YY_RULE_SETUP +<<<<<<< HEAD #line 1595 "dhcp4_lexer.ll" +======= +#line 1623 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING: @@ -4589,7 +4741,11 @@ YY_RULE_SETUP YY_BREAK case 151: YY_RULE_SETUP +<<<<<<< HEAD #line 1604 "dhcp4_lexer.ll" +======= +#line 1632 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4601,7 +4757,11 @@ YY_RULE_SETUP YY_BREAK case 152: YY_RULE_SETUP +<<<<<<< HEAD #line 1613 "dhcp4_lexer.ll" +======= +#line 1641 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4613,7 +4773,11 @@ YY_RULE_SETUP YY_BREAK case 153: YY_RULE_SETUP +<<<<<<< HEAD #line 1622 "dhcp4_lexer.ll" +======= +#line 1650 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4625,7 +4789,11 @@ YY_RULE_SETUP YY_BREAK case 154: YY_RULE_SETUP +<<<<<<< HEAD #line 1631 "dhcp4_lexer.ll" +======= +#line 1659 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4637,7 +4805,11 @@ YY_RULE_SETUP YY_BREAK case 155: YY_RULE_SETUP +<<<<<<< HEAD #line 1640 "dhcp4_lexer.ll" +======= +#line 1668 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING: @@ -4649,7 +4821,11 @@ YY_RULE_SETUP YY_BREAK case 156: YY_RULE_SETUP +<<<<<<< HEAD #line 1649 "dhcp4_lexer.ll" +======= +#line 1677 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4661,7 +4837,11 @@ YY_RULE_SETUP YY_BREAK case 157: YY_RULE_SETUP +<<<<<<< HEAD #line 1658 "dhcp4_lexer.ll" +======= +#line 1686 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4673,7 +4853,11 @@ YY_RULE_SETUP YY_BREAK case 158: YY_RULE_SETUP +<<<<<<< HEAD #line 1667 "dhcp4_lexer.ll" +======= +#line 1695 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4685,7 +4869,11 @@ YY_RULE_SETUP YY_BREAK case 159: YY_RULE_SETUP +<<<<<<< HEAD #line 1676 "dhcp4_lexer.ll" +======= +#line 1704 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4697,7 +4885,11 @@ YY_RULE_SETUP YY_BREAK case 160: YY_RULE_SETUP +<<<<<<< HEAD #line 1685 "dhcp4_lexer.ll" +======= +#line 1713 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4709,7 +4901,11 @@ YY_RULE_SETUP YY_BREAK case 161: YY_RULE_SETUP +<<<<<<< HEAD #line 1694 "dhcp4_lexer.ll" +======= +#line 1722 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE: @@ -4721,7 +4917,11 @@ YY_RULE_SETUP YY_BREAK case 162: YY_RULE_SETUP +<<<<<<< HEAD #line 1703 "dhcp4_lexer.ll" +======= +#line 1731 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4733,7 +4933,11 @@ YY_RULE_SETUP YY_BREAK case 163: YY_RULE_SETUP +<<<<<<< HEAD #line 1712 "dhcp4_lexer.ll" +======= +#line 1740 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4745,7 +4949,11 @@ YY_RULE_SETUP YY_BREAK case 164: YY_RULE_SETUP +<<<<<<< HEAD #line 1721 "dhcp4_lexer.ll" +======= +#line 1749 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4757,7 +4965,11 @@ YY_RULE_SETUP YY_BREAK case 165: YY_RULE_SETUP +<<<<<<< HEAD #line 1730 "dhcp4_lexer.ll" +======= +#line 1758 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4769,7 +4981,11 @@ YY_RULE_SETUP YY_BREAK case 166: YY_RULE_SETUP +<<<<<<< HEAD #line 1739 "dhcp4_lexer.ll" +======= +#line 1767 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTH_TYPE: @@ -4781,7 +4997,11 @@ YY_RULE_SETUP YY_BREAK case 167: YY_RULE_SETUP +<<<<<<< HEAD #line 1748 "dhcp4_lexer.ll" +======= +#line 1776 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4793,7 +5013,11 @@ YY_RULE_SETUP YY_BREAK case 168: YY_RULE_SETUP +<<<<<<< HEAD #line 1757 "dhcp4_lexer.ll" +======= +#line 1785 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4805,7 +5029,11 @@ YY_RULE_SETUP YY_BREAK case 169: YY_RULE_SETUP +<<<<<<< HEAD #line 1766 "dhcp4_lexer.ll" +======= +#line 1794 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::AUTHENTICATION: @@ -4817,7 +5045,11 @@ YY_RULE_SETUP YY_BREAK case 170: YY_RULE_SETUP +<<<<<<< HEAD #line 1775 "dhcp4_lexer.ll" +======= +#line 1803 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENTS: @@ -4829,7 +5061,11 @@ YY_RULE_SETUP YY_BREAK case 171: YY_RULE_SETUP +<<<<<<< HEAD #line 1784 "dhcp4_lexer.ll" +======= +#line 1812 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CLIENTS: @@ -4841,7 +5077,11 @@ YY_RULE_SETUP YY_BREAK case 172: YY_RULE_SETUP +<<<<<<< HEAD #line 1793 "dhcp4_lexer.ll" +======= +#line 1821 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::CONTROL_SOCKET: @@ -4853,7 +5093,11 @@ YY_RULE_SETUP YY_BREAK case 173: YY_RULE_SETUP +<<<<<<< HEAD #line 1802 "dhcp4_lexer.ll" +======= +#line 1830 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4865,7 +5109,11 @@ YY_RULE_SETUP YY_BREAK case 174: YY_RULE_SETUP +<<<<<<< HEAD #line 1811 "dhcp4_lexer.ll" +======= +#line 1839 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4877,7 +5125,11 @@ YY_RULE_SETUP YY_BREAK case 175: YY_RULE_SETUP +<<<<<<< HEAD #line 1820 "dhcp4_lexer.ll" +======= +#line 1848 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4889,7 +5141,11 @@ YY_RULE_SETUP YY_BREAK case 176: YY_RULE_SETUP +<<<<<<< HEAD #line 1829 "dhcp4_lexer.ll" +======= +#line 1857 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL: @@ -4901,7 +5157,11 @@ YY_RULE_SETUP YY_BREAK case 177: YY_RULE_SETUP +<<<<<<< HEAD #line 1838 "dhcp4_lexer.ll" +======= +#line 1866 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -4913,7 +5173,11 @@ YY_RULE_SETUP YY_BREAK case 178: YY_RULE_SETUP +<<<<<<< HEAD #line 1847 "dhcp4_lexer.ll" +======= +#line 1875 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4925,7 +5189,11 @@ YY_RULE_SETUP YY_BREAK case 179: YY_RULE_SETUP +<<<<<<< HEAD #line 1856 "dhcp4_lexer.ll" +======= +#line 1884 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4937,7 +5205,11 @@ YY_RULE_SETUP YY_BREAK case 180: YY_RULE_SETUP +<<<<<<< HEAD #line 1865 "dhcp4_lexer.ll" +======= +#line 1893 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4949,7 +5221,11 @@ YY_RULE_SETUP YY_BREAK case 181: YY_RULE_SETUP +<<<<<<< HEAD #line 1874 "dhcp4_lexer.ll" +======= +#line 1902 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4961,7 +5237,11 @@ YY_RULE_SETUP YY_BREAK case 182: YY_RULE_SETUP +<<<<<<< HEAD #line 1883 "dhcp4_lexer.ll" +======= +#line 1911 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4973,7 +5253,11 @@ YY_RULE_SETUP YY_BREAK case 183: YY_RULE_SETUP +<<<<<<< HEAD #line 1892 "dhcp4_lexer.ll" +======= +#line 1920 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4985,7 +5269,11 @@ YY_RULE_SETUP YY_BREAK case 184: YY_RULE_SETUP +<<<<<<< HEAD #line 1901 "dhcp4_lexer.ll" +======= +#line 1929 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -4997,7 +5285,11 @@ YY_RULE_SETUP YY_BREAK case 185: YY_RULE_SETUP +<<<<<<< HEAD #line 1910 "dhcp4_lexer.ll" +======= +#line 1938 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP_DDNS: @@ -5009,7 +5301,11 @@ YY_RULE_SETUP YY_BREAK case 186: YY_RULE_SETUP +<<<<<<< HEAD #line 1919 "dhcp4_lexer.ll" +======= +#line 1947 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5023,7 +5319,11 @@ YY_RULE_SETUP YY_BREAK case 187: YY_RULE_SETUP +<<<<<<< HEAD #line 1930 "dhcp4_lexer.ll" +======= +#line 1958 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5037,7 +5337,11 @@ YY_RULE_SETUP YY_BREAK case 188: YY_RULE_SETUP +<<<<<<< HEAD #line 1941 "dhcp4_lexer.ll" +======= +#line 1969 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -5050,7 +5354,11 @@ YY_RULE_SETUP YY_BREAK case 189: YY_RULE_SETUP +<<<<<<< HEAD #line 1951 "dhcp4_lexer.ll" +======= +#line 1979 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) { @@ -5063,7 +5371,11 @@ YY_RULE_SETUP YY_BREAK case 190: YY_RULE_SETUP +<<<<<<< HEAD #line 1961 "dhcp4_lexer.ll" +======= +#line 1989 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) { @@ -5076,7 +5388,11 @@ YY_RULE_SETUP YY_BREAK case 191: YY_RULE_SETUP +<<<<<<< HEAD #line 1971 "dhcp4_lexer.ll" +======= +#line 1999 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5128,7 +5444,50 @@ YY_RULE_SETUP YY_BREAK case 195: YY_RULE_SETUP +<<<<<<< HEAD #line 2011 "dhcp4_lexer.ll" +======= +#line 2009 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 196: +YY_RULE_SETUP +#line 2019 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 197: +YY_RULE_SETUP +#line 2029 "dhcp4_lexer.ll" +{ + /* dhcp-ddns value keywords are case insensitive */ + if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { + return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_); + } + std::string tmp(yytext+1); + tmp.resize(tmp.size() - 1); + return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_); +} + YY_BREAK +case 198: +YY_RULE_SETUP +#line 2039 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5141,7 +5500,11 @@ YY_RULE_SETUP YY_BREAK case 196: YY_RULE_SETUP +<<<<<<< HEAD #line 2021 "dhcp4_lexer.ll" +======= +#line 2049 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* dhcp-ddns value keywords are case insensitive */ if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) { @@ -5154,7 +5517,11 @@ YY_RULE_SETUP YY_BREAK case 197: YY_RULE_SETUP +<<<<<<< HEAD #line 2031 "dhcp4_lexer.ll" +======= +#line 2059 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5166,7 +5533,11 @@ YY_RULE_SETUP YY_BREAK case 198: YY_RULE_SETUP +<<<<<<< HEAD #line 2040 "dhcp4_lexer.ll" +======= +#line 2068 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5178,7 +5549,11 @@ YY_RULE_SETUP YY_BREAK case 199: YY_RULE_SETUP +<<<<<<< HEAD #line 2049 "dhcp4_lexer.ll" +======= +#line 2077 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: @@ -5190,7 +5565,11 @@ YY_RULE_SETUP YY_BREAK case 200: YY_RULE_SETUP +<<<<<<< HEAD #line 2058 "dhcp4_lexer.ll" +======= +#line 2086 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5202,7 +5581,11 @@ YY_RULE_SETUP YY_BREAK case 201: YY_RULE_SETUP +<<<<<<< HEAD #line 2067 "dhcp4_lexer.ll" +======= +#line 2095 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5216,7 +5599,11 @@ YY_RULE_SETUP YY_BREAK case 202: YY_RULE_SETUP +<<<<<<< HEAD #line 2078 "dhcp4_lexer.ll" +======= +#line 2106 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5230,7 +5617,11 @@ YY_RULE_SETUP YY_BREAK case 203: YY_RULE_SETUP +<<<<<<< HEAD #line 2089 "dhcp4_lexer.ll" +======= +#line 2117 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5246,7 +5637,11 @@ YY_RULE_SETUP YY_BREAK case 204: YY_RULE_SETUP +<<<<<<< HEAD #line 2102 "dhcp4_lexer.ll" +======= +#line 2130 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5262,7 +5657,11 @@ YY_RULE_SETUP YY_BREAK case 205: YY_RULE_SETUP +<<<<<<< HEAD #line 2115 "dhcp4_lexer.ll" +======= +#line 2143 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5278,7 +5677,11 @@ YY_RULE_SETUP YY_BREAK case 206: YY_RULE_SETUP +<<<<<<< HEAD #line 2128 "dhcp4_lexer.ll" +======= +#line 2156 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5290,7 +5693,11 @@ YY_RULE_SETUP YY_BREAK case 207: YY_RULE_SETUP +<<<<<<< HEAD #line 2137 "dhcp4_lexer.ll" +======= +#line 2165 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5302,7 +5709,11 @@ YY_RULE_SETUP YY_BREAK case 208: YY_RULE_SETUP +<<<<<<< HEAD #line 2146 "dhcp4_lexer.ll" +======= +#line 2174 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5314,7 +5725,11 @@ YY_RULE_SETUP YY_BREAK case 209: YY_RULE_SETUP +<<<<<<< HEAD #line 2155 "dhcp4_lexer.ll" +======= +#line 2183 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5326,7 +5741,11 @@ YY_RULE_SETUP YY_BREAK case 210: YY_RULE_SETUP +<<<<<<< HEAD #line 2164 "dhcp4_lexer.ll" +======= +#line 2192 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5338,7 +5757,11 @@ YY_RULE_SETUP YY_BREAK case 211: YY_RULE_SETUP +<<<<<<< HEAD #line 2173 "dhcp4_lexer.ll" +======= +#line 2201 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5350,7 +5773,11 @@ YY_RULE_SETUP YY_BREAK case 212: YY_RULE_SETUP +<<<<<<< HEAD #line 2182 "dhcp4_lexer.ll" +======= +#line 2210 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5362,7 +5789,11 @@ YY_RULE_SETUP YY_BREAK case 213: YY_RULE_SETUP +<<<<<<< HEAD #line 2191 "dhcp4_lexer.ll" +======= +#line 2219 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::COMPATIBILITY: @@ -5374,7 +5805,11 @@ YY_RULE_SETUP YY_BREAK case 214: YY_RULE_SETUP +<<<<<<< HEAD #line 2200 "dhcp4_lexer.ll" +======= +#line 2228 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5389,7 +5824,11 @@ YY_RULE_SETUP YY_BREAK case 215: YY_RULE_SETUP +<<<<<<< HEAD #line 2212 "dhcp4_lexer.ll" +======= +#line 2240 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: @@ -5401,7 +5840,11 @@ YY_RULE_SETUP YY_BREAK case 216: YY_RULE_SETUP +<<<<<<< HEAD #line 2221 "dhcp4_lexer.ll" +======= +#line 2249 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* 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. @@ -5506,7 +5949,11 @@ YY_RULE_SETUP case 217: /* rule 217 can match eol */ YY_RULE_SETUP +<<<<<<< HEAD #line 2322 "dhcp4_lexer.ll" +======= +#line 2350 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5526,7 +5973,11 @@ YY_RULE_SETUP case 218: /* rule 218 can match eol */ YY_RULE_SETUP +<<<<<<< HEAD #line 2338 "dhcp4_lexer.ll" +======= +#line 2366 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5578,7 +6029,11 @@ YY_RULE_SETUP YY_BREAK case 219: YY_RULE_SETUP +<<<<<<< HEAD #line 2387 "dhcp4_lexer.ll" +======= +#line 2415 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5589,7 +6044,11 @@ YY_RULE_SETUP YY_BREAK case 220: YY_RULE_SETUP +<<<<<<< HEAD #line 2395 "dhcp4_lexer.ll" +======= +#line 2423 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5622,6 +6081,7 @@ YY_RULE_SETUP YY_BREAK case 224: YY_RULE_SETUP +<<<<<<< HEAD #line 2413 "dhcp4_lexer.ll" { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK @@ -5638,6 +6098,39 @@ YY_RULE_SETUP case 227: YY_RULE_SETUP #line 2417 "dhcp4_lexer.ll" +======= +#line 2438 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); } + YY_BREAK +case 225: +YY_RULE_SETUP +#line 2439 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); } + YY_BREAK +case 226: +YY_RULE_SETUP +#line 2440 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 227: +YY_RULE_SETUP +#line 2441 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 228: +YY_RULE_SETUP +#line 2442 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); } + YY_BREAK +case 229: +YY_RULE_SETUP +#line 2443 "dhcp4_lexer.ll" +{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); } + YY_BREAK +case 230: +YY_RULE_SETUP +#line 2445 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* An integer was found. */ std::string tmp(yytext); @@ -5658,7 +6151,11 @@ YY_RULE_SETUP YY_BREAK case 228: YY_RULE_SETUP +<<<<<<< HEAD #line 2435 "dhcp4_lexer.ll" +======= +#line 2463 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* A floating point was found. */ std::string tmp(yytext); @@ -5674,7 +6171,11 @@ YY_RULE_SETUP YY_BREAK case 229: YY_RULE_SETUP +<<<<<<< HEAD #line 2448 "dhcp4_lexer.ll" +======= +#line 2476 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { string tmp(yytext); return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_); @@ -5682,33 +6183,57 @@ YY_RULE_SETUP YY_BREAK case 230: YY_RULE_SETUP +<<<<<<< HEAD #line 2453 "dhcp4_lexer.ll" +======= +#line 2481 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK case 231: YY_RULE_SETUP +<<<<<<< HEAD #line 2457 "dhcp4_lexer.ll" +======= +#line 2485 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK case 232: YY_RULE_SETUP +<<<<<<< HEAD #line 2459 "dhcp4_lexer.ll" +======= +#line 2487 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK case 233: YY_RULE_SETUP +<<<<<<< HEAD #line 2461 "dhcp4_lexer.ll" +======= +#line 2489 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK case 234: YY_RULE_SETUP +<<<<<<< HEAD #line 2463 "dhcp4_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): #line 2465 "dhcp4_lexer.ll" +======= +#line 2491 "dhcp4_lexer.ll" +driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); + YY_BREAK +case YY_STATE_EOF(INITIAL): +#line 2493 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { if (driver.states_.empty()) { return isc::dhcp::Dhcp4Parser::make_END(driver.loc_); @@ -5734,10 +6259,17 @@ case YY_STATE_EOF(INITIAL): YY_BREAK case 235: YY_RULE_SETUP +<<<<<<< HEAD #line 2488 "dhcp4_lexer.ll" ECHO; YY_BREAK #line 5740 "dhcp4_lexer.cc" +======= +#line 2516 "dhcp4_lexer.ll" +ECHO; + YY_BREAK +#line 5788 "dhcp4_lexer.cc" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) case YY_END_OF_BUFFER: { @@ -6842,7 +7374,11 @@ void yyfree (void * ptr ) /* %ok-for-header */ +<<<<<<< HEAD #line 2488 "dhcp4_lexer.ll" +======= +#line 2516 "dhcp4_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) using namespace isc::dhcp; diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index 3a3c9066c7..56f0e5f7bd 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -1310,6 +1310,7 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] switch(driver.ctx_) { case isc::dhcp::Parser4Context::DHCP4: case isc::dhcp::Parser4Context::RESERVATIONS: + case isc::dhcp::Parser4Context::OPTION_DATA: return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASSES(driver.loc_); default: return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_); diff --git a/src/bin/dhcp4/dhcp4_parser.cc b/src/bin/dhcp4/dhcp4_parser.cc index c434aaff95..dafef126d6 100644 --- a/src/bin/dhcp4/dhcp4_parser.cc +++ b/src/bin/dhcp4/dhcp4_parser.cc @@ -3274,8 +3274,8 @@ namespace isc { namespace dhcp { #line 3275 "dhcp4_parser.cc" break; - case 579: // $@81: %empty -#line 2047 "dhcp4_parser.yy" + case 580: // $@81: %empty +#line 2048 "dhcp4_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3283,8 +3283,8 @@ namespace isc { namespace dhcp { #line 3284 "dhcp4_parser.cc" break; - case 580: // option_data_data: "data" $@81 ":" "constant string" -#line 2050 "dhcp4_parser.yy" + case 581: // option_data_data: "data" $@81 ":" "constant string" +#line 2051 "dhcp4_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); @@ -3293,8 +3293,8 @@ namespace isc { namespace dhcp { #line 3294 "dhcp4_parser.cc" break; - case 583: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2060 "dhcp4_parser.yy" + case 584: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2061 "dhcp4_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3303,8 +3303,8 @@ namespace isc { namespace dhcp { #line 3304 "dhcp4_parser.cc" break; - case 584: // option_data_always_send: "always-send" ":" "boolean" -#line 2066 "dhcp4_parser.yy" + case 585: // option_data_always_send: "always-send" ":" "boolean" +#line 2067 "dhcp4_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3313,8 +3313,8 @@ namespace isc { namespace dhcp { #line 3314 "dhcp4_parser.cc" break; - case 585: // option_data_never_send: "never-send" ":" "boolean" -#line 2072 "dhcp4_parser.yy" + case 586: // option_data_never_send: "never-send" ":" "boolean" +#line 2073 "dhcp4_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3323,8 +3323,29 @@ namespace isc { namespace dhcp { #line 3324 "dhcp4_parser.cc" break; - case 586: // $@82: %empty -#line 2081 "dhcp4_parser.yy" + case 587: // $@82: %empty +#line 2079 "dhcp4_parser.yy" + { + ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); + ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("client-classes", c); + ctx.stack_.push_back(c); + ctx.enter(ctx.NO_KEYWORD); +} +#line 3336 "dhcp4_parser.cc" + break; + + case 588: // option_data_client_classes: "client-classes" $@82 ":" list_strings +#line 2085 "dhcp4_parser.yy" + { + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 3345 "dhcp4_parser.cc" + break; + + case 589: // $@83: %empty +#line 2093 "dhcp4_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3332,113 +3353,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3336 "dhcp4_parser.cc" +#line 3357 "dhcp4_parser.cc" break; - case 587: // pools_list: "pools" $@82 ":" "[" pools_list_content "]" -#line 2087 "dhcp4_parser.yy" + case 590: // pools_list: "pools" $@83 ":" "[" pools_list_content "]" +#line 2099 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3345 "dhcp4_parser.cc" +#line 3366 "dhcp4_parser.cc" break; - case 592: // not_empty_pools_list: not_empty_pools_list "," -#line 2100 "dhcp4_parser.yy" + case 595: // not_empty_pools_list: not_empty_pools_list "," +#line 2112 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3353 "dhcp4_parser.cc" +#line 3374 "dhcp4_parser.cc" break; - case 593: // $@83: %empty -#line 2105 "dhcp4_parser.yy" + case 596: // $@84: %empty +#line 2117 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3363 "dhcp4_parser.cc" +#line 3384 "dhcp4_parser.cc" break; - case 594: // pool_list_entry: "{" $@83 pool_params "}" -#line 2109 "dhcp4_parser.yy" + case 597: // pool_list_entry: "{" $@84 pool_params "}" +#line 2121 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3373 "dhcp4_parser.cc" +#line 3394 "dhcp4_parser.cc" break; - case 595: // $@84: %empty -#line 2115 "dhcp4_parser.yy" + case 598: // $@85: %empty +#line 2127 "dhcp4_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3383 "dhcp4_parser.cc" +#line 3404 "dhcp4_parser.cc" break; - case 596: // sub_pool4: "{" $@84 pool_params "}" -#line 2119 "dhcp4_parser.yy" + case 599: // sub_pool4: "{" $@85 pool_params "}" +#line 2131 "dhcp4_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3393 "dhcp4_parser.cc" +#line 3414 "dhcp4_parser.cc" break; - case 599: // pool_params: pool_params "," -#line 2127 "dhcp4_parser.yy" + case 602: // pool_params: pool_params "," +#line 2139 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3401 "dhcp4_parser.cc" +#line 3422 "dhcp4_parser.cc" break; - case 608: // $@85: %empty -#line 2142 "dhcp4_parser.yy" + case 611: // $@86: %empty +#line 2154 "dhcp4_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3410 "dhcp4_parser.cc" +#line 3431 "dhcp4_parser.cc" break; - case 609: // pool_entry: "pool" $@85 ":" "constant string" -#line 2145 "dhcp4_parser.yy" + case 612: // pool_entry: "pool" $@86 ":" "constant string" +#line 2157 "dhcp4_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3420 "dhcp4_parser.cc" +#line 3441 "dhcp4_parser.cc" break; - case 610: // pool_id: "pool-id" ":" "integer" -#line 2151 "dhcp4_parser.yy" + case 613: // pool_id: "pool-id" ":" "integer" +#line 2163 "dhcp4_parser.yy" { ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool-id", id); } -#line 3430 "dhcp4_parser.cc" +#line 3451 "dhcp4_parser.cc" break; - case 611: // $@86: %empty -#line 2157 "dhcp4_parser.yy" + case 614: // $@87: %empty +#line 2169 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3438 "dhcp4_parser.cc" +#line 3459 "dhcp4_parser.cc" break; - case 612: // user_context: "user-context" $@86 ":" map_value -#line 2159 "dhcp4_parser.yy" + case 615: // user_context: "user-context" $@87 ":" map_value +#line 2171 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3461,19 +3482,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3465 "dhcp4_parser.cc" +#line 3486 "dhcp4_parser.cc" break; - case 613: // $@87: %empty -#line 2182 "dhcp4_parser.yy" + case 616: // $@88: %empty +#line 2194 "dhcp4_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3473 "dhcp4_parser.cc" +#line 3494 "dhcp4_parser.cc" break; - case 614: // comment: "comment" $@87 ":" "constant string" -#line 2184 "dhcp4_parser.yy" + case 617: // comment: "comment" $@88 ":" "constant string" +#line 2196 "dhcp4_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3498,11 +3519,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3502 "dhcp4_parser.cc" +#line 3523 "dhcp4_parser.cc" break; - case 615: // $@88: %empty -#line 2212 "dhcp4_parser.yy" + case 618: // $@89: %empty +#line 2224 "dhcp4_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3510,264 +3531,264 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3514 "dhcp4_parser.cc" +#line 3535 "dhcp4_parser.cc" break; - case 616: // reservations: "reservations" $@88 ":" "[" reservations_list "]" -#line 2218 "dhcp4_parser.yy" + case 619: // reservations: "reservations" $@89 ":" "[" reservations_list "]" +#line 2230 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3523 "dhcp4_parser.cc" +#line 3544 "dhcp4_parser.cc" break; - case 621: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2229 "dhcp4_parser.yy" + case 624: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2241 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3531 "dhcp4_parser.cc" +#line 3552 "dhcp4_parser.cc" break; - case 622: // $@89: %empty -#line 2234 "dhcp4_parser.yy" + case 625: // $@90: %empty +#line 2246 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3541 "dhcp4_parser.cc" +#line 3562 "dhcp4_parser.cc" break; - case 623: // reservation: "{" $@89 reservation_params "}" -#line 2238 "dhcp4_parser.yy" + case 626: // reservation: "{" $@90 reservation_params "}" +#line 2250 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3550 "dhcp4_parser.cc" +#line 3571 "dhcp4_parser.cc" break; - case 624: // $@90: %empty -#line 2243 "dhcp4_parser.yy" + case 627: // $@91: %empty +#line 2255 "dhcp4_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3560 "dhcp4_parser.cc" +#line 3581 "dhcp4_parser.cc" break; - case 625: // sub_reservation: "{" $@90 reservation_params "}" -#line 2247 "dhcp4_parser.yy" + case 628: // sub_reservation: "{" $@91 reservation_params "}" +#line 2259 "dhcp4_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3569 "dhcp4_parser.cc" +#line 3590 "dhcp4_parser.cc" break; - case 630: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2258 "dhcp4_parser.yy" + case 633: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2270 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3577 "dhcp4_parser.cc" +#line 3598 "dhcp4_parser.cc" break; - case 646: // $@91: %empty -#line 2281 "dhcp4_parser.yy" + case 649: // $@92: %empty +#line 2293 "dhcp4_parser.yy" { ctx.unique("next-server", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3586 "dhcp4_parser.cc" +#line 3607 "dhcp4_parser.cc" break; - case 647: // next_server: "next-server" $@91 ":" "constant string" -#line 2284 "dhcp4_parser.yy" + case 650: // next_server: "next-server" $@92 ":" "constant string" +#line 2296 "dhcp4_parser.yy" { ElementPtr next_server(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("next-server", next_server); ctx.leave(); } -#line 3596 "dhcp4_parser.cc" +#line 3617 "dhcp4_parser.cc" break; - case 648: // $@92: %empty -#line 2290 "dhcp4_parser.yy" + case 651: // $@93: %empty +#line 2302 "dhcp4_parser.yy" { ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3605 "dhcp4_parser.cc" +#line 3626 "dhcp4_parser.cc" break; - case 649: // server_hostname: "server-hostname" $@92 ":" "constant string" -#line 2293 "dhcp4_parser.yy" + case 652: // server_hostname: "server-hostname" $@93 ":" "constant string" +#line 2305 "dhcp4_parser.yy" { ElementPtr srv(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-hostname", srv); ctx.leave(); } -#line 3615 "dhcp4_parser.cc" +#line 3636 "dhcp4_parser.cc" break; - case 650: // $@93: %empty -#line 2299 "dhcp4_parser.yy" + case 653: // $@94: %empty +#line 2311 "dhcp4_parser.yy" { ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3624 "dhcp4_parser.cc" +#line 3645 "dhcp4_parser.cc" break; - case 651: // boot_file_name: "boot-file-name" $@93 ":" "constant string" -#line 2302 "dhcp4_parser.yy" + case 654: // boot_file_name: "boot-file-name" $@94 ":" "constant string" +#line 2314 "dhcp4_parser.yy" { ElementPtr bootfile(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("boot-file-name", bootfile); ctx.leave(); } -#line 3634 "dhcp4_parser.cc" +#line 3655 "dhcp4_parser.cc" break; - case 652: // $@94: %empty -#line 2308 "dhcp4_parser.yy" + case 655: // $@95: %empty +#line 2320 "dhcp4_parser.yy" { ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3643 "dhcp4_parser.cc" +#line 3664 "dhcp4_parser.cc" break; - case 653: // ip_address: "ip-address" $@94 ":" "constant string" -#line 2311 "dhcp4_parser.yy" + case 656: // ip_address: "ip-address" $@95 ":" "constant string" +#line 2323 "dhcp4_parser.yy" { ElementPtr addr(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-address", addr); ctx.leave(); } -#line 3653 "dhcp4_parser.cc" +#line 3674 "dhcp4_parser.cc" break; - case 654: // $@95: %empty -#line 2317 "dhcp4_parser.yy" + case 657: // $@96: %empty +#line 2329 "dhcp4_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3662 "dhcp4_parser.cc" +#line 3683 "dhcp4_parser.cc" break; - case 655: // duid: "duid" $@95 ":" "constant string" -#line 2320 "dhcp4_parser.yy" + case 658: // duid: "duid" $@96 ":" "constant string" +#line 2332 "dhcp4_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3672 "dhcp4_parser.cc" +#line 3693 "dhcp4_parser.cc" break; - case 656: // $@96: %empty -#line 2326 "dhcp4_parser.yy" + case 659: // $@97: %empty +#line 2338 "dhcp4_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3681 "dhcp4_parser.cc" +#line 3702 "dhcp4_parser.cc" break; - case 657: // hw_address: "hw-address" $@96 ":" "constant string" -#line 2329 "dhcp4_parser.yy" + case 660: // hw_address: "hw-address" $@97 ":" "constant string" +#line 2341 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3691 "dhcp4_parser.cc" +#line 3712 "dhcp4_parser.cc" break; - case 658: // $@97: %empty -#line 2335 "dhcp4_parser.yy" + case 661: // $@98: %empty +#line 2347 "dhcp4_parser.yy" { ctx.unique("client-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3700 "dhcp4_parser.cc" +#line 3721 "dhcp4_parser.cc" break; - case 659: // client_id_value: "client-id" $@97 ":" "constant string" -#line 2338 "dhcp4_parser.yy" + case 662: // client_id_value: "client-id" $@98 ":" "constant string" +#line 2350 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-id", hw); ctx.leave(); } -#line 3710 "dhcp4_parser.cc" +#line 3731 "dhcp4_parser.cc" break; - case 660: // $@98: %empty -#line 2344 "dhcp4_parser.yy" + case 663: // $@99: %empty +#line 2356 "dhcp4_parser.yy" { ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3719 "dhcp4_parser.cc" +#line 3740 "dhcp4_parser.cc" break; - case 661: // circuit_id_value: "circuit-id" $@98 ":" "constant string" -#line 2347 "dhcp4_parser.yy" + case 664: // circuit_id_value: "circuit-id" $@99 ":" "constant string" +#line 2359 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("circuit-id", hw); ctx.leave(); } -#line 3729 "dhcp4_parser.cc" +#line 3750 "dhcp4_parser.cc" break; - case 662: // $@99: %empty -#line 2353 "dhcp4_parser.yy" + case 665: // $@100: %empty +#line 2365 "dhcp4_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3738 "dhcp4_parser.cc" +#line 3759 "dhcp4_parser.cc" break; - case 663: // flex_id_value: "flex-id" $@99 ":" "constant string" -#line 2356 "dhcp4_parser.yy" + case 666: // flex_id_value: "flex-id" $@100 ":" "constant string" +#line 2368 "dhcp4_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3748 "dhcp4_parser.cc" +#line 3769 "dhcp4_parser.cc" break; - case 664: // $@100: %empty -#line 2362 "dhcp4_parser.yy" + case 667: // $@101: %empty +#line 2374 "dhcp4_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3757 "dhcp4_parser.cc" +#line 3778 "dhcp4_parser.cc" break; - case 665: // hostname: "hostname" $@100 ":" "constant string" -#line 2365 "dhcp4_parser.yy" + case 668: // hostname: "hostname" $@101 ":" "constant string" +#line 2377 "dhcp4_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3767 "dhcp4_parser.cc" +#line 3788 "dhcp4_parser.cc" break; - case 666: // $@101: %empty -#line 2371 "dhcp4_parser.yy" + case 669: // $@102: %empty +#line 2383 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3775,20 +3796,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3779 "dhcp4_parser.cc" +#line 3800 "dhcp4_parser.cc" break; - case 667: // reservation_client_classes: "client-classes" $@101 ":" list_strings -#line 2377 "dhcp4_parser.yy" + case 670: // reservation_client_classes: "client-classes" $@102 ":" list_strings +#line 2389 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3788 "dhcp4_parser.cc" +#line 3809 "dhcp4_parser.cc" break; - case 668: // $@102: %empty -#line 2385 "dhcp4_parser.yy" + case 671: // $@103: %empty +#line 2397 "dhcp4_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3796,20 +3817,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3800 "dhcp4_parser.cc" +#line 3821 "dhcp4_parser.cc" break; - case 669: // relay: "relay" $@102 ":" "{" relay_map "}" -#line 2391 "dhcp4_parser.yy" + case 672: // relay: "relay" $@103 ":" "{" relay_map "}" +#line 2403 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3809 "dhcp4_parser.cc" +#line 3830 "dhcp4_parser.cc" break; - case 671: // $@103: %empty -#line 2399 "dhcp4_parser.yy" + case 674: // $@104: %empty +#line 2411 "dhcp4_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3817,20 +3838,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3821 "dhcp4_parser.cc" +#line 3842 "dhcp4_parser.cc" break; - case 672: // ip_addresses: "ip-addresses" $@103 ":" list_strings -#line 2405 "dhcp4_parser.yy" + case 675: // ip_addresses: "ip-addresses" $@104 ":" list_strings +#line 2417 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3830 "dhcp4_parser.cc" +#line 3851 "dhcp4_parser.cc" break; - case 673: // $@104: %empty -#line 2413 "dhcp4_parser.yy" + case 676: // $@105: %empty +#line 2425 "dhcp4_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3838,114 +3859,114 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3842 "dhcp4_parser.cc" +#line 3863 "dhcp4_parser.cc" break; - case 674: // client_classes: "client-classes" $@104 ":" "[" client_classes_list "]" -#line 2419 "dhcp4_parser.yy" + case 677: // client_classes: "client-classes" $@105 ":" "[" client_classes_list "]" +#line 2431 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3851 "dhcp4_parser.cc" +#line 3872 "dhcp4_parser.cc" break; - case 677: // client_classes_list: client_classes_list "," -#line 2426 "dhcp4_parser.yy" + case 680: // client_classes_list: client_classes_list "," +#line 2438 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3859 "dhcp4_parser.cc" +#line 3880 "dhcp4_parser.cc" break; - case 678: // $@105: %empty -#line 2431 "dhcp4_parser.yy" + case 681: // $@106: %empty +#line 2443 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3869 "dhcp4_parser.cc" +#line 3890 "dhcp4_parser.cc" break; - case 679: // client_class_entry: "{" $@105 client_class_params "}" -#line 2435 "dhcp4_parser.yy" + case 682: // client_class_entry: "{" $@106 client_class_params "}" +#line 2447 "dhcp4_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3879 "dhcp4_parser.cc" +#line 3900 "dhcp4_parser.cc" break; - case 684: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2447 "dhcp4_parser.yy" + case 687: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2459 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3887 "dhcp4_parser.cc" +#line 3908 "dhcp4_parser.cc" break; - case 702: // $@106: %empty -#line 2472 "dhcp4_parser.yy" + case 705: // $@107: %empty +#line 2484 "dhcp4_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3896 "dhcp4_parser.cc" +#line 3917 "dhcp4_parser.cc" break; - case 703: // client_class_test: "test" $@106 ":" "constant string" -#line 2475 "dhcp4_parser.yy" + case 706: // client_class_test: "test" $@107 ":" "constant string" +#line 2487 "dhcp4_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3906 "dhcp4_parser.cc" +#line 3927 "dhcp4_parser.cc" break; - case 704: // $@107: %empty -#line 2481 "dhcp4_parser.yy" + case 707: // $@108: %empty +#line 2493 "dhcp4_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3915 "dhcp4_parser.cc" +#line 3936 "dhcp4_parser.cc" break; - case 705: // client_class_template_test: "template-test" $@107 ":" "constant string" -#line 2484 "dhcp4_parser.yy" + case 708: // client_class_template_test: "template-test" $@108 ":" "constant string" +#line 2496 "dhcp4_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 3925 "dhcp4_parser.cc" +#line 3946 "dhcp4_parser.cc" break; - case 706: // only_if_required: "only-if-required" ":" "boolean" -#line 2490 "dhcp4_parser.yy" + case 709: // only_if_required: "only-if-required" ":" "boolean" +#line 2502 "dhcp4_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3935 "dhcp4_parser.cc" +#line 3956 "dhcp4_parser.cc" break; - case 707: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2498 "dhcp4_parser.yy" + case 710: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2510 "dhcp4_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3945 "dhcp4_parser.cc" +#line 3966 "dhcp4_parser.cc" break; - case 708: // $@108: %empty -#line 2506 "dhcp4_parser.yy" + case 711: // $@109: %empty +#line 2518 "dhcp4_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); @@ -3954,20 +3975,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3958 "dhcp4_parser.cc" +#line 3979 "dhcp4_parser.cc" break; - case 709: // control_socket: "control-socket" $@108 ":" "{" control_socket_params "}" -#line 2513 "dhcp4_parser.yy" + case 712: // control_socket: "control-socket" $@109 ":" "{" control_socket_params "}" +#line 2525 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3967 "dhcp4_parser.cc" +#line 3988 "dhcp4_parser.cc" break; - case 710: // $@109: %empty -#line 2518 "dhcp4_parser.yy" + case 713: // $@110: %empty +#line 2530 "dhcp4_parser.yy" { ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); @@ -3976,150 +3997,150 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3980 "dhcp4_parser.cc" +#line 4001 "dhcp4_parser.cc" break; - case 711: // control_sockets: "control-sockets" $@109 ":" "[" control_socket_list "]" -#line 2525 "dhcp4_parser.yy" + case 714: // control_sockets: "control-sockets" $@110 ":" "[" control_socket_list "]" +#line 2537 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3989 "dhcp4_parser.cc" +#line 4010 "dhcp4_parser.cc" break; - case 716: // not_empty_control_socket_list: not_empty_control_socket_list "," -#line 2536 "dhcp4_parser.yy" + case 719: // not_empty_control_socket_list: not_empty_control_socket_list "," +#line 2548 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3997 "dhcp4_parser.cc" +#line 4018 "dhcp4_parser.cc" break; - case 717: // $@110: %empty -#line 2541 "dhcp4_parser.yy" + case 720: // $@111: %empty +#line 2553 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4007 "dhcp4_parser.cc" +#line 4028 "dhcp4_parser.cc" break; - case 718: // control_socket_entry: "{" $@110 control_socket_params "}" -#line 2545 "dhcp4_parser.yy" + case 721: // control_socket_entry: "{" $@111 control_socket_params "}" +#line 2557 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4015 "dhcp4_parser.cc" +#line 4036 "dhcp4_parser.cc" break; - case 721: // control_socket_params: control_socket_params "," -#line 2551 "dhcp4_parser.yy" + case 724: // control_socket_params: control_socket_params "," +#line 2563 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4023 "dhcp4_parser.cc" +#line 4044 "dhcp4_parser.cc" break; - case 734: // $@111: %empty -#line 2570 "dhcp4_parser.yy" + case 737: // $@112: %empty +#line 2582 "dhcp4_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.CONTROL_SOCKET_TYPE); } -#line 4032 "dhcp4_parser.cc" +#line 4053 "dhcp4_parser.cc" break; - case 735: // control_socket_type: "socket-type" $@111 ":" control_socket_type_value -#line 2573 "dhcp4_parser.yy" + case 738: // control_socket_type: "socket-type" $@112 ":" control_socket_type_value +#line 2585 "dhcp4_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4041 "dhcp4_parser.cc" +#line 4062 "dhcp4_parser.cc" break; - case 736: // control_socket_type_value: "unix" -#line 2579 "dhcp4_parser.yy" + case 739: // control_socket_type_value: "unix" +#line 2591 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } -#line 4047 "dhcp4_parser.cc" +#line 4068 "dhcp4_parser.cc" break; - case 737: // control_socket_type_value: "http" -#line 2580 "dhcp4_parser.yy" + case 740: // control_socket_type_value: "http" +#line 2592 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } -#line 4053 "dhcp4_parser.cc" +#line 4074 "dhcp4_parser.cc" break; - case 738: // control_socket_type_value: "https" -#line 2581 "dhcp4_parser.yy" + case 741: // control_socket_type_value: "https" +#line 2593 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); } -#line 4059 "dhcp4_parser.cc" +#line 4080 "dhcp4_parser.cc" break; - case 739: // $@112: %empty -#line 2584 "dhcp4_parser.yy" + case 742: // $@113: %empty +#line 2596 "dhcp4_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4069 "dhcp4_parser.cc" +#line 4090 "dhcp4_parser.cc" break; - case 740: // control_socket_name: "socket-name" $@112 ":" "constant string" -#line 2588 "dhcp4_parser.yy" + case 743: // control_socket_name: "socket-name" $@113 ":" "constant string" +#line 2600 "dhcp4_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 4079 "dhcp4_parser.cc" +#line 4100 "dhcp4_parser.cc" break; - case 741: // $@113: %empty -#line 2594 "dhcp4_parser.yy" + case 744: // $@114: %empty +#line 2606 "dhcp4_parser.yy" { ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4089 "dhcp4_parser.cc" +#line 4110 "dhcp4_parser.cc" break; - case 742: // control_socket_address: "socket-address" $@113 ":" "constant string" -#line 2598 "dhcp4_parser.yy" + case 745: // control_socket_address: "socket-address" $@114 ":" "constant string" +#line 2610 "dhcp4_parser.yy" { ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-address", address); ctx.leave(); } -#line 4099 "dhcp4_parser.cc" +#line 4120 "dhcp4_parser.cc" break; - case 743: // control_socket_port: "socket-port" ":" "integer" -#line 2604 "dhcp4_parser.yy" + case 746: // control_socket_port: "socket-port" ":" "integer" +#line 2616 "dhcp4_parser.yy" { ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location)); ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-port", port); } -#line 4109 "dhcp4_parser.cc" +#line 4130 "dhcp4_parser.cc" break; - case 744: // cert_required: "cert-required" ":" "boolean" -#line 2610 "dhcp4_parser.yy" + case 747: // cert_required: "cert-required" ":" "boolean" +#line 2622 "dhcp4_parser.yy" { ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location)); ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-required", req); } -#line 4119 "dhcp4_parser.cc" +#line 4140 "dhcp4_parser.cc" break; - case 745: // $@114: %empty -#line 2618 "dhcp4_parser.yy" + case 748: // $@115: %empty +#line 2630 "dhcp4_parser.yy" { ctx.unique("authentication", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4127,92 +4148,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.AUTHENTICATION); } -#line 4131 "dhcp4_parser.cc" +#line 4152 "dhcp4_parser.cc" break; - case 746: // authentication: "authentication" $@114 ":" "{" auth_params "}" -#line 2624 "dhcp4_parser.yy" + case 749: // authentication: "authentication" $@115 ":" "{" auth_params "}" +#line 2636 "dhcp4_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4142 "dhcp4_parser.cc" +#line 4163 "dhcp4_parser.cc" break; - case 749: // auth_params: auth_params "," -#line 2633 "dhcp4_parser.yy" + case 752: // auth_params: auth_params "," +#line 2645 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4150 "dhcp4_parser.cc" +#line 4171 "dhcp4_parser.cc" break; - case 757: // $@115: %empty -#line 2647 "dhcp4_parser.yy" + case 760: // $@116: %empty +#line 2659 "dhcp4_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.AUTH_TYPE); } -#line 4159 "dhcp4_parser.cc" +#line 4180 "dhcp4_parser.cc" break; - case 758: // auth_type: "type" $@115 ":" auth_type_value -#line 2650 "dhcp4_parser.yy" + case 761: // auth_type: "type" $@116 ":" auth_type_value +#line 2662 "dhcp4_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4168 "dhcp4_parser.cc" +#line 4189 "dhcp4_parser.cc" break; - case 759: // auth_type_value: "basic" -#line 2655 "dhcp4_parser.yy" + case 762: // auth_type_value: "basic" +#line 2667 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); } -#line 4174 "dhcp4_parser.cc" +#line 4195 "dhcp4_parser.cc" break; - case 760: // $@116: %empty -#line 2658 "dhcp4_parser.yy" + case 763: // $@117: %empty +#line 2670 "dhcp4_parser.yy" { ctx.unique("realm", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4183 "dhcp4_parser.cc" +#line 4204 "dhcp4_parser.cc" break; - case 761: // realm: "realm" $@116 ":" "constant string" -#line 2661 "dhcp4_parser.yy" + case 764: // realm: "realm" $@117 ":" "constant string" +#line 2673 "dhcp4_parser.yy" { ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("realm", realm); ctx.leave(); } -#line 4193 "dhcp4_parser.cc" +#line 4214 "dhcp4_parser.cc" break; - case 762: // $@117: %empty -#line 2667 "dhcp4_parser.yy" + case 765: // $@118: %empty +#line 2679 "dhcp4_parser.yy" { ctx.unique("directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4202 "dhcp4_parser.cc" +#line 4223 "dhcp4_parser.cc" break; - case 763: // directory: "directory" $@117 ":" "constant string" -#line 2670 "dhcp4_parser.yy" + case 766: // directory: "directory" $@118 ":" "constant string" +#line 2682 "dhcp4_parser.yy" { ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("directory", directory); ctx.leave(); } -#line 4212 "dhcp4_parser.cc" +#line 4233 "dhcp4_parser.cc" break; - case 764: // $@118: %empty -#line 2676 "dhcp4_parser.yy" + case 767: // $@119: %empty +#line 2688 "dhcp4_parser.yy" { ctx.unique("clients", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4220,92 +4241,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENTS); } -#line 4224 "dhcp4_parser.cc" +#line 4245 "dhcp4_parser.cc" break; - case 765: // clients: "clients" $@118 ":" "[" clients_list "]" -#line 2682 "dhcp4_parser.yy" + case 768: // clients: "clients" $@119 ":" "[" clients_list "]" +#line 2694 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4233 "dhcp4_parser.cc" +#line 4254 "dhcp4_parser.cc" break; - case 770: // not_empty_clients_list: not_empty_clients_list "," -#line 2693 "dhcp4_parser.yy" + case 773: // not_empty_clients_list: not_empty_clients_list "," +#line 2705 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4241 "dhcp4_parser.cc" +#line 4262 "dhcp4_parser.cc" break; - case 771: // $@119: %empty -#line 2698 "dhcp4_parser.yy" + case 774: // $@120: %empty +#line 2710 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4251 "dhcp4_parser.cc" +#line 4272 "dhcp4_parser.cc" break; - case 772: // basic_auth: "{" $@119 clients_params "}" -#line 2702 "dhcp4_parser.yy" + case 775: // basic_auth: "{" $@120 clients_params "}" +#line 2714 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4259 "dhcp4_parser.cc" +#line 4280 "dhcp4_parser.cc" break; - case 775: // clients_params: clients_params "," -#line 2708 "dhcp4_parser.yy" + case 778: // clients_params: clients_params "," +#line 2720 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4267 "dhcp4_parser.cc" +#line 4288 "dhcp4_parser.cc" break; - case 783: // $@120: %empty -#line 2722 "dhcp4_parser.yy" + case 786: // $@121: %empty +#line 2734 "dhcp4_parser.yy" { ctx.unique("user-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4276 "dhcp4_parser.cc" +#line 4297 "dhcp4_parser.cc" break; - case 784: // user_file: "user-file" $@120 ":" "constant string" -#line 2725 "dhcp4_parser.yy" + case 787: // user_file: "user-file" $@121 ":" "constant string" +#line 2737 "dhcp4_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user-file", user); ctx.leave(); } -#line 4286 "dhcp4_parser.cc" +#line 4307 "dhcp4_parser.cc" break; - case 785: // $@121: %empty -#line 2731 "dhcp4_parser.yy" + case 788: // $@122: %empty +#line 2743 "dhcp4_parser.yy" { ctx.unique("password-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4295 "dhcp4_parser.cc" +#line 4316 "dhcp4_parser.cc" break; - case 786: // password_file: "password-file" $@121 ":" "constant string" -#line 2734 "dhcp4_parser.yy" + case 789: // password_file: "password-file" $@122 ":" "constant string" +#line 2746 "dhcp4_parser.yy" { ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password-file", password); ctx.leave(); } -#line 4305 "dhcp4_parser.cc" +#line 4326 "dhcp4_parser.cc" break; - case 787: // $@122: %empty -#line 2742 "dhcp4_parser.yy" + case 790: // $@123: %empty +#line 2754 "dhcp4_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4313,87 +4334,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 4317 "dhcp4_parser.cc" +#line 4338 "dhcp4_parser.cc" break; - case 788: // dhcp_queue_control: "dhcp-queue-control" $@122 ":" "{" queue_control_params "}" -#line 2748 "dhcp4_parser.yy" + case 791: // dhcp_queue_control: "dhcp-queue-control" $@123 ":" "{" queue_control_params "}" +#line 2760 "dhcp4_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4328 "dhcp4_parser.cc" +#line 4349 "dhcp4_parser.cc" break; - case 791: // queue_control_params: queue_control_params "," -#line 2757 "dhcp4_parser.yy" + case 794: // queue_control_params: queue_control_params "," +#line 2769 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4336 "dhcp4_parser.cc" +#line 4357 "dhcp4_parser.cc" break; - case 798: // enable_queue: "enable-queue" ":" "boolean" -#line 2770 "dhcp4_parser.yy" + case 801: // enable_queue: "enable-queue" ":" "boolean" +#line 2782 "dhcp4_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 4346 "dhcp4_parser.cc" +#line 4367 "dhcp4_parser.cc" break; - case 799: // $@123: %empty -#line 2776 "dhcp4_parser.yy" + case 802: // $@124: %empty +#line 2788 "dhcp4_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4355 "dhcp4_parser.cc" +#line 4376 "dhcp4_parser.cc" break; - case 800: // queue_type: "queue-type" $@123 ":" "constant string" -#line 2779 "dhcp4_parser.yy" + case 803: // queue_type: "queue-type" $@124 ":" "constant string" +#line 2791 "dhcp4_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 4365 "dhcp4_parser.cc" +#line 4386 "dhcp4_parser.cc" break; - case 801: // capacity: "capacity" ":" "integer" -#line 2785 "dhcp4_parser.yy" + case 804: // capacity: "capacity" ":" "integer" +#line 2797 "dhcp4_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 4375 "dhcp4_parser.cc" +#line 4396 "dhcp4_parser.cc" break; - case 802: // $@124: %empty -#line 2791 "dhcp4_parser.yy" + case 805: // $@125: %empty +#line 2803 "dhcp4_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4384 "dhcp4_parser.cc" +#line 4405 "dhcp4_parser.cc" break; - case 803: // arbitrary_map_entry: "constant string" $@124 ":" value -#line 2794 "dhcp4_parser.yy" + case 806: // arbitrary_map_entry: "constant string" $@125 ":" value +#line 2806 "dhcp4_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4393 "dhcp4_parser.cc" +#line 4414 "dhcp4_parser.cc" break; - case 804: // $@125: %empty -#line 2801 "dhcp4_parser.yy" + case 807: // $@126: %empty +#line 2813 "dhcp4_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4401,177 +4422,177 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4405 "dhcp4_parser.cc" +#line 4426 "dhcp4_parser.cc" break; - case 805: // dhcp_ddns: "dhcp-ddns" $@125 ":" "{" dhcp_ddns_params "}" -#line 2807 "dhcp4_parser.yy" + case 808: // dhcp_ddns: "dhcp-ddns" $@126 ":" "{" dhcp_ddns_params "}" +#line 2819 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4416 "dhcp4_parser.cc" +#line 4437 "dhcp4_parser.cc" break; - case 806: // $@126: %empty -#line 2814 "dhcp4_parser.yy" + case 809: // $@127: %empty +#line 2826 "dhcp4_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4426 "dhcp4_parser.cc" +#line 4447 "dhcp4_parser.cc" break; - case 807: // sub_dhcp_ddns: "{" $@126 dhcp_ddns_params "}" -#line 2818 "dhcp4_parser.yy" + case 810: // sub_dhcp_ddns: "{" $@127 dhcp_ddns_params "}" +#line 2830 "dhcp4_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 4436 "dhcp4_parser.cc" +#line 4457 "dhcp4_parser.cc" break; - case 810: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2826 "dhcp4_parser.yy" + case 813: // dhcp_ddns_params: dhcp_ddns_params "," +#line 2838 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4444 "dhcp4_parser.cc" +#line 4465 "dhcp4_parser.cc" break; - case 822: // enable_updates: "enable-updates" ":" "boolean" -#line 2844 "dhcp4_parser.yy" + case 825: // enable_updates: "enable-updates" ":" "boolean" +#line 2856 "dhcp4_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 4454 "dhcp4_parser.cc" +#line 4475 "dhcp4_parser.cc" break; - case 823: // $@127: %empty -#line 2850 "dhcp4_parser.yy" + case 826: // $@128: %empty +#line 2862 "dhcp4_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4463 "dhcp4_parser.cc" +#line 4484 "dhcp4_parser.cc" break; - case 824: // server_ip: "server-ip" $@127 ":" "constant string" -#line 2853 "dhcp4_parser.yy" + case 827: // server_ip: "server-ip" $@128 ":" "constant string" +#line 2865 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 4473 "dhcp4_parser.cc" +#line 4494 "dhcp4_parser.cc" break; - case 825: // server_port: "server-port" ":" "integer" -#line 2859 "dhcp4_parser.yy" + case 828: // server_port: "server-port" ":" "integer" +#line 2871 "dhcp4_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 4483 "dhcp4_parser.cc" +#line 4504 "dhcp4_parser.cc" break; - case 826: // $@128: %empty -#line 2865 "dhcp4_parser.yy" + case 829: // $@129: %empty +#line 2877 "dhcp4_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4492 "dhcp4_parser.cc" +#line 4513 "dhcp4_parser.cc" break; - case 827: // sender_ip: "sender-ip" $@128 ":" "constant string" -#line 2868 "dhcp4_parser.yy" + case 830: // sender_ip: "sender-ip" $@129 ":" "constant string" +#line 2880 "dhcp4_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 4502 "dhcp4_parser.cc" +#line 4523 "dhcp4_parser.cc" break; - case 828: // sender_port: "sender-port" ":" "integer" -#line 2874 "dhcp4_parser.yy" + case 831: // sender_port: "sender-port" ":" "integer" +#line 2886 "dhcp4_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 4512 "dhcp4_parser.cc" +#line 4533 "dhcp4_parser.cc" break; - case 829: // max_queue_size: "max-queue-size" ":" "integer" -#line 2880 "dhcp4_parser.yy" + case 832: // max_queue_size: "max-queue-size" ":" "integer" +#line 2892 "dhcp4_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4522 "dhcp4_parser.cc" +#line 4543 "dhcp4_parser.cc" break; - case 830: // $@129: %empty -#line 2886 "dhcp4_parser.yy" + case 833: // $@130: %empty +#line 2898 "dhcp4_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4531 "dhcp4_parser.cc" +#line 4552 "dhcp4_parser.cc" break; - case 831: // ncr_protocol: "ncr-protocol" $@129 ":" ncr_protocol_value -#line 2889 "dhcp4_parser.yy" + case 834: // ncr_protocol: "ncr-protocol" $@130 ":" ncr_protocol_value +#line 2901 "dhcp4_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4540 "dhcp4_parser.cc" +#line 4561 "dhcp4_parser.cc" break; - case 832: // ncr_protocol_value: "udp" -#line 2895 "dhcp4_parser.yy" + case 835: // ncr_protocol_value: "udp" +#line 2907 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4546 "dhcp4_parser.cc" +#line 4567 "dhcp4_parser.cc" break; - case 833: // ncr_protocol_value: "tcp" -#line 2896 "dhcp4_parser.yy" + case 836: // ncr_protocol_value: "tcp" +#line 2908 "dhcp4_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4552 "dhcp4_parser.cc" +#line 4573 "dhcp4_parser.cc" break; - case 834: // $@130: %empty -#line 2899 "dhcp4_parser.yy" + case 837: // $@131: %empty +#line 2911 "dhcp4_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4561 "dhcp4_parser.cc" +#line 4582 "dhcp4_parser.cc" break; - case 835: // ncr_format: "ncr-format" $@130 ":" "JSON" -#line 2902 "dhcp4_parser.yy" + case 838: // ncr_format: "ncr-format" $@131 ":" "JSON" +#line 2914 "dhcp4_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4571 "dhcp4_parser.cc" +#line 4592 "dhcp4_parser.cc" break; - case 836: // $@131: %empty -#line 2910 "dhcp4_parser.yy" + case 839: // $@132: %empty +#line 2922 "dhcp4_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4579,48 +4600,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4583 "dhcp4_parser.cc" +#line 4604 "dhcp4_parser.cc" break; - case 837: // config_control: "config-control" $@131 ":" "{" config_control_params "}" -#line 2916 "dhcp4_parser.yy" + case 840: // config_control: "config-control" $@132 ":" "{" config_control_params "}" +#line 2928 "dhcp4_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4593 "dhcp4_parser.cc" +#line 4614 "dhcp4_parser.cc" break; - case 838: // $@132: %empty -#line 2922 "dhcp4_parser.yy" + case 841: // $@133: %empty +#line 2934 "dhcp4_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4603 "dhcp4_parser.cc" +#line 4624 "dhcp4_parser.cc" break; - case 839: // sub_config_control: "{" $@132 config_control_params "}" -#line 2926 "dhcp4_parser.yy" + case 842: // sub_config_control: "{" $@133 config_control_params "}" +#line 2938 "dhcp4_parser.yy" { // No config_control params are required // parsing completed } -#line 4612 "dhcp4_parser.cc" +#line 4633 "dhcp4_parser.cc" break; - case 842: // config_control_params: config_control_params "," -#line 2934 "dhcp4_parser.yy" + case 845: // config_control_params: config_control_params "," +#line 2946 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4620 "dhcp4_parser.cc" +#line 4641 "dhcp4_parser.cc" break; - case 845: // $@133: %empty -#line 2944 "dhcp4_parser.yy" + case 848: // $@134: %empty +#line 2956 "dhcp4_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4628,30 +4649,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4632 "dhcp4_parser.cc" +#line 4653 "dhcp4_parser.cc" break; - case 846: // config_databases: "config-databases" $@133 ":" "[" database_list "]" -#line 2950 "dhcp4_parser.yy" + case 849: // config_databases: "config-databases" $@134 ":" "[" database_list "]" +#line 2962 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4641 "dhcp4_parser.cc" +#line 4662 "dhcp4_parser.cc" break; - case 847: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 2955 "dhcp4_parser.yy" + case 850: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 2967 "dhcp4_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4651 "dhcp4_parser.cc" +#line 4672 "dhcp4_parser.cc" break; - case 848: // $@134: %empty -#line 2963 "dhcp4_parser.yy" + case 851: // $@135: %empty +#line 2975 "dhcp4_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4659,83 +4680,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4663 "dhcp4_parser.cc" +#line 4684 "dhcp4_parser.cc" break; - case 849: // loggers: "loggers" $@134 ":" "[" loggers_entries "]" -#line 2969 "dhcp4_parser.yy" + case 852: // loggers: "loggers" $@135 ":" "[" loggers_entries "]" +#line 2981 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4672 "dhcp4_parser.cc" +#line 4693 "dhcp4_parser.cc" break; - case 852: // loggers_entries: loggers_entries "," -#line 2978 "dhcp4_parser.yy" + case 855: // loggers_entries: loggers_entries "," +#line 2990 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4680 "dhcp4_parser.cc" +#line 4701 "dhcp4_parser.cc" break; - case 853: // $@135: %empty -#line 2984 "dhcp4_parser.yy" + case 856: // $@136: %empty +#line 2996 "dhcp4_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4690 "dhcp4_parser.cc" +#line 4711 "dhcp4_parser.cc" break; - case 854: // logger_entry: "{" $@135 logger_params "}" -#line 2988 "dhcp4_parser.yy" + case 857: // logger_entry: "{" $@136 logger_params "}" +#line 3000 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4698 "dhcp4_parser.cc" +#line 4719 "dhcp4_parser.cc" break; - case 857: // logger_params: logger_params "," -#line 2994 "dhcp4_parser.yy" + case 860: // logger_params: logger_params "," +#line 3006 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4706 "dhcp4_parser.cc" +#line 4727 "dhcp4_parser.cc" break; - case 865: // debuglevel: "debuglevel" ":" "integer" -#line 3008 "dhcp4_parser.yy" + case 868: // debuglevel: "debuglevel" ":" "integer" +#line 3020 "dhcp4_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4716 "dhcp4_parser.cc" +#line 4737 "dhcp4_parser.cc" break; - case 866: // $@136: %empty -#line 3014 "dhcp4_parser.yy" + case 869: // $@137: %empty +#line 3026 "dhcp4_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4725 "dhcp4_parser.cc" +#line 4746 "dhcp4_parser.cc" break; - case 867: // severity: "severity" $@136 ":" "constant string" -#line 3017 "dhcp4_parser.yy" + case 870: // severity: "severity" $@137 ":" "constant string" +#line 3029 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4735 "dhcp4_parser.cc" +#line 4756 "dhcp4_parser.cc" break; - case 868: // $@137: %empty -#line 3023 "dhcp4_parser.yy" + case 871: // $@138: %empty +#line 3035 "dhcp4_parser.yy" { ctx.unique("output-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4743,122 +4764,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4747 "dhcp4_parser.cc" +#line 4768 "dhcp4_parser.cc" break; - case 869: // output_options_list: "output-options" $@137 ":" "[" output_options_list_content "]" -#line 3029 "dhcp4_parser.yy" + case 872: // output_options_list: "output-options" $@138 ":" "[" output_options_list_content "]" +#line 3041 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4756 "dhcp4_parser.cc" +#line 4777 "dhcp4_parser.cc" break; - case 872: // output_options_list_content: output_options_list_content "," -#line 3036 "dhcp4_parser.yy" + case 875: // output_options_list_content: output_options_list_content "," +#line 3048 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4764 "dhcp4_parser.cc" +#line 4785 "dhcp4_parser.cc" break; - case 873: // $@138: %empty -#line 3041 "dhcp4_parser.yy" + case 876: // $@139: %empty +#line 3053 "dhcp4_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4774 "dhcp4_parser.cc" +#line 4795 "dhcp4_parser.cc" break; - case 874: // output_entry: "{" $@138 output_params_list "}" -#line 3045 "dhcp4_parser.yy" + case 877: // output_entry: "{" $@139 output_params_list "}" +#line 3057 "dhcp4_parser.yy" { ctx.stack_.pop_back(); } -#line 4782 "dhcp4_parser.cc" +#line 4803 "dhcp4_parser.cc" break; - case 877: // output_params_list: output_params_list "," -#line 3051 "dhcp4_parser.yy" + case 880: // output_params_list: output_params_list "," +#line 3063 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4790 "dhcp4_parser.cc" +#line 4811 "dhcp4_parser.cc" break; - case 883: // $@139: %empty -#line 3063 "dhcp4_parser.yy" + case 886: // $@140: %empty +#line 3075 "dhcp4_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4799 "dhcp4_parser.cc" +#line 4820 "dhcp4_parser.cc" break; - case 884: // output: "output" $@139 ":" "constant string" -#line 3066 "dhcp4_parser.yy" + case 887: // output: "output" $@140 ":" "constant string" +#line 3078 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4809 "dhcp4_parser.cc" +#line 4830 "dhcp4_parser.cc" break; - case 885: // flush: "flush" ":" "boolean" -#line 3072 "dhcp4_parser.yy" + case 888: // flush: "flush" ":" "boolean" +#line 3084 "dhcp4_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4819 "dhcp4_parser.cc" +#line 4840 "dhcp4_parser.cc" break; - case 886: // maxsize: "maxsize" ":" "integer" -#line 3078 "dhcp4_parser.yy" + case 889: // maxsize: "maxsize" ":" "integer" +#line 3090 "dhcp4_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4829 "dhcp4_parser.cc" +#line 4850 "dhcp4_parser.cc" break; - case 887: // maxver: "maxver" ":" "integer" -#line 3084 "dhcp4_parser.yy" + case 890: // maxver: "maxver" ":" "integer" +#line 3096 "dhcp4_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4839 "dhcp4_parser.cc" +#line 4860 "dhcp4_parser.cc" break; - case 888: // $@140: %empty -#line 3090 "dhcp4_parser.yy" + case 891: // $@141: %empty +#line 3102 "dhcp4_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4848 "dhcp4_parser.cc" +#line 4869 "dhcp4_parser.cc" break; - case 889: // pattern: "pattern" $@140 ":" "constant string" -#line 3093 "dhcp4_parser.yy" + case 892: // pattern: "pattern" $@141 ":" "constant string" +#line 3105 "dhcp4_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 4858 "dhcp4_parser.cc" +#line 4879 "dhcp4_parser.cc" break; - case 890: // $@141: %empty -#line 3099 "dhcp4_parser.yy" + case 893: // $@142: %empty +#line 3111 "dhcp4_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4866,68 +4887,68 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 4870 "dhcp4_parser.cc" +#line 4891 "dhcp4_parser.cc" break; - case 891: // compatibility: "compatibility" $@141 ":" "{" compatibility_params "}" -#line 3105 "dhcp4_parser.yy" + case 894: // compatibility: "compatibility" $@142 ":" "{" compatibility_params "}" +#line 3117 "dhcp4_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4879 "dhcp4_parser.cc" +#line 4900 "dhcp4_parser.cc" break; - case 894: // compatibility_params: compatibility_params "," -#line 3112 "dhcp4_parser.yy" + case 897: // compatibility_params: compatibility_params "," +#line 3124 "dhcp4_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4887 "dhcp4_parser.cc" +#line 4908 "dhcp4_parser.cc" break; - case 900: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3124 "dhcp4_parser.yy" + case 903: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 3136 "dhcp4_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 4897 "dhcp4_parser.cc" +#line 4918 "dhcp4_parser.cc" break; - case 901: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" -#line 3130 "dhcp4_parser.yy" + case 904: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean" +#line 3142 "dhcp4_parser.yy" { ctx.unique("ignore-dhcp-server-identifier", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-dhcp-server-identifier", b); } -#line 4907 "dhcp4_parser.cc" +#line 4928 "dhcp4_parser.cc" break; - case 902: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" -#line 3136 "dhcp4_parser.yy" + case 905: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean" +#line 3148 "dhcp4_parser.yy" { ctx.unique("ignore-rai-link-selection", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ignore-rai-link-selection", b); } -#line 4917 "dhcp4_parser.cc" +#line 4938 "dhcp4_parser.cc" break; - case 903: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" -#line 3142 "dhcp4_parser.yy" + case 906: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean" +#line 3154 "dhcp4_parser.yy" { ctx.unique("exclude-first-last-24", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("exclude-first-last-24", b); } -#line 4927 "dhcp4_parser.cc" +#line 4948 "dhcp4_parser.cc" break; -#line 4931 "dhcp4_parser.cc" +#line 4952 "dhcp4_parser.cc" default: break; @@ -5279,152 +5300,153 @@ namespace isc { namespace dhcp { } - const short Dhcp4Parser::yypact_ninf_ = -1294; + const short Dhcp4Parser::yypact_ninf_ = -1300; const signed char Dhcp4Parser::yytable_ninf_ = -1; const short Dhcp4Parser::yypact_[] = { - 398, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 41, 48, 81, 93, 97, 116, - 135, 142, 162, 169, 185, 195, 230, 244, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 48, -172, 50, 679, 95, 163, - -16, 287, -9, 341, 85, -107, 268, 155, -1294, 86, - 99, 251, 250, 262, -1294, 44, -1294, -1294, -1294, -1294, - 263, 272, 288, -1294, -1294, -1294, 290, 313, -1294, -1294, - -1294, 321, 333, 356, 372, 373, 374, 407, 427, 429, - 430, 432, -1294, 435, 436, 450, 456, 457, -1294, -1294, - -1294, 463, 466, 469, 470, -1294, -1294, -1294, 472, -1294, - -1294, -1294, -1294, -1294, 473, 476, 481, -1294, -1294, -1294, - -1294, -1294, 483, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 488, 490, 491, -1294, -1294, 494, -1294, 98, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 502, 503, 504, 505, -1294, 200, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, 507, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 210, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, 509, -1294, -1294, - -1294, -1294, 216, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 315, 293, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 381, -1294, -1294, 510, -1294, -1294, - -1294, 512, -1294, -1294, 392, 336, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, 514, - 515, 516, -1294, -1294, -1294, -1294, 517, 519, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, 217, -1294, -1294, -1294, 522, -1294, 523, -1294, 524, - 526, -1294, -1294, -1294, -1294, -1294, 254, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, 527, 256, -1294, - -1294, -1294, -1294, 48, 48, -1294, 300, 530, -1294, -1294, - 531, 533, 534, 317, 323, 324, 535, 537, 541, 330, - 327, 543, 555, 558, 339, 342, 343, 344, 346, 357, - 340, 347, 350, 358, 361, 565, 362, 364, 375, 377, - 379, 567, 570, 583, 380, 397, 365, 399, 585, 589, - 596, 400, 617, 618, 622, 623, 624, 403, 404, 408, - 627, 628, 629, 631, 633, 415, 636, 637, 638, 640, - 641, 642, 643, 423, 424, 425, 644, 648, -1294, 679, - -1294, 649, 650, 651, 431, 433, 434, 437, 95, -1294, - 656, 658, 659, 660, 661, 662, 443, 664, 665, 666, - 163, -1294, 667, 448, -16, -1294, 671, 672, 674, 675, - 676, 678, 680, 681, -1294, 287, -1294, 682, 683, 459, - 684, 685, 692, 471, -1294, 341, 694, 474, 475, 477, - -1294, 85, 695, 700, 70, -1294, 480, 703, 495, 716, - 497, 498, 719, 720, 268, -1294, 721, 506, 155, -1294, - -1294, -1294, 722, 724, 725, 726, 727, -1294, -1294, -1294, - 513, 545, 546, -1294, -1294, 728, 732, 723, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, 547, - -1294, -1294, -1294, -1294, -1294, -145, 550, 551, -1294, -1294, - -1294, -1294, 737, 770, 771, -1294, 554, 319, 773, 772, - 557, -1294, -1294, -1294, 776, 777, 781, 782, 784, -1294, - 785, 788, 783, 789, 790, 566, 580, -1294, -1294, -1294, - 799, 798, -1294, 801, 285, 329, -1294, -1294, -1294, -1294, - -1294, 584, 587, 588, 803, 590, 591, -1294, 801, 592, - 805, -1294, 593, -1294, -1294, 801, 594, 595, 597, 598, - 600, 601, 602, -1294, 603, 604, -1294, 605, 608, 609, - -1294, -1294, 610, -1294, -1294, -1294, -1294, 613, 772, -1294, - -1294, 614, -1294, 615, -1294, -1294, 19, 653, -1294, 835, - -1294, -1294, 48, 679, 155, 95, 331, -1294, -1294, -1294, - 112, 112, 834, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, 836, 837, 838, -1294, -1294, -1294, -1294, -1294, - -1294, 839, -1294, -1294, -1294, 199, 840, 841, 842, -10, - 63, 301, 843, 124, 268, -1294, -1294, 845, -18, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 846, -1294, -1294, -1294, -1294, 715, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, 834, - -1294, 258, 282, 292, -1294, -1294, 302, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 852, 853, 854, 855, 856, 857, - 858, 859, 860, 861, -1294, 862, 863, -1294, -1294, -1294, - -1294, -1294, 308, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, 335, -1294, 870, 865, - -1294, -1294, 871, 866, -1294, -1294, 872, 876, -1294, -1294, - 874, 878, -1294, -1294, 877, 879, -1294, -1294, -1294, -1294, - -1294, -1294, 66, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 73, -1294, -1294, 880, 882, -1294, -1294, 881, 885, -1294, - 886, 887, 888, 889, 890, 891, 345, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 892, 893, 894, -1294, 348, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, 895, -1294, - 896, -1294, -1294, -1294, -1294, -1294, -1294, 349, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, 883, 898, -1294, 899, - -1294, 900, -1294, -1294, -1294, 363, -1294, -1294, -1294, -1294, - -1294, 367, -1294, 118, -1294, 901, 902, 903, 904, -1294, - 376, -1294, -1294, -1294, -1294, -1294, 619, -1294, 905, 906, - -1294, -1294, 907, -1294, 908, -1294, -1294, -1294, 909, 912, - 331, -1294, 913, 914, 915, 916, 686, 501, 688, 696, - 697, 699, 701, 702, 704, 705, 920, 706, 707, 923, - 926, 929, 930, 112, -1294, -1294, 112, -1294, 834, 163, - -1294, 836, 341, -1294, 837, 85, -1294, 838, 1315, -1294, - 839, 199, -1294, 280, 840, -1294, 287, -1294, 841, -107, - -1294, 842, 711, 712, 713, 714, 717, 729, -10, -1294, - 718, 733, 741, 63, -1294, 935, 936, 939, 749, 942, - 756, 301, -1294, 301, -1294, 843, 757, 943, 751, 945, - 124, -1294, -1294, 107, 845, -1294, 765, 767, 774, 779, - -18, -1294, -1294, 944, 1004, -16, -1294, 846, 1013, -1294, - -1294, 807, 810, -1294, 813, 814, 818, 829, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, 7, -1294, - -1294, 830, 832, 884, 897, -1294, 382, -1294, 384, -1294, - 1020, -1294, 1091, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 385, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, 1017, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, 1093, 1099, -1294, - -1294, -1294, -1294, -1294, -1294, 1095, -1294, 388, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 209, 910, 911, -1294, 1097, -1294, -1294, 395, -1294, -1294, - 917, -1294, 48, -1294, -1294, 1101, -1294, -1294, -1294, -1294, - -1294, 396, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, 918, 405, -1294, 801, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, 1315, -1294, 1102, 1105, 919, - -1294, 280, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 174, -1294, -1294, -1294, 1106, 922, 1107, 107, -1294, -1294, - -1294, -1294, -1294, 921, 924, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 406, -1294, -1294, -1294, -1294, -1294, - 1108, -1294, 925, -1294, -1294, -1294, 1110, 1111, 1112, 1113, - 174, -1294, 1114, -1294, 564, 927, 928, 1117, -1294, -1294, - 220, -1294, -1294, -1294, -1294, -1294, 1116, -108, 1114, -1294, - -1294, 1118, 1109, -1294, -1294, 1115, 1121, 1122, -1294, 409, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, 17, -1294, 1116, - 1123, 931, 932, 934, 1124, -108, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 422, -1294, -1294, -1294, -1294, 937, - -1294, -1294, -1294, 938, -1294, 1125, 1126, 17, -1294, -1294, - -1294, 940, 941, -1294, -1294, -1294 + 415, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, 35, 51, 30, 41, 48, 50, + 62, 65, 77, 81, 83, 99, 101, 116, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, 51, -142, 84, 683, 95, 167, + 91, 278, -6, 1, 322, -96, 440, 87, -1300, 126, + 135, 138, 142, 153, -1300, 44, -1300, -1300, -1300, -1300, + 154, 207, 237, -1300, -1300, -1300, 239, 251, -1300, -1300, + -1300, 255, 257, 259, 274, 276, 288, 294, 296, 311, + 319, 325, -1300, 332, 334, 335, 342, 344, -1300, -1300, + -1300, 353, 364, 374, 375, -1300, -1300, -1300, 378, -1300, + -1300, -1300, -1300, -1300, 393, 395, 402, -1300, -1300, -1300, + -1300, -1300, 403, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + 404, 434, 437, -1300, -1300, 444, -1300, 93, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + 450, 452, 462, 474, -1300, 131, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, 478, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, 149, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, 482, -1300, -1300, + -1300, -1300, 182, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + 178, 306, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, 309, -1300, -1300, 485, -1300, -1300, + -1300, 486, -1300, -1300, 348, 428, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 490, + 493, 495, -1300, -1300, -1300, -1300, -1300, 373, 472, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, 204, -1300, -1300, -1300, 509, -1300, 510, + -1300, 512, 516, -1300, -1300, -1300, -1300, -1300, 205, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 517, + 215, -1300, -1300, -1300, -1300, 51, 51, -1300, 217, 518, + -1300, -1300, 521, 522, 523, 302, 303, 304, 529, 532, + 533, 315, 314, 537, 539, 543, 324, 326, 328, 337, + 341, 330, 338, 343, 345, 347, 349, 555, 350, 356, + 340, 346, 351, 563, 565, 572, 355, 358, 360, 363, + 583, 584, 587, 368, 591, 595, 598, 599, 601, 381, + 383, 384, 607, 609, 610, 611, 612, 414, 635, 637, + 639, 640, 641, 642, 644, 423, 426, 429, 646, 647, + -1300, 683, -1300, 649, 650, 652, 431, 432, 435, 438, + 95, -1300, 657, 660, 661, 662, 663, 664, 445, 666, + 667, 668, 167, -1300, 669, 451, 91, -1300, 670, 672, + 675, 676, 678, 679, 680, 682, -1300, 278, -1300, 684, + 685, 463, 686, 687, 688, 467, -1300, 1, 696, 475, + 476, 477, 700, -1300, 322, 701, 703, -78, -1300, 484, + 704, 487, 719, 500, 501, 722, 723, 440, -1300, 724, + 505, 87, -1300, -1300, -1300, 726, 725, 727, 728, 729, + -1300, -1300, -1300, 508, 514, 515, -1300, -1300, 732, 733, + 738, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, 549, -1300, -1300, -1300, -1300, -1300, -113, 550, + 551, -1300, -1300, -1300, -1300, 741, 772, 773, -1300, 556, + 401, 775, 774, 559, -1300, -1300, -1300, 778, 779, 780, + 781, 783, -1300, 784, 785, 788, 789, 792, 577, 578, + -1300, -1300, -1300, 790, 800, -1300, 803, 212, 201, -1300, + -1300, -1300, -1300, -1300, 586, 588, 589, 805, 592, 593, + -1300, 803, 594, 807, -1300, 596, -1300, -1300, 803, 597, + 602, 604, 605, 606, 608, 613, -1300, 614, 617, -1300, + 618, 619, 620, -1300, -1300, 621, -1300, -1300, -1300, 803, + -1300, 622, 774, -1300, -1300, 623, -1300, 624, -1300, -1300, + 18, 547, -1300, 813, -1300, -1300, 51, 683, 87, 95, + 279, -1300, -1300, -1300, 120, 120, 814, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, 815, 817, 823, -1300, + -1300, -1300, -1300, -1300, -1300, 825, -1300, -1300, -1300, 254, + 828, 841, 842, 228, 39, 289, 843, 179, 440, -1300, + -1300, 844, 19, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, 845, -1300, -1300, -1300, -1300, 714, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, 814, -1300, 305, 313, 323, -1300, + -1300, 329, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 850, + 852, 853, 854, 856, 857, 858, 859, 860, 861, -1300, + 862, 863, -1300, -1300, -1300, -1300, -1300, 339, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, 352, -1300, 864, 865, -1300, -1300, 866, 868, -1300, + -1300, 867, 877, -1300, -1300, 875, 879, -1300, -1300, 878, + 880, -1300, -1300, -1300, -1300, -1300, -1300, 118, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, 125, -1300, -1300, 881, 882, + -1300, -1300, 883, 887, -1300, 888, 889, 890, 891, 892, + 893, 361, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 894, + 895, 896, -1300, 362, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, 897, -1300, 898, -1300, -1300, -1300, -1300, + -1300, -1300, 377, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, 885, 900, -1300, 901, -1300, 903, -1300, -1300, -1300, + 397, -1300, -1300, -1300, -1300, -1300, 421, -1300, 143, -1300, + 904, 905, 906, 907, -1300, 424, -1300, -1300, -1300, -1300, + -1300, 681, -1300, 908, 909, -1300, -1300, 910, -1300, 911, + -1300, -1300, -1300, 912, 915, 279, -1300, 916, 917, 918, + 919, 645, 689, 702, 698, 705, 706, 707, 708, 709, + 710, 921, 711, 712, 923, 924, 931, 934, 120, -1300, + -1300, 120, -1300, 814, 167, -1300, 815, 1, -1300, 817, + 322, -1300, 823, 1321, -1300, 825, 254, -1300, 269, 828, + -1300, 278, -1300, 841, -96, -1300, 842, 715, 716, 717, + 718, 720, 721, 228, -1300, 744, 730, 731, 39, -1300, + 939, 942, 944, 734, 945, 747, 289, -1300, 289, -1300, + 843, 752, 947, 756, 948, 179, -1300, -1300, 226, 844, + -1300, 762, 776, 795, 796, 19, -1300, -1300, 1000, 1007, + 91, -1300, 845, 1011, -1300, -1300, 690, 806, -1300, 812, + 818, 819, 833, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, 139, -1300, -1300, 834, 835, 837, 849, + -1300, 425, -1300, 427, -1300, 1010, -1300, 1018, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, 436, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 1069, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, 1098, 1104, -1300, -1300, -1300, -1300, -1300, -1300, + 1100, -1300, 439, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, 17, 899, 902, -1300, 1103, + -1300, -1300, 454, -1300, -1300, 913, -1300, 51, -1300, -1300, + 1107, -1300, -1300, -1300, -1300, -1300, 455, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 914, 461, + -1300, 803, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + 1321, -1300, 1108, 1110, 920, -1300, 269, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, 21, -1300, -1300, -1300, 1111, + 925, 1112, 226, -1300, -1300, -1300, -1300, -1300, 922, 927, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 464, + -1300, -1300, -1300, -1300, -1300, 1113, -1300, 928, -1300, -1300, + -1300, 1115, 1116, 1117, 1119, 21, -1300, 1120, -1300, 952, + 929, 930, 1121, -1300, -1300, 293, -1300, -1300, -1300, -1300, + -1300, 1122, 66, 1120, -1300, -1300, 1118, 1125, -1300, -1300, + 1126, 1127, 1128, -1300, 471, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, 175, -1300, 1122, 1129, 933, 932, 936, 1130, + 66, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 473, + -1300, -1300, -1300, -1300, 938, -1300, -1300, -1300, 940, -1300, + 1131, 1134, 175, -1300, -1300, -1300, 941, 943, -1300, -1300, + -1300 }; const short @@ -5434,18 +5456,18 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 44, 36, 32, 31, 28, 29, 30, 35, 3, 33, 34, - 59, 5, 65, 7, 208, 9, 385, 11, 595, 13, - 624, 15, 513, 17, 522, 19, 561, 21, 347, 23, - 806, 25, 838, 27, 46, 39, 0, 0, 0, 0, - 0, 626, 0, 524, 563, 0, 0, 0, 48, 0, - 47, 0, 0, 40, 61, 0, 63, 836, 193, 226, - 0, 0, 0, 646, 648, 650, 0, 0, 224, 237, + 59, 5, 65, 7, 208, 9, 385, 11, 598, 13, + 627, 15, 513, 17, 522, 19, 561, 21, 347, 23, + 809, 25, 841, 27, 46, 39, 0, 0, 0, 0, + 0, 629, 0, 524, 563, 0, 0, 0, 48, 0, + 47, 0, 0, 40, 61, 0, 63, 839, 193, 226, + 0, 0, 0, 649, 651, 653, 0, 0, 224, 237, 239, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0, 0, 161, 168, 170, 0, 0, 0, 0, 376, 511, 552, 0, 153, - 174, 456, 611, 613, 0, 0, 0, 309, 673, 615, - 338, 359, 0, 324, 708, 710, 787, 804, 181, 183, - 0, 0, 0, 848, 890, 0, 138, 0, 67, 70, + 174, 456, 614, 616, 0, 0, 0, 309, 676, 618, + 338, 359, 0, 324, 711, 713, 790, 807, 181, 183, + 0, 0, 0, 851, 893, 0, 138, 0, 67, 70, 71, 72, 73, 74, 108, 109, 110, 111, 112, 75, 104, 134, 135, 93, 94, 95, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 114, 115, 126, 127, @@ -5454,543 +5476,546 @@ namespace isc { namespace dhcp { 84, 85, 99, 100, 102, 96, 97, 98, 83, 88, 89, 90, 91, 92, 103, 113, 133, 210, 212, 216, 0, 0, 0, 0, 207, 0, 195, 198, 199, 200, - 201, 202, 203, 204, 205, 206, 440, 442, 444, 586, - 438, 446, 0, 450, 448, 668, 437, 390, 391, 392, + 201, 202, 203, 204, 205, 206, 440, 442, 444, 589, + 438, 446, 0, 450, 448, 671, 437, 390, 391, 392, 393, 394, 417, 418, 419, 420, 421, 435, 407, 408, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 436, 0, 387, 397, 412, 413, 414, 398, 400, 401, 403, 404, 405, 399, 395, 396, 415, - 416, 402, 409, 410, 411, 406, 608, 0, 607, 603, - 604, 602, 0, 597, 600, 601, 605, 606, 666, 652, - 654, 656, 660, 658, 664, 662, 645, 639, 643, 644, - 0, 627, 628, 640, 641, 642, 636, 631, 637, 633, - 634, 635, 638, 632, 0, 542, 283, 0, 546, 544, + 416, 402, 409, 410, 411, 406, 611, 0, 610, 606, + 607, 605, 0, 600, 603, 604, 608, 609, 669, 655, + 657, 659, 663, 661, 667, 665, 648, 642, 646, 647, + 0, 630, 631, 643, 644, 645, 639, 634, 640, 636, + 637, 638, 641, 635, 0, 542, 283, 0, 546, 544, 549, 0, 538, 539, 0, 525, 526, 529, 541, 530, - 531, 532, 548, 533, 534, 535, 536, 537, 579, 0, - 0, 0, 577, 578, 581, 582, 0, 564, 565, 568, - 569, 570, 571, 572, 573, 574, 575, 576, 355, 357, - 352, 0, 349, 353, 354, 0, 823, 0, 826, 0, - 0, 830, 834, 821, 819, 820, 0, 808, 811, 812, - 813, 814, 815, 816, 817, 818, 845, 0, 0, 840, - 843, 844, 45, 50, 0, 37, 43, 0, 64, 60, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 531, 532, 548, 533, 534, 535, 536, 537, 580, 0, + 0, 0, 587, 578, 579, 582, 583, 0, 564, 565, + 568, 569, 570, 571, 572, 573, 574, 577, 575, 576, + 355, 357, 352, 0, 349, 353, 354, 0, 826, 0, + 829, 0, 0, 833, 837, 824, 822, 823, 0, 811, + 814, 815, 816, 817, 818, 819, 820, 821, 848, 0, + 0, 843, 846, 847, 45, 50, 0, 37, 43, 0, + 64, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 58, 69, - 66, 0, 0, 0, 0, 0, 0, 0, 197, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 389, 386, 0, 0, 599, 596, 0, 0, 0, 0, - 0, 0, 0, 0, 625, 630, 514, 0, 0, 0, - 0, 0, 0, 0, 523, 528, 0, 0, 0, 0, - 562, 567, 0, 0, 351, 348, 0, 0, 0, 0, - 0, 0, 0, 0, 810, 807, 0, 0, 842, 839, - 49, 41, 0, 0, 0, 0, 0, 155, 156, 157, - 0, 0, 0, 191, 192, 0, 0, 0, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 0, - 186, 187, 158, 159, 160, 0, 0, 0, 172, 173, - 180, 185, 0, 0, 0, 152, 0, 0, 0, 0, - 0, 452, 453, 454, 0, 0, 0, 0, 0, 707, - 0, 0, 0, 0, 0, 0, 0, 188, 189, 190, - 0, 0, 68, 0, 0, 0, 220, 221, 222, 223, - 196, 0, 0, 0, 0, 0, 0, 455, 0, 0, - 0, 388, 0, 610, 598, 0, 0, 0, 0, 0, - 0, 0, 0, 629, 0, 0, 540, 0, 0, 0, - 551, 527, 0, 583, 584, 585, 566, 0, 0, 350, - 822, 0, 825, 0, 828, 829, 0, 0, 809, 0, - 847, 841, 0, 0, 0, 0, 0, 647, 649, 651, - 0, 0, 241, 151, 163, 164, 165, 166, 167, 162, - 169, 171, 378, 515, 554, 154, 176, 177, 178, 179, - 175, 458, 38, 612, 614, 0, 0, 617, 340, 0, - 0, 0, 712, 0, 0, 182, 184, 0, 0, 51, - 211, 214, 215, 213, 218, 219, 217, 441, 443, 445, - 588, 439, 447, 451, 449, 0, 609, 667, 653, 655, - 657, 661, 659, 665, 663, 543, 284, 547, 545, 550, - 580, 356, 358, 824, 827, 832, 833, 831, 835, 241, - 42, 0, 0, 0, 233, 235, 0, 228, 231, 232, - 274, 276, 278, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 294, 0, 0, 301, 303, 305, - 307, 273, 0, 248, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 0, 246, 0, 242, - 243, 383, 0, 379, 380, 520, 0, 516, 517, 559, - 0, 555, 556, 463, 0, 459, 460, 319, 320, 321, - 322, 323, 0, 311, 314, 315, 316, 317, 318, 678, - 0, 675, 622, 0, 618, 619, 345, 0, 341, 342, - 0, 0, 0, 0, 0, 0, 0, 361, 364, 365, - 366, 367, 368, 369, 0, 0, 0, 334, 0, 326, - 329, 330, 331, 332, 333, 734, 739, 741, 0, 745, - 0, 733, 727, 728, 729, 731, 732, 0, 719, 722, - 723, 724, 725, 730, 726, 717, 0, 713, 714, 0, - 799, 0, 802, 795, 796, 0, 789, 792, 793, 794, - 797, 0, 853, 0, 850, 0, 0, 0, 0, 899, - 0, 892, 895, 896, 897, 898, 53, 593, 0, 589, - 590, 671, 0, 670, 0, 62, 837, 194, 0, 0, - 230, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 58, 69, 66, 0, 0, 0, 0, 0, 0, 0, + 197, 209, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 389, 386, 0, 0, 602, 599, 0, 0, + 0, 0, 0, 0, 0, 0, 628, 633, 514, 0, + 0, 0, 0, 0, 0, 0, 523, 528, 0, 0, + 0, 0, 0, 562, 567, 0, 0, 351, 348, 0, + 0, 0, 0, 0, 0, 0, 0, 813, 810, 0, + 0, 845, 842, 49, 41, 0, 0, 0, 0, 0, + 155, 156, 157, 0, 0, 0, 191, 192, 0, 0, + 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 0, 186, 187, 158, 159, 160, 0, 0, + 0, 172, 173, 180, 185, 0, 0, 0, 152, 0, + 0, 0, 0, 0, 452, 453, 454, 0, 0, 0, + 0, 0, 710, 0, 0, 0, 0, 0, 0, 0, + 188, 189, 190, 0, 0, 68, 0, 0, 0, 220, + 221, 222, 223, 196, 0, 0, 0, 0, 0, 0, + 455, 0, 0, 0, 388, 0, 613, 601, 0, 0, + 0, 0, 0, 0, 0, 0, 632, 0, 0, 540, + 0, 0, 0, 551, 527, 0, 584, 585, 586, 0, + 566, 0, 0, 350, 825, 0, 828, 0, 831, 832, + 0, 0, 812, 0, 850, 844, 0, 0, 0, 0, + 0, 650, 652, 654, 0, 0, 241, 151, 163, 164, + 165, 166, 167, 162, 169, 171, 378, 515, 554, 154, + 176, 177, 178, 179, 175, 458, 38, 615, 617, 0, + 0, 620, 340, 0, 0, 0, 715, 0, 0, 182, + 184, 0, 0, 51, 211, 214, 215, 213, 218, 219, + 217, 441, 443, 445, 591, 439, 447, 451, 449, 0, + 612, 670, 656, 658, 660, 664, 662, 668, 666, 543, + 284, 547, 545, 550, 581, 588, 356, 358, 827, 830, + 835, 836, 834, 838, 241, 42, 0, 0, 0, 233, + 235, 0, 228, 231, 232, 274, 276, 278, 280, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, + 0, 0, 301, 303, 305, 307, 273, 0, 248, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 0, 246, 0, 242, 243, 383, 0, 379, 380, + 520, 0, 516, 517, 559, 0, 555, 556, 463, 0, + 459, 460, 319, 320, 321, 322, 323, 0, 311, 314, + 315, 316, 317, 318, 681, 0, 678, 625, 0, 621, + 622, 345, 0, 341, 342, 0, 0, 0, 0, 0, + 0, 0, 361, 364, 365, 366, 367, 368, 369, 0, + 0, 0, 334, 0, 326, 329, 330, 331, 332, 333, + 737, 742, 744, 0, 748, 0, 736, 730, 731, 732, + 734, 735, 0, 722, 725, 726, 727, 728, 733, 729, + 720, 0, 716, 717, 0, 802, 0, 805, 798, 799, + 0, 792, 795, 796, 797, 800, 0, 856, 0, 853, + 0, 0, 0, 0, 902, 0, 895, 898, 899, 900, + 901, 53, 596, 0, 592, 593, 674, 0, 673, 0, + 62, 840, 194, 0, 0, 230, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 250, 225, 238, 0, 240, 245, 0, - 377, 382, 524, 512, 519, 563, 553, 558, 0, 457, - 462, 313, 310, 680, 677, 674, 626, 616, 621, 0, - 339, 344, 0, 0, 0, 0, 0, 0, 363, 360, - 0, 0, 0, 328, 325, 0, 0, 0, 0, 0, - 0, 721, 709, 0, 711, 716, 0, 0, 0, 0, - 791, 788, 805, 0, 852, 849, 0, 0, 0, 0, - 894, 891, 55, 0, 54, 0, 587, 592, 0, 669, - 846, 0, 0, 229, 0, 0, 0, 0, 282, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 0, 299, - 300, 0, 0, 0, 0, 249, 0, 244, 0, 381, - 0, 518, 0, 557, 510, 485, 486, 487, 471, 472, - 490, 491, 492, 493, 494, 508, 474, 475, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 507, 509, 468, 469, 470, 483, 484, 480, 481, 482, - 0, 465, 473, 488, 489, 476, 477, 478, 479, 461, - 312, 702, 704, 0, 696, 697, 698, 699, 700, 701, - 689, 690, 694, 695, 691, 692, 693, 0, 681, 682, - 685, 686, 687, 688, 676, 0, 620, 0, 343, 370, - 371, 372, 373, 374, 375, 362, 335, 336, 337, 327, - 0, 0, 0, 743, 0, 744, 720, 0, 715, 798, - 0, 801, 0, 790, 868, 0, 866, 864, 858, 862, - 863, 0, 855, 860, 861, 859, 851, 900, 901, 902, - 903, 893, 52, 57, 0, 591, 0, 234, 236, 275, - 277, 279, 281, 296, 297, 298, 295, 302, 304, 306, - 308, 247, 384, 521, 560, 467, 464, 0, 0, 0, - 679, 684, 623, 346, 736, 737, 738, 735, 740, 742, - 0, 718, 800, 803, 0, 0, 0, 857, 854, 56, - 594, 672, 466, 0, 0, 706, 683, 757, 760, 762, - 764, 756, 755, 754, 0, 747, 750, 751, 752, 753, - 0, 865, 0, 856, 703, 705, 0, 0, 0, 0, - 749, 746, 0, 867, 0, 0, 0, 0, 748, 873, - 0, 870, 759, 758, 761, 763, 766, 0, 872, 869, - 771, 0, 767, 768, 883, 0, 0, 0, 888, 0, - 875, 878, 879, 880, 881, 882, 871, 0, 765, 770, - 0, 0, 0, 0, 0, 877, 874, 783, 785, 782, - 776, 778, 780, 781, 0, 773, 777, 779, 769, 0, - 885, 886, 887, 0, 876, 0, 0, 775, 772, 884, - 889, 0, 0, 774, 784, 786 + 0, 0, 0, 0, 0, 0, 0, 0, 250, 225, + 238, 0, 240, 245, 0, 377, 382, 524, 512, 519, + 563, 553, 558, 0, 457, 462, 313, 310, 683, 680, + 677, 629, 619, 624, 0, 339, 344, 0, 0, 0, + 0, 0, 0, 363, 360, 0, 0, 0, 328, 325, + 0, 0, 0, 0, 0, 0, 724, 712, 0, 714, + 719, 0, 0, 0, 0, 794, 791, 808, 0, 855, + 852, 0, 0, 0, 0, 897, 894, 55, 0, 54, + 0, 590, 595, 0, 672, 849, 0, 0, 229, 0, + 0, 0, 0, 282, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 0, 299, 300, 0, 0, 0, 0, + 249, 0, 244, 0, 381, 0, 518, 0, 557, 510, + 485, 486, 487, 471, 472, 490, 491, 492, 493, 494, + 508, 474, 475, 495, 496, 497, 498, 499, 500, 501, + 502, 503, 504, 505, 506, 507, 509, 468, 469, 470, + 483, 484, 480, 481, 482, 0, 465, 473, 488, 489, + 476, 477, 478, 479, 461, 312, 705, 707, 0, 699, + 700, 701, 702, 703, 704, 692, 693, 697, 698, 694, + 695, 696, 0, 684, 685, 688, 689, 690, 691, 679, + 0, 623, 0, 343, 370, 371, 372, 373, 374, 375, + 362, 335, 336, 337, 327, 0, 0, 0, 746, 0, + 747, 723, 0, 718, 801, 0, 804, 0, 793, 871, + 0, 869, 867, 861, 865, 866, 0, 858, 863, 864, + 862, 854, 903, 904, 905, 906, 896, 52, 57, 0, + 594, 0, 234, 236, 275, 277, 279, 281, 296, 297, + 298, 295, 302, 304, 306, 308, 247, 384, 521, 560, + 467, 464, 0, 0, 0, 682, 687, 626, 346, 739, + 740, 741, 738, 743, 745, 0, 721, 803, 806, 0, + 0, 0, 860, 857, 56, 597, 675, 466, 0, 0, + 709, 686, 760, 763, 765, 767, 759, 758, 757, 0, + 750, 753, 754, 755, 756, 0, 868, 0, 859, 706, + 708, 0, 0, 0, 0, 752, 749, 0, 870, 0, + 0, 0, 0, 751, 876, 0, 873, 762, 761, 764, + 766, 769, 0, 875, 872, 774, 0, 770, 771, 886, + 0, 0, 0, 891, 0, 878, 881, 882, 883, 884, + 885, 874, 0, 768, 773, 0, 0, 0, 0, 0, + 880, 877, 786, 788, 785, 779, 781, 783, 784, 0, + 776, 780, 782, 772, 0, 888, 889, 890, 0, 879, + 0, 0, 778, 775, 887, 892, 0, 0, 777, 787, + 789 }; const short Dhcp4Parser::yypgoto_[] = { - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -59, -1294, -573, -1294, 444, - -1294, -1294, -1294, -1294, -1294, -1294, -629, -1294, -1294, -1294, - -67, -1294, -1294, -1294, -1294, -1294, -1294, -1294, 428, 639, - -38, 36, 38, -54, -51, -39, -37, -21, -20, -19, - -1294, -1294, -1294, -1294, -8, -1294, -1294, 13, 53, 56, - 57, 58, 59, -1294, -1294, 60, -1294, 61, -1294, 64, - 71, 72, -1294, -1294, 74, 75, -1294, 76, -1294, 77, - -1294, -1294, -1294, -1294, -1294, 40, -1294, -1294, -1294, 413, - 634, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 156, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, 354, - -1294, 127, -1294, -697, 134, -1294, -1294, -1293, -1294, -1291, - -1294, -1294, -1294, -1294, 1, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -729, -1294, -725, -1294, -724, -1294, -1294, -1294, -1294, -1294, - -1294, 128, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - 96, -1294, -1294, -1294, -1294, -1294, -1294, -1294, 121, -1294, - -1294, -1294, 125, 611, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, 129, -1294, -1294, -1294, -1294, -1294, -1294, -995, -1294, - -1294, -1294, 148, -1294, -1294, -1294, 153, 646, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -992, -1294, 33, -1294, - 80, -1294, 78, 79, 82, -1294, -1294, -1294, -1294, -1294, - 149, -1294, -1294, -87, -62, -1294, -1294, -1294, -1294, -1294, - 157, -1294, -1294, -1294, 158, -1294, 630, -1294, -63, -1294, - -1294, -1294, -1294, -1294, -61, -1294, -1294, -1294, -1294, -1294, - -31, -1294, -1294, -1294, 159, -1294, -1294, -1294, 164, -1294, - 621, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, 100, -1294, -1294, -1294, 103, 657, -1294, - -1294, -1294, -49, -1294, -3, -1294, -41, -1294, -1294, -1294, - 145, -1294, -1294, -1294, 154, -1294, 647, 9, -1294, 16, - -1294, 20, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -985, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, 150, -1294, -1294, - -1294, -78, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, 130, -1294, 131, 136, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -124, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -160, -1294, -1294, -187, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 132, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, 447, 632, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, 489, 645, -1294, -1294, -1294, -1294, - -1294, -1294, 133, -1294, -1294, -82, -1294, -1294, -1294, -1294, - -1294, -1294, -130, -1294, -1294, -155, -1294, -1294, -1294, -1294, - -1294, -1294, -1294, -1294, -1294, -1294, 137, -1294, -1294, -1294, - -1294 + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -59, -1300, -580, -1300, 194, + -1300, -1300, -1300, -1300, -1300, -1300, -635, -1300, -1300, -1300, + -67, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 433, 638, + 36, 38, 40, -54, -51, -39, -38, -37, -20, -19, + -1300, -1300, -1300, -1300, -18, -1300, -1300, 10, 13, 56, + 57, 60, 61, -1300, -1300, 64, -1300, 68, -1300, 71, + 72, 74, -1300, -1300, 75, 76, -1300, 78, -1300, 79, + -1300, -1300, -1300, -1300, -1300, 53, -1300, -1300, -1300, 446, + 631, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + 157, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 354, + -1300, 130, -1300, -692, 136, -1300, -1300, -1299, -1300, -1290, + -1300, -1300, -1300, -1300, -30, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -734, -1300, -731, -1300, -728, -1300, -1300, -1300, -1300, -1300, + -1300, 121, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + 106, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 129, -1300, + -1300, -1300, 123, 615, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, 119, -1300, -1300, -1300, -1300, -1300, -1300, -995, -1300, + -1300, -1300, 151, -1300, -1300, -1300, 155, 648, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -994, -1300, -11, -1300, + 23, -1300, 82, 86, 90, -1300, -1300, -1300, -1300, -1300, + 146, -1300, -1300, -92, -62, -1300, -1300, -1300, -1300, -1300, + 156, -1300, -1300, -1300, 159, -1300, 626, -1300, -61, -1300, + -1300, -1300, -1300, -1300, -58, -1300, -1300, -1300, -1300, -1300, + -31, -1300, -1300, -1300, 152, -1300, -1300, -1300, 158, -1300, + 625, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, 98, -1300, -1300, -1300, 97, + 655, -1300, -1300, -1300, -49, -1300, -3, -1300, -57, -1300, + -1300, -1300, 150, -1300, -1300, -1300, 160, -1300, 651, 9, + -1300, 16, -1300, 20, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -989, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 161, + -1300, -1300, -1300, -84, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, 124, -1300, 127, + 133, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -129, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -167, -1300, -1300, -190, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, 132, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, 447, 627, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, 488, 629, -1300, -1300, + -1300, -1300, -1300, -1300, 134, -1300, -1300, -81, -1300, -1300, + -1300, -1300, -1300, -1300, -135, -1300, -1300, -158, -1300, -1300, + -1300, -1300, -1300, -1300, -1300, -1300, -1300, -1300, 137, -1300, + -1300, -1300, -1300 }; const short Dhcp4Parser::yydefgoto_[] = { 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 36, 37, 38, 65, 733, - 82, 83, 39, 64, 79, 80, 750, 966, 1073, 1074, - 821, 41, 66, 85, 427, 86, 43, 67, 157, 158, + 23, 24, 25, 26, 27, 36, 37, 38, 65, 737, + 82, 83, 39, 64, 79, 80, 754, 971, 1078, 1079, + 826, 41, 66, 85, 429, 86, 43, 67, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 455, 171, 172, 472, 173, 174, 175, 176, - 177, 178, 179, 461, 719, 180, 462, 181, 463, 182, - 183, 184, 473, 730, 185, 186, 491, 187, 492, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 431, 235, - 236, 45, 68, 237, 501, 238, 502, 753, 239, 503, - 756, 240, 241, 242, 243, 197, 441, 198, 432, 796, - 797, 798, 978, 799, 979, 199, 442, 200, 443, 848, - 849, 850, 1006, 822, 823, 824, 982, 825, 983, 826, - 984, 827, 985, 828, 829, 538, 830, 831, 832, 833, - 834, 835, 836, 837, 838, 839, 996, 1246, 840, 841, - 842, 999, 843, 1000, 844, 1001, 845, 1002, 201, 480, - 872, 873, 874, 875, 876, 877, 878, 202, 486, 908, - 909, 910, 911, 912, 203, 483, 887, 888, 889, 1029, - 59, 75, 391, 392, 393, 552, 394, 553, 204, 484, - 896, 897, 898, 899, 900, 901, 902, 903, 205, 468, - 852, 853, 854, 1009, 47, 69, 284, 285, 286, 514, - 287, 510, 288, 511, 289, 512, 290, 515, 291, 518, - 292, 517, 206, 207, 208, 296, 209, 474, 864, 865, - 866, 1018, 1150, 1151, 210, 469, 53, 72, 856, 857, - 858, 1012, 55, 73, 354, 355, 356, 357, 358, 359, - 360, 537, 361, 541, 362, 540, 363, 364, 542, 365, - 211, 470, 860, 861, 862, 1015, 57, 74, 376, 377, - 378, 379, 380, 546, 381, 382, 383, 384, 385, 298, - 513, 968, 969, 970, 1075, 49, 70, 312, 313, 314, - 522, 315, 212, 475, 213, 476, 214, 482, 883, 884, - 885, 1026, 51, 71, 330, 331, 332, 215, 436, 216, - 437, 217, 438, 336, 527, 337, 528, 338, 529, 339, - 531, 340, 530, 341, 533, 342, 532, 343, 526, 305, - 519, 972, 973, 1078, 218, 481, 880, 881, 1023, 1177, - 1178, 1179, 1180, 1181, 1257, 1182, 1258, 1183, 219, 220, - 487, 221, 488, 936, 937, 938, 1053, 927, 928, 929, - 1045, 1267, 930, 1046, 931, 1047, 932, 933, 934, 1049, - 1294, 1295, 1296, 1306, 1323, 1297, 1307, 1298, 1308, 1299, - 1309, 1331, 1332, 1333, 1347, 1364, 1365, 1366, 1375, 1367, - 1376, 222, 489, 945, 946, 947, 948, 1057, 949, 950, - 1059, 223, 490, 61, 76, 406, 407, 408, 409, 557, - 410, 411, 559, 412, 413, 414, 562, 787, 415, 563, - 224, 430, 63, 77, 418, 419, 420, 566, 421, 225, - 496, 953, 954, 1063, 1221, 1222, 1223, 1224, 1276, 1225, - 1274, 1320, 1321, 1327, 1339, 1340, 1341, 1350, 1342, 1343, - 1344, 1345, 1354, 226, 497, 960, 961, 962, 963, 964, - 965 + 169, 170, 457, 171, 172, 474, 173, 174, 175, 176, + 177, 178, 179, 463, 723, 180, 464, 181, 465, 182, + 183, 184, 475, 734, 185, 186, 493, 187, 494, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 433, 235, + 236, 45, 68, 237, 503, 238, 504, 757, 239, 505, + 760, 240, 241, 242, 243, 197, 443, 198, 434, 801, + 802, 803, 983, 804, 984, 199, 444, 200, 445, 853, + 854, 855, 1011, 827, 828, 829, 987, 830, 988, 831, + 989, 832, 990, 833, 834, 540, 835, 836, 837, 838, + 839, 840, 841, 842, 843, 844, 1001, 1251, 845, 846, + 847, 1004, 848, 1005, 849, 1006, 850, 1007, 201, 482, + 877, 878, 879, 880, 881, 882, 883, 202, 488, 913, + 914, 915, 916, 917, 203, 485, 892, 893, 894, 1034, + 59, 75, 393, 394, 395, 555, 396, 556, 204, 486, + 901, 902, 903, 904, 905, 906, 907, 908, 205, 470, + 857, 858, 859, 1014, 47, 69, 284, 285, 286, 516, + 287, 512, 288, 513, 289, 514, 290, 517, 291, 520, + 292, 519, 206, 207, 208, 296, 209, 476, 869, 870, + 871, 1023, 1155, 1156, 210, 471, 53, 72, 861, 862, + 863, 1017, 55, 73, 354, 355, 356, 357, 358, 359, + 360, 539, 361, 543, 362, 542, 363, 364, 544, 365, + 211, 472, 865, 866, 867, 1020, 57, 74, 377, 378, + 379, 380, 381, 548, 382, 383, 384, 385, 386, 387, + 552, 298, 515, 973, 974, 975, 1080, 49, 70, 312, + 313, 314, 524, 315, 212, 477, 213, 478, 214, 484, + 888, 889, 890, 1031, 51, 71, 330, 331, 332, 215, + 438, 216, 439, 217, 440, 336, 529, 337, 530, 338, + 531, 339, 533, 340, 532, 341, 535, 342, 534, 343, + 528, 305, 521, 977, 978, 1083, 218, 483, 885, 886, + 1028, 1182, 1183, 1184, 1185, 1186, 1262, 1187, 1263, 1188, + 219, 220, 489, 221, 490, 941, 942, 943, 1058, 932, + 933, 934, 1050, 1272, 935, 1051, 936, 1052, 937, 938, + 939, 1054, 1299, 1300, 1301, 1311, 1328, 1302, 1312, 1303, + 1313, 1304, 1314, 1336, 1337, 1338, 1352, 1369, 1370, 1371, + 1380, 1372, 1381, 222, 491, 950, 951, 952, 953, 1062, + 954, 955, 1064, 223, 492, 61, 76, 408, 409, 410, + 411, 560, 412, 413, 562, 414, 415, 416, 565, 792, + 417, 566, 224, 432, 63, 77, 420, 421, 422, 569, + 423, 225, 498, 958, 959, 1068, 1226, 1227, 1228, 1229, + 1281, 1230, 1279, 1325, 1326, 1332, 1344, 1345, 1346, 1355, + 1347, 1348, 1349, 1350, 1359, 226, 499, 965, 966, 967, + 968, 969, 970 }; const short Dhcp4Parser::yytable_[] = { - 156, 234, 256, 308, 326, 78, 352, 372, 390, 403, - 344, 374, 922, 375, 846, 260, 923, 924, 261, 244, - 299, 316, 328, 1143, 366, 386, 1144, 404, 301, 763, - 262, 257, 263, 1158, 388, 389, 767, 785, 297, 311, - 327, 28, 714, 715, 716, 717, 732, 428, 264, 265, - 266, 81, 429, 29, 1360, 30, 1361, 31, 801, 802, - 84, 267, 1243, 1244, 1245, 245, 300, 317, 329, 1021, - 367, 387, 1022, 405, 353, 373, 1024, 127, 302, 1025, - 333, 718, 268, 126, 1360, 303, 1361, 334, 40, 304, - 1334, 335, 422, 1335, 1336, 1337, 1338, 306, 132, 133, - 42, 499, 423, 309, 44, 258, 500, 259, 253, 283, - 227, 228, 254, 307, 229, 732, 155, 230, 231, 232, - 233, 1064, 269, 46, 1065, 270, 271, 272, 273, 274, - 275, 132, 133, 276, 890, 891, 892, 893, 894, 895, - 277, 278, 48, 279, 280, 281, 282, 293, 294, 50, - 310, 295, 800, 801, 802, 803, 804, 805, 806, 807, - 808, 809, 810, 811, 812, 813, 814, 416, 417, 52, - 815, 816, 817, 818, 819, 820, 54, 132, 133, 346, - 368, 347, 348, 369, 370, 371, 1357, 1358, 955, 956, - 957, 958, 56, 91, 92, 93, 94, 95, 96, 132, - 133, 346, 58, 508, 786, 155, 346, 155, 509, 132, - 133, 388, 389, 520, 1287, 904, 905, 906, 521, 524, - 554, 132, 133, 1328, 525, 555, 1329, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 60, 132, 133, - 155, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 62, 246, 247, 248, 424, 127, 564, 425, 568, - 1143, 499, 565, 1144, 569, 426, 975, 433, 129, 130, - 1158, 32, 33, 34, 35, 249, 434, 132, 133, 250, - 251, 252, 134, 135, 136, 568, 155, 253, 132, 133, - 976, 254, 435, 139, 439, 508, 535, 939, 940, 941, - 977, 255, 751, 752, 1214, 980, 1215, 1216, 155, 1106, - 981, 1003, 93, 94, 95, 96, 1004, 440, 155, 93, - 94, 95, 922, 534, 922, 444, 923, 924, 923, 924, - 155, 867, 868, 869, 870, 155, 871, 445, 1003, 545, - 1288, 1289, 1290, 1005, 101, 102, 103, 942, 1038, 754, - 755, 1043, 1051, 1039, 148, 149, 1044, 1052, 794, 795, - 446, 817, 818, 819, 570, 571, 1060, 1264, 1265, 1266, - 564, 1061, 126, 127, 346, 1062, 447, 448, 449, 1070, - 127, 345, 132, 133, 1071, 1003, 155, 520, 1255, 536, - 1251, 554, 1252, 1256, 132, 133, 1263, 155, 1051, 1277, - 544, 132, 133, 1271, 1278, 1161, 1162, 1163, 524, 1310, - 318, 450, 1355, 1280, 1311, 132, 133, 1356, 319, 320, - 321, 322, 323, 324, 325, 1377, 726, 727, 728, 729, - 1378, 451, 156, 452, 453, 346, 454, 347, 348, 456, - 457, 234, 349, 350, 351, 395, 396, 397, 398, 399, - 400, 401, 402, 256, 458, 132, 133, 308, 915, 244, - 459, 460, 916, 917, 918, 919, 260, 464, 326, 261, - 465, 299, 920, 466, 467, 316, 471, 477, 352, 301, - 478, 262, 257, 263, 372, 479, 328, 485, 374, 297, - 375, 155, 493, 311, 494, 495, 366, 403, 498, 264, - 265, 266, 386, 155, 327, 245, 504, 505, 506, 507, - 155, 516, 267, 523, 539, 404, 543, 300, 547, 548, - 549, 317, 551, 572, 155, 550, 556, 558, 560, 302, - 561, 567, 329, 268, 573, 574, 303, 575, 576, 580, - 304, 581, 367, 577, 333, 582, 353, 585, 387, 578, - 579, 334, 373, 584, 583, 335, 258, 309, 259, 586, - 283, 405, 587, 588, 155, 594, 589, 590, 591, 599, - 592, 605, 595, 269, 606, 596, 270, 271, 272, 273, - 274, 275, 597, 593, 276, 598, 600, 607, 601, 612, - 610, 277, 278, 613, 279, 280, 281, 282, 293, 294, - 614, 602, 295, 603, 310, 604, 608, 1281, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 616, 617, 609, 615, 611, 618, 619, 620, 621, - 622, 624, 625, 626, 623, 627, 156, 628, 234, 629, - 630, 631, 632, 790, 633, 634, 635, 636, 640, 637, - 638, 639, 641, 643, 644, 645, 244, 646, 648, 647, - 651, 649, 652, 653, 654, 655, 656, 657, 658, 659, - 660, 662, 663, 907, 921, 665, 666, 403, 667, 668, - 669, 959, 670, 676, 671, 672, 674, 675, 677, 678, - 87, 913, 925, 88, 943, 404, 679, 680, 682, 687, - 683, 684, 245, 685, 688, 89, 690, 691, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 692, - 693, 694, 695, 696, 697, 699, 702, 1089, 712, 1322, - 700, 703, 704, 705, 706, 710, 707, 914, 926, 711, - 944, 405, 722, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 708, 709, - 713, 126, 127, 720, 721, 723, 724, 725, 731, 30, - 734, 735, 736, 128, 129, 130, 737, 738, 742, 745, - 131, 739, 740, 132, 133, 741, 743, 744, 134, 135, - 136, 137, 138, 746, 747, 748, 749, 757, 760, 139, - 758, 759, 765, 761, 762, 764, 766, 768, 769, 140, - 770, 771, 141, 772, 773, 774, 775, 776, 777, 142, - 143, 778, 779, 780, 144, 145, 781, 783, 784, 788, - 789, 847, 1072, 851, 855, 859, 863, 879, 882, 886, - 935, 146, 952, 967, 971, 147, 986, 987, 988, 989, - 990, 991, 992, 993, 994, 995, 997, 998, 1008, 1011, - 148, 149, 150, 151, 152, 153, 1007, 1010, 1013, 1014, - 1016, 1017, 1020, 1019, 154, 1028, 1027, 1030, 1031, 1054, - 1032, 1033, 1034, 1035, 1036, 1037, 1040, 1041, 1042, 1048, - 1050, 1055, 155, 1056, 1058, 1066, 1067, 1068, 1069, 1077, - 1088, 1076, 1090, 1081, 1080, 1079, 1082, 1084, 1085, 1086, - 1087, 1092, 1091, 1093, 1098, 1094, 1095, 1101, 1096, 1097, - 1102, 1100, 1099, 1103, 1104, 1189, 1190, 1191, 1192, 1200, - 1201, 1193, 256, 1202, 1196, 352, 1204, 1210, 372, 1212, - 1232, 1114, 374, 1194, 375, 260, 1164, 1197, 261, 326, - 299, 1170, 390, 366, 1118, 1198, 386, 1119, 301, 1153, - 262, 257, 263, 1203, 1172, 1211, 907, 328, 297, 1120, - 1115, 1121, 1205, 1209, 921, 1165, 921, 1152, 264, 265, - 266, 1227, 1171, 1228, 913, 327, 1217, 1122, 1123, 1124, - 1229, 267, 925, 959, 925, 1230, 300, 1233, 308, 367, - 1125, 943, 387, 353, 1219, 1154, 373, 1236, 302, 1142, - 1173, 1259, 268, 329, 1169, 303, 316, 1155, 1253, 304, - 1237, 1126, 1174, 1238, 1156, 333, 1239, 1240, 1157, 1175, - 914, 1241, 334, 1176, 311, 258, 335, 259, 926, 283, - 926, 1145, 1242, 1247, 1116, 1248, 1117, 944, 1141, 1166, - 1220, 1167, 269, 1168, 1218, 270, 271, 272, 273, 274, - 275, 1127, 317, 276, 1128, 1129, 1130, 1131, 1132, 1133, - 277, 278, 1134, 279, 280, 281, 282, 293, 294, 1135, - 1136, 295, 1137, 1138, 1139, 1140, 1147, 1148, 1146, 1254, - 1149, 1260, 1261, 1262, 1270, 1275, 1283, 1249, 309, 1284, - 1300, 1302, 1349, 1312, 1314, 1315, 1316, 1317, 793, 1351, - 1250, 1319, 1326, 1330, 1348, 1352, 1353, 1369, 1373, 1381, - 1382, 791, 782, 1268, 1269, 1107, 1083, 1105, 642, 1199, - 1272, 1279, 650, 974, 1304, 1285, 1301, 1305, 1313, 1160, - 1324, 1325, 1188, 1273, 1187, 310, 1371, 1370, 1372, 1109, - 1379, 1380, 1108, 1384, 1385, 689, 661, 1195, 1282, 1159, - 1110, 1111, 686, 1186, 1184, 681, 1113, 1235, 1234, 1112, - 1185, 664, 673, 1286, 1207, 1208, 1318, 1206, 1114, 1368, - 1383, 951, 1213, 792, 1164, 1303, 698, 1226, 1346, 1170, - 1374, 1118, 0, 1291, 1119, 0, 1153, 1231, 0, 0, - 1217, 0, 1172, 701, 0, 0, 1120, 1115, 1121, 0, - 0, 1292, 0, 1165, 1152, 0, 0, 0, 1219, 0, - 1171, 0, 0, 0, 1122, 1123, 1124, 0, 0, 0, - 0, 0, 0, 1291, 0, 0, 0, 1125, 0, 0, - 0, 0, 1154, 0, 0, 0, 1142, 0, 1173, 0, - 0, 1292, 1169, 0, 1155, 0, 0, 1293, 1126, 0, - 1174, 1156, 0, 0, 1220, 1157, 0, 1175, 1218, 0, - 1359, 1176, 0, 0, 0, 0, 0, 0, 1145, 0, - 0, 1116, 0, 1117, 0, 1141, 0, 1166, 1362, 1167, - 0, 1168, 0, 0, 0, 0, 0, 1293, 1127, 0, - 1359, 1128, 1129, 1130, 1131, 1132, 1133, 0, 0, 1134, - 0, 0, 0, 0, 0, 0, 1135, 1136, 1362, 1137, - 1138, 1139, 1140, 1147, 1148, 1146, 0, 1149, 0, 0, - 0, 0, 0, 0, 1363, 91, 92, 93, 94, 95, - 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 156, 234, 256, 308, 326, 78, 352, 373, 392, 405, + 344, 927, 301, 375, 928, 260, 376, 929, 261, 244, + 299, 316, 328, 851, 366, 388, 767, 406, 1148, 1149, + 262, 263, 264, 771, 1163, 28, 790, 40, 297, 311, + 327, 345, 736, 353, 374, 390, 391, 430, 42, 265, + 266, 267, 431, 1365, 785, 44, 29, 46, 30, 309, + 31, 1292, 1366, 390, 391, 245, 300, 317, 329, 48, + 367, 389, 50, 407, 718, 719, 720, 721, 302, 268, + 333, 81, 269, 1365, 52, 303, 126, 334, 54, 304, + 56, 335, 1366, 310, 84, 346, 501, 347, 348, 418, + 419, 502, 349, 350, 351, 257, 58, 258, 60, 259, + 227, 228, 736, 722, 229, 132, 133, 230, 231, 232, + 233, 1026, 283, 62, 1027, 270, 271, 155, 1029, 272, + 273, 1030, 424, 274, 510, 132, 133, 275, 425, 511, + 276, 277, 426, 278, 279, 280, 1069, 281, 282, 1070, + 427, 293, 522, 132, 133, 294, 428, 523, 435, 295, + 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, + 815, 816, 817, 818, 819, 1269, 1270, 1271, 820, 821, + 822, 823, 824, 825, 127, 526, 536, 1293, 1294, 1295, + 527, 909, 910, 911, 1248, 1249, 1250, 91, 92, 93, + 94, 95, 96, 791, 306, 132, 133, 557, 567, 132, + 133, 436, 558, 568, 346, 253, 806, 807, 571, 254, + 307, 758, 759, 572, 155, 960, 961, 962, 963, 755, + 756, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 437, 155, 441, 155, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 442, 246, 247, 248, 446, + 127, 447, 155, 448, 1339, 1148, 1149, 1340, 1341, 1342, + 1343, 1163, 129, 130, 32, 33, 34, 35, 449, 249, + 450, 132, 133, 250, 251, 252, 134, 135, 136, 132, + 133, 253, 451, 132, 133, 254, 1333, 139, 452, 1334, + 453, 93, 94, 95, 96, 255, 799, 800, 501, 537, + 93, 94, 95, 980, 155, 454, 571, 538, 155, 1111, + 346, 981, 927, 455, 927, 928, 510, 928, 929, 456, + 929, 982, 985, 101, 102, 103, 458, 986, 459, 460, + 132, 133, 1008, 155, 1362, 1363, 461, 1009, 462, 822, + 823, 824, 944, 945, 946, 1008, 546, 466, 148, 149, + 1010, 126, 127, 346, 1043, 1048, 573, 574, 467, 1044, + 1049, 127, 895, 896, 897, 898, 899, 900, 468, 469, + 1056, 553, 473, 132, 133, 1057, 872, 873, 874, 875, + 155, 876, 132, 133, 1166, 1167, 1168, 479, 155, 480, + 1065, 318, 947, 132, 133, 1066, 481, 487, 495, 319, + 320, 321, 322, 323, 324, 325, 346, 368, 347, 348, + 369, 370, 371, 1219, 567, 1220, 1221, 1075, 1008, 1067, + 522, 547, 1076, 1256, 156, 1257, 132, 133, 496, 1260, + 575, 497, 557, 234, 1261, 372, 920, 1268, 500, 155, + 921, 922, 923, 924, 506, 256, 507, 1056, 1282, 308, + 925, 244, 1276, 1283, 526, 301, 508, 1315, 260, 1285, + 326, 261, 1316, 299, 1360, 554, 1382, 316, 509, 1361, + 352, 1383, 518, 262, 263, 264, 525, 373, 328, 541, + 545, 297, 155, 375, 549, 311, 376, 550, 366, 551, + 405, 155, 265, 266, 267, 388, 327, 245, 730, 731, + 732, 733, 155, 559, 561, 309, 563, 353, 406, 300, + 564, 570, 576, 317, 374, 577, 578, 579, 580, 581, + 582, 302, 268, 583, 329, 269, 584, 585, 303, 586, + 587, 588, 304, 589, 367, 155, 333, 590, 591, 310, + 592, 389, 593, 334, 132, 133, 596, 335, 257, 602, + 258, 594, 259, 597, 407, 595, 605, 608, 598, 609, + 599, 600, 606, 601, 603, 283, 610, 607, 270, 271, + 604, 611, 272, 273, 612, 613, 274, 615, 616, 614, + 275, 617, 618, 276, 277, 619, 278, 279, 280, 620, + 281, 282, 621, 622, 293, 623, 1286, 624, 294, 625, + 626, 627, 295, 628, 629, 630, 631, 397, 398, 399, + 400, 401, 402, 403, 404, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 632, 633, + 156, 634, 234, 635, 636, 637, 638, 795, 639, 640, + 643, 644, 641, 646, 647, 642, 648, 649, 650, 651, + 244, 654, 652, 155, 655, 656, 657, 658, 659, 660, + 661, 662, 663, 665, 668, 666, 669, 912, 926, 670, + 671, 405, 672, 673, 674, 964, 675, 679, 677, 678, + 680, 681, 682, 683, 87, 918, 930, 88, 948, 406, + 685, 686, 687, 688, 689, 691, 245, 692, 695, 89, + 694, 696, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 697, 698, 699, 700, 701, 703, 704, + 706, 711, 707, 793, 708, 709, 710, 712, 713, 714, + 715, 919, 931, 716, 949, 407, 726, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 717, 724, 725, 126, 127, 727, 728, 729, + 735, 30, 738, 739, 740, 741, 742, 128, 129, 130, + 743, 744, 745, 746, 131, 751, 747, 132, 133, 748, + 749, 750, 134, 135, 136, 137, 138, 752, 753, 761, + 764, 762, 763, 139, 769, 765, 766, 768, 794, 770, + 772, 852, 856, 140, 860, 773, 141, 774, 775, 776, + 864, 777, 868, 142, 143, 884, 778, 779, 144, 145, + 780, 781, 782, 783, 784, 786, 788, 789, 887, 891, + 940, 957, 972, 976, 991, 146, 992, 993, 994, 147, + 995, 996, 997, 998, 999, 1000, 1002, 1003, 1013, 1093, + 1012, 1016, 1015, 1018, 148, 149, 150, 151, 152, 153, + 1019, 1021, 1022, 1025, 1024, 1033, 787, 1032, 154, 1035, + 1036, 1059, 1037, 1038, 1039, 1040, 1041, 1042, 1045, 1046, + 1047, 1053, 1055, 1060, 1077, 1061, 155, 1063, 1071, 1072, + 1073, 1074, 1082, 1242, 1081, 1094, 1086, 1085, 1084, 1087, + 1089, 1090, 1091, 1092, 1096, 1103, 1095, 1106, 1107, 1097, + 1098, 1099, 1100, 1101, 1102, 1108, 1105, 1104, 1109, 1194, + 1195, 1196, 1197, 1205, 1198, 1199, 1206, 256, 1207, 1209, + 352, 1215, 1217, 373, 1202, 1203, 1119, 301, 1208, 375, + 260, 1169, 376, 261, 326, 299, 1175, 392, 366, 1123, + 1201, 388, 1124, 1210, 1158, 262, 263, 264, 1214, 1177, + 1216, 912, 328, 297, 1125, 1126, 1127, 353, 1232, 926, + 374, 926, 1157, 1147, 265, 266, 267, 1176, 1174, 918, + 327, 1222, 1233, 1128, 1129, 1130, 1237, 930, 964, 930, + 1238, 300, 1150, 308, 367, 1241, 948, 389, 1258, 1224, + 1159, 1234, 1235, 302, 268, 1178, 1259, 269, 329, 1243, + 303, 316, 1160, 1131, 304, 1244, 1132, 1179, 1223, 1161, + 333, 1245, 1246, 1162, 1180, 919, 1151, 334, 1181, 311, + 257, 335, 258, 931, 259, 931, 1247, 1252, 1253, 1120, + 1254, 1121, 949, 1122, 1170, 1225, 1171, 283, 1172, 309, + 270, 271, 1255, 1264, 272, 273, 1146, 317, 274, 1133, + 1134, 1173, 275, 1135, 1136, 276, 277, 1137, 278, 279, + 280, 1138, 281, 282, 1139, 1140, 293, 1141, 1142, 1143, + 294, 1144, 1145, 310, 295, 1152, 1265, 1266, 1267, 1153, + 1275, 1280, 1288, 1154, 1289, 1305, 1307, 1327, 1317, 1319, + 1320, 1321, 1273, 1322, 1353, 1274, 1331, 1324, 1354, 1335, + 1356, 1357, 1358, 1374, 1378, 1386, 1277, 1284, 1387, 645, + 796, 653, 1088, 1112, 1110, 1309, 1290, 1165, 979, 1306, + 1310, 1318, 1329, 1330, 1204, 798, 1376, 1192, 1278, 1375, + 1377, 1384, 1200, 1385, 1389, 1193, 1390, 1114, 1287, 1113, + 664, 1164, 693, 684, 1118, 1116, 1115, 1239, 1117, 690, + 1240, 667, 1291, 1191, 1213, 1212, 1323, 1373, 676, 1211, + 1189, 1190, 1388, 1119, 702, 956, 797, 1218, 1351, 1169, + 705, 1308, 1379, 1231, 1175, 0, 1123, 0, 1296, 1124, + 0, 1158, 1236, 0, 0, 1222, 0, 1177, 0, 0, + 0, 1125, 1126, 1127, 0, 0, 1297, 0, 0, 1157, + 1147, 0, 0, 1224, 0, 1176, 1174, 0, 0, 0, + 1128, 1129, 1130, 0, 0, 0, 0, 0, 1296, 1150, + 0, 0, 1223, 0, 0, 0, 0, 1159, 0, 0, + 0, 0, 0, 1178, 0, 0, 1297, 0, 0, 1160, + 1131, 0, 1298, 1132, 0, 1179, 1161, 0, 0, 1225, + 1162, 0, 1180, 1151, 0, 1364, 1181, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1120, 0, 1121, 0, + 1122, 0, 1170, 1367, 1171, 0, 1172, 0, 0, 0, + 0, 0, 1298, 1146, 0, 1364, 1133, 1134, 0, 1173, + 1135, 1136, 0, 0, 1137, 0, 0, 0, 1138, 0, + 0, 1139, 1140, 1367, 1141, 1142, 1143, 0, 1144, 1145, + 0, 0, 1152, 0, 0, 0, 1153, 0, 0, 1368, + 1154, 91, 92, 93, 94, 95, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1363, 0, 0, 0, 0, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 0, - 0, 0, 0, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 0, 0, 0, 127, 346, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1368, + 0, 0, 0, 0, 0, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 0, 0, 0, 0, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 0, 0, 0, 0, 127, 346, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 129, 130, 0, 0, + 0, 0, 0, 0, 0, 132, 133, 0, 251, 0, + 134, 135, 136, 0, 0, 253, 0, 0, 0, 254, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 129, 130, 0, 0, 0, 0, 0, 0, 0, 132, - 133, 0, 251, 0, 134, 135, 136, 0, 0, 253, - 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 148, 149, 0, 0, + 0, 0, 148, 149, 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, 155 + 0, 0, 0, 0, 155 }; const short Dhcp4Parser::yycheck_[] = { 67, 68, 69, 70, 71, 64, 73, 74, 75, 76, - 72, 74, 741, 74, 711, 69, 741, 741, 69, 68, - 69, 70, 71, 1018, 73, 74, 1018, 76, 69, 658, - 69, 69, 69, 1018, 141, 142, 665, 18, 69, 70, - 71, 0, 187, 188, 189, 190, 619, 3, 69, 69, - 69, 223, 8, 5, 1347, 7, 1347, 9, 41, 42, - 10, 69, 55, 56, 57, 68, 69, 70, 71, 3, - 73, 74, 6, 76, 73, 74, 3, 93, 69, 6, - 71, 226, 69, 92, 1377, 69, 1377, 71, 7, 69, - 198, 71, 6, 201, 202, 203, 204, 113, 114, 115, - 7, 3, 3, 70, 7, 69, 8, 69, 124, 69, - 15, 16, 128, 129, 19, 688, 223, 22, 23, 24, - 25, 3, 69, 7, 6, 69, 69, 69, 69, 69, - 69, 114, 115, 69, 144, 145, 146, 147, 148, 149, - 69, 69, 7, 69, 69, 69, 69, 69, 69, 7, - 70, 69, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 12, 13, 7, - 58, 59, 60, 61, 62, 63, 7, 114, 115, 94, - 95, 96, 97, 98, 99, 100, 169, 170, 206, 207, - 208, 209, 7, 30, 31, 32, 33, 34, 35, 114, - 115, 94, 7, 3, 185, 223, 94, 223, 8, 114, - 115, 141, 142, 3, 40, 152, 153, 154, 8, 3, - 3, 114, 115, 3, 8, 8, 6, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 7, 114, 115, - 223, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 7, 89, 90, 91, 4, 93, 3, 8, 3, - 1255, 3, 8, 1255, 8, 3, 8, 4, 105, 106, - 1255, 223, 224, 225, 226, 112, 4, 114, 115, 116, - 117, 118, 119, 120, 121, 3, 223, 124, 114, 115, - 8, 128, 4, 130, 4, 3, 3, 173, 174, 175, - 8, 138, 17, 18, 197, 3, 199, 200, 223, 1006, - 8, 3, 32, 33, 34, 35, 8, 4, 223, 32, - 33, 34, 1051, 8, 1053, 4, 1051, 1051, 1053, 1053, - 223, 132, 133, 134, 135, 223, 137, 4, 3, 3, - 166, 167, 168, 8, 64, 65, 66, 223, 3, 20, - 21, 3, 3, 8, 191, 192, 8, 8, 27, 28, - 4, 60, 61, 62, 423, 424, 3, 158, 159, 160, - 3, 8, 92, 93, 94, 8, 4, 4, 4, 3, - 93, 40, 114, 115, 8, 3, 223, 3, 3, 8, - 8, 3, 8, 8, 114, 115, 8, 223, 3, 3, - 8, 114, 115, 8, 8, 125, 126, 127, 3, 3, - 123, 4, 3, 8, 8, 114, 115, 8, 131, 132, - 133, 134, 135, 136, 137, 3, 107, 108, 109, 110, - 8, 4, 499, 4, 4, 94, 4, 96, 97, 4, - 4, 508, 101, 102, 103, 177, 178, 179, 180, 181, - 182, 183, 184, 520, 4, 114, 115, 524, 157, 508, - 4, 4, 161, 162, 163, 164, 520, 4, 535, 520, - 4, 520, 171, 4, 4, 524, 4, 4, 545, 520, - 4, 520, 520, 520, 551, 4, 535, 4, 551, 520, - 551, 223, 4, 524, 4, 4, 545, 564, 4, 520, - 520, 520, 551, 223, 535, 508, 4, 4, 4, 4, - 223, 4, 520, 4, 4, 564, 4, 520, 4, 4, - 4, 524, 3, 223, 223, 8, 4, 4, 4, 520, - 4, 4, 535, 520, 4, 4, 520, 4, 4, 4, - 520, 4, 545, 226, 535, 4, 545, 4, 551, 226, - 226, 535, 551, 226, 224, 535, 520, 524, 520, 4, - 520, 564, 4, 224, 223, 225, 224, 224, 224, 4, - 224, 4, 225, 520, 4, 225, 520, 520, 520, 520, - 520, 520, 224, 226, 520, 224, 224, 4, 224, 4, - 225, 520, 520, 4, 520, 520, 520, 520, 520, 520, - 4, 226, 520, 226, 524, 226, 226, 1236, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 222, 4, 4, 226, 224, 226, 4, 4, 4, 226, - 226, 4, 4, 4, 226, 4, 703, 4, 705, 224, - 4, 4, 4, 702, 4, 4, 4, 4, 4, 226, - 226, 226, 4, 4, 4, 4, 705, 226, 224, 226, - 4, 224, 4, 4, 4, 4, 4, 224, 4, 4, - 4, 4, 224, 740, 741, 4, 4, 744, 4, 4, - 4, 748, 4, 224, 4, 4, 4, 4, 4, 4, - 11, 740, 741, 14, 743, 744, 4, 226, 4, 4, - 226, 226, 705, 226, 4, 26, 226, 4, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 224, - 4, 224, 224, 4, 4, 4, 4, 226, 5, 165, - 224, 7, 7, 7, 7, 7, 223, 740, 741, 7, - 743, 744, 5, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 223, 223, - 223, 92, 93, 223, 223, 5, 5, 223, 5, 7, - 223, 5, 5, 104, 105, 106, 5, 5, 5, 223, - 111, 7, 7, 114, 115, 7, 7, 7, 119, 120, - 121, 122, 123, 223, 5, 7, 5, 223, 5, 130, - 223, 223, 7, 223, 223, 223, 223, 223, 223, 140, - 223, 223, 143, 223, 223, 223, 223, 223, 223, 150, - 151, 223, 223, 223, 155, 156, 223, 223, 223, 186, - 5, 7, 223, 7, 7, 7, 7, 7, 7, 7, - 7, 172, 7, 7, 139, 176, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, - 191, 192, 193, 194, 195, 196, 6, 6, 6, 3, - 6, 3, 3, 6, 205, 3, 6, 6, 3, 6, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 3, 223, 4, 4, 4, 4, 4, 4, 3, - 224, 6, 224, 4, 6, 8, 4, 4, 4, 4, - 4, 224, 226, 224, 4, 224, 224, 4, 224, 224, - 4, 224, 226, 4, 4, 224, 224, 224, 224, 4, - 4, 224, 1009, 4, 226, 1012, 4, 4, 1015, 4, - 6, 1018, 1015, 224, 1015, 1009, 1023, 224, 1009, 1026, - 1009, 1023, 1029, 1012, 1018, 224, 1015, 1018, 1009, 1018, - 1009, 1009, 1009, 224, 1023, 224, 1043, 1026, 1009, 1018, - 1018, 1018, 226, 226, 1051, 1023, 1053, 1018, 1009, 1009, - 1009, 226, 1023, 226, 1043, 1026, 1063, 1018, 1018, 1018, - 226, 1009, 1051, 1070, 1053, 226, 1009, 3, 1075, 1012, - 1018, 1060, 1015, 1012, 1063, 1018, 1015, 4, 1009, 1018, - 1023, 4, 1009, 1026, 1023, 1009, 1075, 1018, 8, 1009, - 223, 1018, 1023, 223, 1018, 1026, 223, 223, 1018, 1023, - 1043, 223, 1026, 1023, 1075, 1009, 1026, 1009, 1051, 1009, - 1053, 1018, 223, 223, 1018, 223, 1018, 1060, 1018, 1023, - 1063, 1023, 1009, 1023, 1063, 1009, 1009, 1009, 1009, 1009, - 1009, 1018, 1075, 1009, 1018, 1018, 1018, 1018, 1018, 1018, - 1009, 1009, 1018, 1009, 1009, 1009, 1009, 1009, 1009, 1018, - 1018, 1009, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 8, - 1018, 8, 3, 8, 7, 4, 4, 223, 1075, 4, - 4, 4, 3, 5, 4, 4, 4, 4, 705, 4, - 223, 7, 5, 7, 6, 4, 4, 4, 4, 4, - 4, 703, 688, 223, 223, 1008, 980, 1003, 499, 1043, - 223, 223, 508, 789, 223, 226, 224, 223, 223, 1021, - 223, 223, 1031, 1212, 1029, 1075, 224, 226, 224, 1011, - 223, 223, 1009, 223, 223, 554, 520, 1038, 1255, 1020, - 1012, 1014, 551, 1028, 1024, 545, 1017, 1077, 1075, 1015, - 1026, 524, 535, 1261, 1053, 1055, 1310, 1051, 1255, 1349, - 1377, 744, 1060, 704, 1261, 1277, 564, 1064, 1328, 1261, - 1355, 1255, -1, 1270, 1255, -1, 1255, 1070, -1, -1, - 1277, -1, 1261, 568, -1, -1, 1255, 1255, 1255, -1, - -1, 1270, -1, 1261, 1255, -1, -1, -1, 1277, -1, - 1261, -1, -1, -1, 1255, 1255, 1255, -1, -1, -1, - -1, -1, -1, 1310, -1, -1, -1, 1255, -1, -1, - -1, -1, 1255, -1, -1, -1, 1255, -1, 1261, -1, - -1, 1310, 1261, -1, 1255, -1, -1, 1270, 1255, -1, - 1261, 1255, -1, -1, 1277, 1255, -1, 1261, 1277, -1, - 1347, 1261, -1, -1, -1, -1, -1, -1, 1255, -1, - -1, 1255, -1, 1255, -1, 1255, -1, 1261, 1347, 1261, - -1, 1261, -1, -1, -1, -1, -1, 1310, 1255, -1, - 1377, 1255, 1255, 1255, 1255, 1255, 1255, -1, -1, 1255, - -1, -1, -1, -1, -1, -1, 1255, 1255, 1377, 1255, - 1255, 1255, 1255, 1255, 1255, 1255, -1, 1255, -1, -1, - -1, -1, -1, -1, 1347, 30, 31, 32, 33, 34, - 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 72, 745, 69, 74, 745, 69, 74, 745, 69, 68, + 69, 70, 71, 715, 73, 74, 661, 76, 1023, 1023, + 69, 69, 69, 668, 1023, 0, 18, 7, 69, 70, + 71, 40, 622, 73, 74, 141, 142, 3, 7, 69, + 69, 69, 8, 1352, 689, 7, 5, 7, 7, 70, + 9, 40, 1352, 141, 142, 68, 69, 70, 71, 7, + 73, 74, 7, 76, 187, 188, 189, 190, 69, 69, + 71, 223, 69, 1382, 7, 69, 92, 71, 7, 69, + 7, 71, 1382, 70, 10, 94, 3, 96, 97, 12, + 13, 8, 101, 102, 103, 69, 7, 69, 7, 69, + 15, 16, 692, 226, 19, 114, 115, 22, 23, 24, + 25, 3, 69, 7, 6, 69, 69, 223, 3, 69, + 69, 6, 6, 69, 3, 114, 115, 69, 3, 8, + 69, 69, 4, 69, 69, 69, 3, 69, 69, 6, + 8, 69, 3, 114, 115, 69, 3, 8, 4, 69, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 158, 159, 160, 58, 59, + 60, 61, 62, 63, 93, 3, 8, 166, 167, 168, + 8, 152, 153, 154, 55, 56, 57, 30, 31, 32, + 33, 34, 35, 185, 113, 114, 115, 3, 3, 114, + 115, 4, 8, 8, 94, 124, 41, 42, 3, 128, + 129, 20, 21, 8, 223, 206, 207, 208, 209, 17, + 18, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 4, 223, 4, 223, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 4, 89, 90, 91, 4, + 93, 4, 223, 4, 198, 1260, 1260, 201, 202, 203, + 204, 1260, 105, 106, 223, 224, 225, 226, 4, 112, + 4, 114, 115, 116, 117, 118, 119, 120, 121, 114, + 115, 124, 4, 114, 115, 128, 3, 130, 4, 6, + 4, 32, 33, 34, 35, 138, 27, 28, 3, 3, + 32, 33, 34, 8, 223, 4, 3, 8, 223, 1011, + 94, 8, 1056, 4, 1058, 1056, 3, 1058, 1056, 4, + 1058, 8, 3, 64, 65, 66, 4, 8, 4, 4, + 114, 115, 3, 223, 169, 170, 4, 8, 4, 60, + 61, 62, 173, 174, 175, 3, 8, 4, 191, 192, + 8, 92, 93, 94, 3, 3, 425, 426, 4, 8, + 8, 93, 144, 145, 146, 147, 148, 149, 4, 4, + 3, 8, 4, 114, 115, 8, 132, 133, 134, 135, + 223, 137, 114, 115, 125, 126, 127, 4, 223, 4, + 3, 123, 223, 114, 115, 8, 4, 4, 4, 131, + 132, 133, 134, 135, 136, 137, 94, 95, 96, 97, + 98, 99, 100, 197, 3, 199, 200, 3, 3, 8, + 3, 3, 8, 8, 501, 8, 114, 115, 4, 3, + 223, 4, 3, 510, 8, 123, 157, 8, 4, 223, + 161, 162, 163, 164, 4, 522, 4, 3, 3, 526, + 171, 510, 8, 8, 3, 522, 4, 3, 522, 8, + 537, 522, 8, 522, 3, 3, 3, 526, 4, 8, + 547, 8, 4, 522, 522, 522, 4, 554, 537, 4, + 4, 522, 223, 554, 4, 526, 554, 4, 547, 4, + 567, 223, 522, 522, 522, 554, 537, 510, 107, 108, + 109, 110, 223, 4, 4, 526, 4, 547, 567, 522, + 4, 4, 4, 526, 554, 4, 4, 4, 226, 226, + 226, 522, 522, 4, 537, 522, 4, 4, 522, 224, + 226, 4, 522, 4, 547, 223, 537, 4, 224, 526, + 224, 554, 224, 537, 114, 115, 226, 537, 522, 4, + 522, 224, 522, 225, 567, 224, 226, 4, 225, 4, + 225, 224, 226, 224, 224, 522, 4, 226, 522, 522, + 224, 226, 522, 522, 226, 225, 522, 4, 4, 226, + 522, 4, 224, 522, 522, 4, 522, 522, 522, 4, + 522, 522, 4, 4, 522, 4, 1241, 226, 522, 226, + 226, 4, 522, 4, 4, 4, 4, 177, 178, 179, + 180, 181, 182, 183, 184, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 224, 4, + 707, 4, 709, 4, 4, 4, 4, 706, 4, 226, + 4, 4, 226, 4, 4, 226, 4, 226, 226, 224, + 709, 4, 224, 223, 4, 4, 4, 4, 4, 224, + 4, 4, 4, 4, 4, 224, 4, 744, 745, 4, + 4, 748, 4, 4, 4, 752, 4, 224, 4, 4, + 4, 4, 4, 226, 11, 744, 745, 14, 747, 748, + 4, 226, 226, 226, 4, 4, 709, 4, 4, 26, + 226, 224, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 4, 224, 224, 4, 4, 4, 224, + 4, 223, 7, 186, 7, 7, 7, 223, 223, 7, + 7, 744, 745, 5, 747, 748, 5, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 223, 223, 223, 92, 93, 5, 5, 223, + 5, 7, 223, 5, 5, 5, 5, 104, 105, 106, + 7, 7, 7, 5, 111, 5, 7, 114, 115, 7, + 223, 223, 119, 120, 121, 122, 123, 7, 5, 223, + 5, 223, 223, 130, 7, 223, 223, 223, 5, 223, + 223, 7, 7, 140, 7, 223, 143, 223, 223, 223, + 7, 223, 7, 150, 151, 7, 223, 223, 155, 156, + 223, 223, 223, 223, 223, 223, 223, 223, 7, 7, + 7, 7, 7, 139, 4, 172, 4, 4, 4, 176, + 4, 4, 4, 4, 4, 4, 4, 4, 3, 224, + 6, 3, 6, 6, 191, 192, 193, 194, 195, 196, + 3, 6, 3, 3, 6, 3, 692, 6, 205, 6, + 3, 6, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 3, 223, 4, 223, 4, 4, 4, + 4, 4, 3, 223, 6, 226, 4, 6, 8, 4, + 4, 4, 4, 4, 226, 4, 224, 4, 4, 224, + 224, 224, 224, 224, 224, 4, 224, 226, 4, 224, + 224, 224, 224, 4, 224, 224, 4, 1014, 4, 4, + 1017, 4, 4, 1020, 224, 224, 1023, 1014, 224, 1020, + 1014, 1028, 1020, 1014, 1031, 1014, 1028, 1034, 1017, 1023, + 226, 1020, 1023, 226, 1023, 1014, 1014, 1014, 226, 1028, + 224, 1048, 1031, 1014, 1023, 1023, 1023, 1017, 226, 1056, + 1020, 1058, 1023, 1023, 1014, 1014, 1014, 1028, 1028, 1048, + 1031, 1068, 226, 1023, 1023, 1023, 6, 1056, 1075, 1058, + 3, 1014, 1023, 1080, 1017, 4, 1065, 1020, 8, 1068, + 1023, 226, 226, 1014, 1014, 1028, 8, 1014, 1031, 223, + 1014, 1080, 1023, 1023, 1014, 223, 1023, 1028, 1068, 1023, + 1031, 223, 223, 1023, 1028, 1048, 1023, 1031, 1028, 1080, + 1014, 1031, 1014, 1056, 1014, 1058, 223, 223, 223, 1023, + 223, 1023, 1065, 1023, 1028, 1068, 1028, 1014, 1028, 1080, + 1014, 1014, 223, 4, 1014, 1014, 1023, 1080, 1014, 1023, + 1023, 1028, 1014, 1023, 1023, 1014, 1014, 1023, 1014, 1014, + 1014, 1023, 1014, 1014, 1023, 1023, 1014, 1023, 1023, 1023, + 1014, 1023, 1023, 1080, 1014, 1023, 8, 3, 8, 1023, + 7, 4, 4, 1023, 4, 4, 4, 165, 5, 4, + 4, 4, 223, 4, 6, 223, 5, 7, 3, 7, + 4, 4, 4, 4, 4, 4, 223, 223, 4, 501, + 707, 510, 985, 1013, 1008, 223, 226, 1026, 794, 224, + 223, 223, 223, 223, 1048, 709, 224, 1034, 1217, 226, + 224, 223, 1043, 223, 223, 1036, 223, 1016, 1260, 1014, + 522, 1025, 557, 547, 1022, 1019, 1017, 1080, 1020, 554, + 1082, 526, 1266, 1033, 1060, 1058, 1315, 1354, 537, 1056, + 1029, 1031, 1382, 1260, 567, 748, 708, 1065, 1333, 1266, + 571, 1282, 1360, 1069, 1266, -1, 1260, -1, 1275, 1260, + -1, 1260, 1075, -1, -1, 1282, -1, 1266, -1, -1, + -1, 1260, 1260, 1260, -1, -1, 1275, -1, -1, 1260, + 1260, -1, -1, 1282, -1, 1266, 1266, -1, -1, -1, + 1260, 1260, 1260, -1, -1, -1, -1, -1, 1315, 1260, + -1, -1, 1282, -1, -1, -1, -1, 1260, -1, -1, + -1, -1, -1, 1266, -1, -1, 1315, -1, -1, 1260, + 1260, -1, 1275, 1260, -1, 1266, 1260, -1, -1, 1282, + 1260, -1, 1266, 1260, -1, 1352, 1266, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1260, -1, 1260, -1, + 1260, -1, 1266, 1352, 1266, -1, 1266, -1, -1, -1, + -1, -1, 1315, 1260, -1, 1382, 1260, 1260, -1, 1266, + 1260, 1260, -1, -1, 1260, -1, -1, -1, 1260, -1, + -1, 1260, 1260, 1382, 1260, 1260, 1260, -1, 1260, 1260, + -1, -1, 1260, -1, -1, -1, 1260, -1, -1, 1352, + 1260, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1377, -1, -1, -1, -1, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, - -1, -1, -1, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, -1, -1, -1, -1, 93, 94, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1382, + -1, -1, -1, -1, -1, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, -1, -1, -1, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + -1, -1, -1, -1, 93, 94, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 105, 106, -1, -1, + -1, -1, -1, -1, -1, 114, 115, -1, 117, -1, + 119, 120, 121, -1, -1, 124, -1, -1, -1, 128, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 105, 106, -1, -1, -1, -1, -1, -1, -1, 114, - 115, -1, 117, -1, 119, 120, 121, -1, -1, 124, - -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 191, 192, -1, -1, + -1, -1, 191, 192, -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, 223 + -1, -1, -1, -1, 223 }; const short @@ -6000,10 +6025,10 @@ namespace isc { namespace dhcp { 219, 220, 221, 222, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 5, 7, 9, 223, 224, 225, 226, 242, 243, 244, 249, - 7, 258, 7, 263, 7, 318, 7, 431, 7, 512, - 7, 529, 7, 463, 7, 469, 7, 493, 7, 407, - 7, 630, 7, 649, 250, 245, 259, 264, 319, 432, - 513, 530, 464, 470, 494, 408, 631, 650, 242, 251, + 7, 258, 7, 263, 7, 318, 7, 431, 7, 514, + 7, 531, 7, 463, 7, 469, 7, 493, 7, 407, + 7, 632, 7, 651, 250, 245, 259, 264, 319, 432, + 515, 532, 464, 470, 494, 408, 633, 652, 242, 251, 252, 223, 247, 248, 10, 260, 262, 11, 14, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 64, 65, 66, 67, 68, 69, 70, 71, 72, @@ -6017,124 +6042,125 @@ namespace isc { namespace dhcp { 292, 294, 296, 297, 298, 301, 302, 304, 306, 307, 308, 309, 310, 311, 312, 313, 314, 332, 334, 342, 344, 385, 394, 401, 415, 425, 449, 450, 451, 453, - 461, 487, 519, 521, 523, 534, 536, 538, 561, 575, - 576, 578, 618, 628, 647, 656, 680, 15, 16, 19, + 461, 487, 521, 523, 525, 536, 538, 540, 563, 577, + 578, 580, 620, 630, 649, 658, 682, 15, 16, 19, 22, 23, 24, 25, 257, 316, 317, 320, 322, 325, - 328, 329, 330, 331, 519, 521, 89, 90, 91, 112, + 328, 329, 330, 331, 521, 523, 89, 90, 91, 112, 116, 117, 118, 124, 128, 138, 257, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 281, 284, 285, 286, 287, 288, 289, 292, 294, 296, 297, 298, 301, 302, 304, 306, 312, 433, 434, 435, 437, 439, 441, - 443, 445, 447, 449, 450, 451, 452, 487, 506, 519, - 521, 523, 534, 536, 538, 556, 113, 129, 257, 445, - 447, 487, 514, 515, 516, 518, 519, 521, 123, 131, - 132, 133, 134, 135, 136, 137, 257, 487, 519, 521, - 531, 532, 533, 534, 536, 538, 540, 542, 544, 546, - 548, 550, 552, 554, 461, 40, 94, 96, 97, 101, + 443, 445, 447, 449, 450, 451, 452, 487, 508, 521, + 523, 525, 536, 538, 540, 558, 113, 129, 257, 445, + 447, 487, 516, 517, 518, 520, 521, 523, 123, 131, + 132, 133, 134, 135, 136, 137, 257, 487, 521, 523, + 533, 534, 535, 536, 538, 540, 542, 544, 546, 548, + 550, 552, 554, 556, 461, 40, 94, 96, 97, 101, 102, 103, 257, 361, 471, 472, 473, 474, 475, 476, - 477, 479, 481, 483, 484, 486, 519, 521, 95, 98, - 99, 100, 257, 361, 475, 481, 495, 496, 497, 498, - 499, 501, 502, 503, 504, 505, 519, 521, 141, 142, - 257, 409, 410, 411, 413, 177, 178, 179, 180, 181, - 182, 183, 184, 257, 519, 521, 632, 633, 634, 635, - 637, 638, 640, 641, 642, 645, 12, 13, 651, 652, - 653, 655, 6, 3, 4, 8, 3, 261, 3, 8, - 648, 315, 335, 4, 4, 4, 535, 537, 539, 4, - 4, 333, 343, 345, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 279, 4, 4, 4, 4, - 4, 290, 293, 295, 4, 4, 4, 4, 426, 462, - 488, 4, 282, 299, 454, 520, 522, 4, 4, 4, - 386, 562, 524, 402, 416, 4, 395, 577, 579, 619, - 629, 303, 305, 4, 4, 4, 657, 681, 4, 3, - 8, 321, 323, 326, 4, 4, 4, 4, 3, 8, - 438, 440, 442, 507, 436, 444, 4, 448, 446, 557, - 3, 8, 517, 4, 3, 8, 555, 541, 543, 545, - 549, 547, 553, 551, 8, 3, 8, 478, 362, 4, - 482, 480, 485, 4, 8, 3, 500, 4, 4, 4, - 8, 3, 412, 414, 3, 8, 4, 636, 4, 639, - 4, 4, 643, 646, 3, 8, 654, 4, 3, 8, - 242, 242, 223, 4, 4, 4, 4, 226, 226, 226, - 4, 4, 4, 224, 226, 4, 4, 4, 224, 224, - 224, 224, 224, 226, 225, 225, 225, 224, 224, 4, - 224, 224, 226, 226, 226, 4, 4, 4, 226, 226, - 225, 226, 4, 4, 4, 224, 4, 4, 4, 4, - 4, 226, 226, 226, 4, 4, 4, 4, 4, 224, - 4, 4, 4, 4, 4, 4, 4, 226, 226, 226, - 4, 4, 266, 4, 4, 4, 226, 226, 224, 224, - 317, 4, 4, 4, 4, 4, 4, 224, 4, 4, - 4, 434, 4, 224, 515, 4, 4, 4, 4, 4, - 4, 4, 4, 533, 4, 4, 224, 4, 4, 4, - 226, 473, 4, 226, 226, 226, 497, 4, 4, 410, - 226, 4, 224, 4, 224, 224, 4, 4, 633, 4, - 224, 652, 4, 7, 7, 7, 7, 223, 223, 223, - 7, 7, 5, 223, 187, 188, 189, 190, 226, 291, - 223, 223, 5, 5, 5, 223, 107, 108, 109, 110, - 300, 5, 244, 246, 223, 5, 5, 5, 5, 7, - 7, 7, 5, 7, 7, 223, 223, 5, 7, 5, - 253, 17, 18, 324, 20, 21, 327, 223, 223, 223, - 5, 223, 223, 253, 223, 7, 223, 253, 223, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, - 223, 223, 246, 223, 223, 18, 185, 644, 186, 5, - 242, 265, 651, 316, 27, 28, 336, 337, 338, 340, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 58, 59, 60, 61, 62, - 63, 257, 350, 351, 352, 354, 356, 358, 360, 361, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 375, 376, 377, 379, 381, 383, 350, 7, 346, 347, - 348, 7, 427, 428, 429, 7, 465, 466, 467, 7, - 489, 490, 491, 7, 455, 456, 457, 132, 133, 134, - 135, 137, 387, 388, 389, 390, 391, 392, 393, 7, - 563, 564, 7, 525, 526, 527, 7, 403, 404, 405, - 144, 145, 146, 147, 148, 149, 417, 418, 419, 420, - 421, 422, 423, 424, 152, 153, 154, 257, 396, 397, - 398, 399, 400, 519, 521, 157, 161, 162, 163, 164, - 171, 257, 377, 379, 381, 519, 521, 584, 585, 586, - 589, 591, 593, 594, 595, 7, 580, 581, 582, 173, - 174, 175, 223, 519, 521, 620, 621, 622, 623, 625, - 626, 632, 7, 658, 659, 206, 207, 208, 209, 257, - 682, 683, 684, 685, 686, 687, 254, 7, 508, 509, - 510, 139, 558, 559, 346, 8, 8, 8, 339, 341, - 3, 8, 353, 355, 357, 359, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 373, 4, 4, 378, - 380, 382, 384, 3, 8, 8, 349, 6, 3, 430, - 6, 3, 468, 6, 3, 492, 6, 3, 458, 6, - 3, 3, 6, 565, 3, 6, 528, 6, 3, 406, - 6, 3, 4, 4, 4, 4, 4, 4, 3, 8, - 4, 4, 4, 3, 8, 587, 590, 592, 4, 596, - 4, 3, 8, 583, 6, 3, 4, 624, 4, 627, - 3, 8, 8, 660, 3, 6, 4, 4, 4, 4, - 3, 8, 223, 255, 256, 511, 6, 3, 560, 8, - 6, 4, 4, 337, 4, 4, 4, 4, 224, 226, - 224, 226, 224, 224, 224, 224, 224, 224, 4, 226, - 224, 4, 4, 4, 4, 351, 350, 348, 433, 429, - 471, 467, 495, 491, 257, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 281, 284, 285, 286, 287, - 288, 289, 292, 294, 296, 297, 298, 301, 302, 304, - 306, 312, 361, 425, 443, 445, 447, 449, 450, 451, - 459, 460, 487, 519, 521, 534, 536, 538, 556, 457, - 388, 125, 126, 127, 257, 267, 268, 269, 312, 361, - 461, 487, 519, 521, 534, 536, 538, 566, 567, 568, - 569, 570, 572, 574, 564, 531, 527, 409, 405, 224, - 224, 224, 224, 224, 224, 418, 226, 224, 224, 397, - 4, 4, 4, 224, 4, 226, 585, 584, 582, 226, - 4, 224, 4, 621, 197, 199, 200, 257, 361, 519, - 521, 661, 662, 663, 664, 666, 659, 226, 226, 226, - 226, 683, 6, 3, 514, 510, 4, 223, 223, 223, - 223, 223, 223, 55, 56, 57, 374, 223, 223, 223, - 223, 8, 8, 8, 8, 3, 8, 571, 573, 4, - 8, 3, 8, 8, 158, 159, 160, 588, 223, 223, - 7, 8, 223, 242, 667, 4, 665, 3, 8, 223, - 8, 253, 460, 4, 4, 226, 568, 40, 166, 167, - 168, 257, 519, 521, 597, 598, 599, 602, 604, 606, - 4, 224, 4, 662, 223, 223, 600, 603, 605, 607, - 3, 8, 5, 223, 4, 4, 4, 4, 598, 7, - 668, 669, 165, 601, 223, 223, 5, 670, 3, 6, - 7, 608, 609, 610, 198, 201, 202, 203, 204, 671, - 672, 673, 675, 676, 677, 678, 669, 611, 6, 3, - 674, 4, 4, 4, 679, 3, 8, 169, 170, 257, - 354, 356, 519, 521, 612, 613, 614, 616, 610, 4, - 226, 224, 224, 4, 672, 615, 617, 3, 8, 223, - 223, 4, 4, 613, 223, 223 + 477, 479, 481, 483, 484, 486, 521, 523, 95, 98, + 99, 100, 123, 257, 361, 475, 481, 495, 496, 497, + 498, 499, 501, 502, 503, 504, 505, 506, 521, 523, + 141, 142, 257, 409, 410, 411, 413, 177, 178, 179, + 180, 181, 182, 183, 184, 257, 521, 523, 634, 635, + 636, 637, 639, 640, 642, 643, 644, 647, 12, 13, + 653, 654, 655, 657, 6, 3, 4, 8, 3, 261, + 3, 8, 650, 315, 335, 4, 4, 4, 537, 539, + 541, 4, 4, 333, 343, 345, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 279, 4, 4, + 4, 4, 4, 290, 293, 295, 4, 4, 4, 4, + 426, 462, 488, 4, 282, 299, 454, 522, 524, 4, + 4, 4, 386, 564, 526, 402, 416, 4, 395, 579, + 581, 621, 631, 303, 305, 4, 4, 4, 659, 683, + 4, 3, 8, 321, 323, 326, 4, 4, 4, 4, + 3, 8, 438, 440, 442, 509, 436, 444, 4, 448, + 446, 559, 3, 8, 519, 4, 3, 8, 557, 543, + 545, 547, 551, 549, 555, 553, 8, 3, 8, 478, + 362, 4, 482, 480, 485, 4, 8, 3, 500, 4, + 4, 4, 507, 8, 3, 412, 414, 3, 8, 4, + 638, 4, 641, 4, 4, 645, 648, 3, 8, 656, + 4, 3, 8, 242, 242, 223, 4, 4, 4, 4, + 226, 226, 226, 4, 4, 4, 224, 226, 4, 4, + 4, 224, 224, 224, 224, 224, 226, 225, 225, 225, + 224, 224, 4, 224, 224, 226, 226, 226, 4, 4, + 4, 226, 226, 225, 226, 4, 4, 4, 224, 4, + 4, 4, 4, 4, 226, 226, 226, 4, 4, 4, + 4, 4, 224, 4, 4, 4, 4, 4, 4, 4, + 226, 226, 226, 4, 4, 266, 4, 4, 4, 226, + 226, 224, 224, 317, 4, 4, 4, 4, 4, 4, + 224, 4, 4, 4, 434, 4, 224, 517, 4, 4, + 4, 4, 4, 4, 4, 4, 535, 4, 4, 224, + 4, 4, 4, 226, 473, 4, 226, 226, 226, 4, + 497, 4, 4, 410, 226, 4, 224, 4, 224, 224, + 4, 4, 635, 4, 224, 654, 4, 7, 7, 7, + 7, 223, 223, 223, 7, 7, 5, 223, 187, 188, + 189, 190, 226, 291, 223, 223, 5, 5, 5, 223, + 107, 108, 109, 110, 300, 5, 244, 246, 223, 5, + 5, 5, 5, 7, 7, 7, 5, 7, 7, 223, + 223, 5, 7, 5, 253, 17, 18, 324, 20, 21, + 327, 223, 223, 223, 5, 223, 223, 253, 223, 7, + 223, 253, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 253, 223, 246, 223, 223, + 18, 185, 646, 186, 5, 242, 265, 653, 316, 27, + 28, 336, 337, 338, 340, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 58, 59, 60, 61, 62, 63, 257, 350, 351, 352, + 354, 356, 358, 360, 361, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 375, 376, 377, 379, 381, + 383, 350, 7, 346, 347, 348, 7, 427, 428, 429, + 7, 465, 466, 467, 7, 489, 490, 491, 7, 455, + 456, 457, 132, 133, 134, 135, 137, 387, 388, 389, + 390, 391, 392, 393, 7, 565, 566, 7, 527, 528, + 529, 7, 403, 404, 405, 144, 145, 146, 147, 148, + 149, 417, 418, 419, 420, 421, 422, 423, 424, 152, + 153, 154, 257, 396, 397, 398, 399, 400, 521, 523, + 157, 161, 162, 163, 164, 171, 257, 377, 379, 381, + 521, 523, 586, 587, 588, 591, 593, 595, 596, 597, + 7, 582, 583, 584, 173, 174, 175, 223, 521, 523, + 622, 623, 624, 625, 627, 628, 634, 7, 660, 661, + 206, 207, 208, 209, 257, 684, 685, 686, 687, 688, + 689, 254, 7, 510, 511, 512, 139, 560, 561, 346, + 8, 8, 8, 339, 341, 3, 8, 353, 355, 357, + 359, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 373, 4, 4, 378, 380, 382, 384, 3, 8, + 8, 349, 6, 3, 430, 6, 3, 468, 6, 3, + 492, 6, 3, 458, 6, 3, 3, 6, 567, 3, + 6, 530, 6, 3, 406, 6, 3, 4, 4, 4, + 4, 4, 4, 3, 8, 4, 4, 4, 3, 8, + 589, 592, 594, 4, 598, 4, 3, 8, 585, 6, + 3, 4, 626, 4, 629, 3, 8, 8, 662, 3, + 6, 4, 4, 4, 4, 3, 8, 223, 255, 256, + 513, 6, 3, 562, 8, 6, 4, 4, 337, 4, + 4, 4, 4, 224, 226, 224, 226, 224, 224, 224, + 224, 224, 224, 4, 226, 224, 4, 4, 4, 4, + 351, 350, 348, 433, 429, 471, 467, 495, 491, 257, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 281, 284, 285, 286, 287, 288, 289, 292, 294, 296, + 297, 298, 301, 302, 304, 306, 312, 361, 425, 443, + 445, 447, 449, 450, 451, 459, 460, 487, 521, 523, + 536, 538, 540, 558, 457, 388, 125, 126, 127, 257, + 267, 268, 269, 312, 361, 461, 487, 521, 523, 536, + 538, 540, 568, 569, 570, 571, 572, 574, 576, 566, + 533, 529, 409, 405, 224, 224, 224, 224, 224, 224, + 418, 226, 224, 224, 397, 4, 4, 4, 224, 4, + 226, 587, 586, 584, 226, 4, 224, 4, 623, 197, + 199, 200, 257, 361, 521, 523, 663, 664, 665, 666, + 668, 661, 226, 226, 226, 226, 685, 6, 3, 516, + 512, 4, 223, 223, 223, 223, 223, 223, 55, 56, + 57, 374, 223, 223, 223, 223, 8, 8, 8, 8, + 3, 8, 573, 575, 4, 8, 3, 8, 8, 158, + 159, 160, 590, 223, 223, 7, 8, 223, 242, 669, + 4, 667, 3, 8, 223, 8, 253, 460, 4, 4, + 226, 570, 40, 166, 167, 168, 257, 521, 523, 599, + 600, 601, 604, 606, 608, 4, 224, 4, 664, 223, + 223, 602, 605, 607, 609, 3, 8, 5, 223, 4, + 4, 4, 4, 600, 7, 670, 671, 165, 603, 223, + 223, 5, 672, 3, 6, 7, 610, 611, 612, 198, + 201, 202, 203, 204, 673, 674, 675, 677, 678, 679, + 680, 671, 613, 6, 3, 676, 4, 4, 4, 681, + 3, 8, 169, 170, 257, 354, 356, 521, 523, 614, + 615, 616, 618, 612, 4, 226, 224, 224, 4, 674, + 617, 619, 3, 8, 223, 223, 4, 4, 615, 223, + 223 }; const short @@ -6197,40 +6223,40 @@ namespace isc { namespace dhcp { 475, 476, 478, 477, 480, 479, 482, 481, 483, 485, 484, 486, 488, 487, 489, 489, 490, 490, 490, 492, 491, 494, 493, 495, 495, 496, 496, 496, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 498, 500, - 499, 501, 502, 503, 504, 505, 507, 506, 508, 508, - 509, 509, 509, 511, 510, 513, 512, 514, 514, 514, - 515, 515, 515, 515, 515, 515, 515, 515, 517, 516, - 518, 520, 519, 522, 521, 524, 523, 525, 525, 526, - 526, 526, 528, 527, 530, 529, 531, 531, 532, 532, - 532, 533, 533, 533, 533, 533, 533, 533, 533, 533, - 533, 533, 533, 533, 533, 533, 535, 534, 537, 536, - 539, 538, 541, 540, 543, 542, 545, 544, 547, 546, - 549, 548, 551, 550, 553, 552, 555, 554, 557, 556, - 558, 560, 559, 562, 561, 563, 563, 563, 565, 564, - 566, 566, 567, 567, 567, 568, 568, 568, 568, 568, - 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, - 568, 569, 571, 570, 573, 572, 574, 575, 577, 576, - 579, 578, 580, 580, 581, 581, 581, 583, 582, 584, - 584, 584, 585, 585, 585, 585, 585, 585, 585, 585, - 585, 585, 585, 585, 587, 586, 588, 588, 588, 590, - 589, 592, 591, 593, 594, 596, 595, 597, 597, 597, - 598, 598, 598, 598, 598, 598, 598, 600, 599, 601, - 603, 602, 605, 604, 607, 606, 608, 608, 609, 609, - 609, 611, 610, 612, 612, 612, 613, 613, 613, 613, - 613, 613, 613, 615, 614, 617, 616, 619, 618, 620, - 620, 620, 621, 621, 621, 621, 621, 621, 622, 624, - 623, 625, 627, 626, 629, 628, 631, 630, 632, 632, - 632, 633, 633, 633, 633, 633, 633, 633, 633, 633, - 633, 633, 634, 636, 635, 637, 639, 638, 640, 641, - 643, 642, 644, 644, 646, 645, 648, 647, 650, 649, - 651, 651, 651, 652, 652, 654, 653, 655, 657, 656, - 658, 658, 658, 660, 659, 661, 661, 661, 662, 662, - 662, 662, 662, 662, 662, 663, 665, 664, 667, 666, - 668, 668, 668, 670, 669, 671, 671, 671, 672, 672, - 672, 672, 672, 674, 673, 675, 676, 677, 679, 678, - 681, 680, 682, 682, 682, 683, 683, 683, 683, 683, - 684, 685, 686, 687 + 497, 497, 497, 497, 497, 497, 497, 497, 497, 498, + 500, 499, 501, 502, 503, 504, 505, 507, 506, 509, + 508, 510, 510, 511, 511, 511, 513, 512, 515, 514, + 516, 516, 516, 517, 517, 517, 517, 517, 517, 517, + 517, 519, 518, 520, 522, 521, 524, 523, 526, 525, + 527, 527, 528, 528, 528, 530, 529, 532, 531, 533, + 533, 534, 534, 534, 535, 535, 535, 535, 535, 535, + 535, 535, 535, 535, 535, 535, 535, 535, 535, 537, + 536, 539, 538, 541, 540, 543, 542, 545, 544, 547, + 546, 549, 548, 551, 550, 553, 552, 555, 554, 557, + 556, 559, 558, 560, 562, 561, 564, 563, 565, 565, + 565, 567, 566, 568, 568, 569, 569, 569, 570, 570, + 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, + 570, 570, 570, 570, 571, 573, 572, 575, 574, 576, + 577, 579, 578, 581, 580, 582, 582, 583, 583, 583, + 585, 584, 586, 586, 586, 587, 587, 587, 587, 587, + 587, 587, 587, 587, 587, 587, 587, 589, 588, 590, + 590, 590, 592, 591, 594, 593, 595, 596, 598, 597, + 599, 599, 599, 600, 600, 600, 600, 600, 600, 600, + 602, 601, 603, 605, 604, 607, 606, 609, 608, 610, + 610, 611, 611, 611, 613, 612, 614, 614, 614, 615, + 615, 615, 615, 615, 615, 615, 617, 616, 619, 618, + 621, 620, 622, 622, 622, 623, 623, 623, 623, 623, + 623, 624, 626, 625, 627, 629, 628, 631, 630, 633, + 632, 634, 634, 634, 635, 635, 635, 635, 635, 635, + 635, 635, 635, 635, 635, 636, 638, 637, 639, 641, + 640, 642, 643, 645, 644, 646, 646, 648, 647, 650, + 649, 652, 651, 653, 653, 653, 654, 654, 656, 655, + 657, 659, 658, 660, 660, 660, 662, 661, 663, 663, + 663, 664, 664, 664, 664, 664, 664, 664, 665, 667, + 666, 669, 668, 670, 670, 670, 672, 671, 673, 673, + 673, 674, 674, 674, 674, 674, 676, 675, 677, 678, + 679, 681, 680, 683, 682, 684, 684, 684, 685, 685, + 685, 685, 685, 686, 687, 688, 689 }; const signed char @@ -6293,40 +6319,40 @@ namespace isc { namespace dhcp { 3, 1, 0, 4, 0, 4, 0, 4, 1, 0, 4, 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 1, 1, 3, 3, 3, 0, 4, 0, + 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 4, 3, 0, 4, 0, 4, 0, 6, + 0, 1, 1, 3, 2, 0, 4, 0, 4, 0, + 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 3, 3, 3, 0, 6, 0, 1, - 1, 3, 2, 0, 4, 0, 4, 1, 3, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, - 3, 0, 4, 0, 4, 0, 6, 0, 1, 1, - 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, - 1, 0, 4, 0, 6, 1, 3, 2, 0, 4, - 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 4, 0, 4, 0, 4, 0, 4, 0, + 4, 0, 6, 1, 0, 4, 0, 6, 1, 3, + 2, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 3, 3, 0, 6, - 0, 6, 0, 1, 1, 3, 2, 0, 4, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 1, 1, 0, - 4, 0, 4, 3, 3, 0, 6, 1, 3, 2, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 3, + 3, 0, 6, 0, 6, 0, 1, 1, 3, 2, + 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 1, - 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, - 2, 0, 4, 1, 3, 2, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 0, 4, 0, 6, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 3, 0, - 4, 3, 0, 4, 0, 6, 0, 4, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 0, 4, 3, 0, 4, 3, 3, - 0, 4, 1, 1, 0, 4, 0, 6, 0, 4, - 1, 3, 2, 1, 1, 0, 6, 3, 0, 6, - 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 4, 0, 6, - 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, - 1, 1, 1, 0, 4, 3, 3, 3, 0, 4, + 1, 1, 0, 4, 0, 4, 3, 3, 0, 6, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 1, 0, 4, 0, 4, 0, 6, 0, + 1, 1, 3, 2, 0, 4, 1, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, 2, 1, 1, 1, 1, 1, - 3, 3, 3, 3 + 1, 3, 0, 4, 3, 0, 4, 0, 6, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 0, 4, 3, 0, + 4, 3, 3, 0, 4, 1, 1, 0, 4, 0, + 6, 0, 4, 1, 3, 2, 1, 1, 0, 6, + 3, 0, 6, 1, 3, 2, 0, 4, 1, 3, + 2, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 4, 0, 6, 1, 3, 2, 0, 4, 1, 3, + 2, 1, 1, 1, 1, 1, 0, 4, 3, 3, + 3, 0, 4, 0, 6, 1, 3, 2, 1, 1, + 1, 1, 1, 3, 3, 3, 3 }; @@ -6484,48 +6510,48 @@ namespace isc { namespace dhcp { "option_data_params", "not_empty_option_data_params", "option_data_param", "option_data_name", "option_data_data", "$@81", "option_data_code", "option_data_space", "option_data_csv_format", - "option_data_always_send", "option_data_never_send", "pools_list", - "$@82", "pools_list_content", "not_empty_pools_list", "pool_list_entry", - "$@83", "sub_pool4", "$@84", "pool_params", "pool_param", "pool_entry", - "$@85", "pool_id", "user_context", "$@86", "comment", "$@87", - "reservations", "$@88", "reservations_list", - "not_empty_reservations_list", "reservation", "$@89", "sub_reservation", - "$@90", "reservation_params", "not_empty_reservation_params", - "reservation_param", "next_server", "$@91", "server_hostname", "$@92", - "boot_file_name", "$@93", "ip_address", "$@94", "duid", "$@95", - "hw_address", "$@96", "client_id_value", "$@97", "circuit_id_value", - "$@98", "flex_id_value", "$@99", "hostname", "$@100", - "reservation_client_classes", "$@101", "relay", "$@102", "relay_map", - "ip_addresses", "$@103", "client_classes", "$@104", - "client_classes_list", "client_class_entry", "$@105", + "option_data_always_send", "option_data_never_send", + "option_data_client_classes", "$@82", "pools_list", "$@83", + "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@84", + "sub_pool4", "$@85", "pool_params", "pool_param", "pool_entry", "$@86", + "pool_id", "user_context", "$@87", "comment", "$@88", "reservations", + "$@89", "reservations_list", "not_empty_reservations_list", + "reservation", "$@90", "sub_reservation", "$@91", "reservation_params", + "not_empty_reservation_params", "reservation_param", "next_server", + "$@92", "server_hostname", "$@93", "boot_file_name", "$@94", + "ip_address", "$@95", "duid", "$@96", "hw_address", "$@97", + "client_id_value", "$@98", "circuit_id_value", "$@99", "flex_id_value", + "$@100", "hostname", "$@101", "reservation_client_classes", "$@102", + "relay", "$@103", "relay_map", "ip_addresses", "$@104", "client_classes", + "$@105", "client_classes_list", "client_class_entry", "$@106", "client_class_params", "not_empty_client_class_params", - "client_class_param", "client_class_name", "client_class_test", "$@106", - "client_class_template_test", "$@107", "only_if_required", - "dhcp4o6_port", "control_socket", "$@108", "control_sockets", "$@109", + "client_class_param", "client_class_name", "client_class_test", "$@107", + "client_class_template_test", "$@108", "only_if_required", + "dhcp4o6_port", "control_socket", "$@109", "control_sockets", "$@110", "control_socket_list", "not_empty_control_socket_list", - "control_socket_entry", "$@110", "control_socket_params", - "control_socket_param", "control_socket_type", "$@111", - "control_socket_type_value", "control_socket_name", "$@112", - "control_socket_address", "$@113", "control_socket_port", - "cert_required", "authentication", "$@114", "auth_params", "auth_param", - "auth_type", "$@115", "auth_type_value", "realm", "$@116", "directory", - "$@117", "clients", "$@118", "clients_list", "not_empty_clients_list", - "basic_auth", "$@119", "clients_params", "clients_param", "user_file", - "$@120", "password_file", "$@121", "dhcp_queue_control", "$@122", + "control_socket_entry", "$@111", "control_socket_params", + "control_socket_param", "control_socket_type", "$@112", + "control_socket_type_value", "control_socket_name", "$@113", + "control_socket_address", "$@114", "control_socket_port", + "cert_required", "authentication", "$@115", "auth_params", "auth_param", + "auth_type", "$@116", "auth_type_value", "realm", "$@117", "directory", + "$@118", "clients", "$@119", "clients_list", "not_empty_clients_list", + "basic_auth", "$@120", "clients_params", "clients_param", "user_file", + "$@121", "password_file", "$@122", "dhcp_queue_control", "$@123", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@123", "capacity", "arbitrary_map_entry", "$@124", - "dhcp_ddns", "$@125", "sub_dhcp_ddns", "$@126", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "server_ip", "$@127", "server_port", - "sender_ip", "$@128", "sender_port", "max_queue_size", "ncr_protocol", - "$@129", "ncr_protocol_value", "ncr_format", "$@130", "config_control", - "$@131", "sub_config_control", "$@132", "config_control_params", - "config_control_param", "config_databases", "$@133", - "config_fetch_wait_time", "loggers", "$@134", "loggers_entries", - "logger_entry", "$@135", "logger_params", "logger_param", "debuglevel", - "severity", "$@136", "output_options_list", "$@137", - "output_options_list_content", "output_entry", "$@138", - "output_params_list", "output_params", "output", "$@139", "flush", - "maxsize", "maxver", "pattern", "$@140", "compatibility", "$@141", + "queue_type", "$@124", "capacity", "arbitrary_map_entry", "$@125", + "dhcp_ddns", "$@126", "sub_dhcp_ddns", "$@127", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "server_ip", "$@128", "server_port", + "sender_ip", "$@129", "sender_port", "max_queue_size", "ncr_protocol", + "$@130", "ncr_protocol_value", "ncr_format", "$@131", "config_control", + "$@132", "sub_config_control", "$@133", "config_control_params", + "config_control_param", "config_databases", "$@134", + "config_fetch_wait_time", "loggers", "$@135", "loggers_entries", + "logger_entry", "$@136", "logger_params", "logger_param", "debuglevel", + "severity", "$@137", "output_options_list", "$@138", + "output_options_list_content", "output_entry", "$@139", + "output_params_list", "output_params", "output", "$@140", "flush", + "maxsize", "maxver", "pattern", "$@141", "compatibility", "$@142", "compatibility_params", "compatibility_param", "lenient_option_parsing", "ignore_dhcp_server_identifier", "ignore_rai_link_selection", "exclude_first_last_24", YY_NULLPTR @@ -6594,40 +6620,40 @@ namespace isc { namespace dhcp { 1910, 1916, 1918, 1918, 1927, 1927, 1936, 1936, 1945, 1947, 1947, 1956, 1966, 1966, 1979, 1980, 1985, 1986, 1987, 1994, 1994, 2006, 2006, 2018, 2019, 2024, 2025, 2026, 2033, 2034, - 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2045, 2047, - 2047, 2056, 2058, 2060, 2066, 2072, 2081, 2081, 2094, 2095, - 2098, 2099, 2100, 2105, 2105, 2115, 2115, 2125, 2126, 2127, - 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2142, 2142, - 2151, 2157, 2157, 2182, 2182, 2212, 2212, 2223, 2224, 2227, - 2228, 2229, 2234, 2234, 2243, 2243, 2252, 2253, 2256, 2257, - 2258, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, - 2273, 2274, 2275, 2276, 2277, 2278, 2281, 2281, 2290, 2290, - 2299, 2299, 2308, 2308, 2317, 2317, 2326, 2326, 2335, 2335, - 2344, 2344, 2353, 2353, 2362, 2362, 2371, 2371, 2385, 2385, - 2396, 2399, 2399, 2413, 2413, 2424, 2425, 2426, 2431, 2431, - 2441, 2442, 2445, 2446, 2447, 2452, 2453, 2454, 2455, 2456, - 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, - 2467, 2470, 2472, 2472, 2481, 2481, 2490, 2498, 2506, 2506, - 2518, 2518, 2530, 2531, 2534, 2535, 2536, 2541, 2541, 2549, - 2550, 2551, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, - 2564, 2565, 2566, 2567, 2570, 2570, 2579, 2580, 2581, 2584, - 2584, 2594, 2594, 2604, 2610, 2618, 2618, 2631, 2632, 2633, - 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2647, 2647, 2655, - 2658, 2658, 2667, 2667, 2676, 2676, 2687, 2688, 2691, 2692, - 2693, 2698, 2698, 2706, 2707, 2708, 2713, 2714, 2715, 2716, - 2717, 2718, 2719, 2722, 2722, 2731, 2731, 2742, 2742, 2755, - 2756, 2757, 2762, 2763, 2764, 2765, 2766, 2767, 2770, 2776, - 2776, 2785, 2791, 2791, 2801, 2801, 2814, 2814, 2824, 2825, - 2826, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, - 2840, 2841, 2844, 2850, 2850, 2859, 2865, 2865, 2874, 2880, - 2886, 2886, 2895, 2896, 2899, 2899, 2910, 2910, 2922, 2922, - 2932, 2933, 2934, 2940, 2941, 2944, 2944, 2955, 2963, 2963, - 2976, 2977, 2978, 2984, 2984, 2992, 2993, 2994, 2999, 3000, - 3001, 3002, 3003, 3004, 3005, 3008, 3014, 3014, 3023, 3023, - 3034, 3035, 3036, 3041, 3041, 3049, 3050, 3051, 3056, 3057, - 3058, 3059, 3060, 3063, 3063, 3072, 3078, 3084, 3090, 3090, - 3099, 3099, 3110, 3111, 3112, 3117, 3118, 3119, 3120, 3121, - 3124, 3130, 3136, 3142 + 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2046, + 2048, 2048, 2057, 2059, 2061, 2067, 2073, 2079, 2079, 2093, + 2093, 2106, 2107, 2110, 2111, 2112, 2117, 2117, 2127, 2127, + 2137, 2138, 2139, 2144, 2145, 2146, 2147, 2148, 2149, 2150, + 2151, 2154, 2154, 2163, 2169, 2169, 2194, 2194, 2224, 2224, + 2235, 2236, 2239, 2240, 2241, 2246, 2246, 2255, 2255, 2264, + 2265, 2268, 2269, 2270, 2276, 2277, 2278, 2279, 2280, 2281, + 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2293, + 2293, 2302, 2302, 2311, 2311, 2320, 2320, 2329, 2329, 2338, + 2338, 2347, 2347, 2356, 2356, 2365, 2365, 2374, 2374, 2383, + 2383, 2397, 2397, 2408, 2411, 2411, 2425, 2425, 2436, 2437, + 2438, 2443, 2443, 2453, 2454, 2457, 2458, 2459, 2464, 2465, + 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, + 2476, 2477, 2478, 2479, 2482, 2484, 2484, 2493, 2493, 2502, + 2510, 2518, 2518, 2530, 2530, 2542, 2543, 2546, 2547, 2548, + 2553, 2553, 2561, 2562, 2563, 2568, 2569, 2570, 2571, 2572, + 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2582, 2582, 2591, + 2592, 2593, 2596, 2596, 2606, 2606, 2616, 2622, 2630, 2630, + 2643, 2644, 2645, 2650, 2651, 2652, 2653, 2654, 2655, 2656, + 2659, 2659, 2667, 2670, 2670, 2679, 2679, 2688, 2688, 2699, + 2700, 2703, 2704, 2705, 2710, 2710, 2718, 2719, 2720, 2725, + 2726, 2727, 2728, 2729, 2730, 2731, 2734, 2734, 2743, 2743, + 2754, 2754, 2767, 2768, 2769, 2774, 2775, 2776, 2777, 2778, + 2779, 2782, 2788, 2788, 2797, 2803, 2803, 2813, 2813, 2826, + 2826, 2836, 2837, 2838, 2843, 2844, 2845, 2846, 2847, 2848, + 2849, 2850, 2851, 2852, 2853, 2856, 2862, 2862, 2871, 2877, + 2877, 2886, 2892, 2898, 2898, 2907, 2908, 2911, 2911, 2922, + 2922, 2934, 2934, 2944, 2945, 2946, 2952, 2953, 2956, 2956, + 2967, 2975, 2975, 2988, 2989, 2990, 2996, 2996, 3004, 3005, + 3006, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3020, 3026, + 3026, 3035, 3035, 3046, 3047, 3048, 3053, 3053, 3061, 3062, + 3063, 3068, 3069, 3070, 3071, 3072, 3075, 3075, 3084, 3090, + 3096, 3102, 3102, 3111, 3111, 3122, 3123, 3124, 3129, 3130, + 3131, 3132, 3133, 3136, 3142, 3148, 3154 }; void @@ -6660,9 +6686,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 6664 "dhcp4_parser.cc" +#line 6690 "dhcp4_parser.cc" -#line 3148 "dhcp4_parser.yy" +#line 3160 "dhcp4_parser.yy" void diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h index e534745a92..bf46c4f663 100644 --- a/src/bin/dhcp4/dhcp4_parser.h +++ b/src/bin/dhcp4/dhcp4_parser.h @@ -1248,188 +1248,190 @@ namespace isc { namespace dhcp { S_option_data_csv_format = 503, // option_data_csv_format S_option_data_always_send = 504, // option_data_always_send S_option_data_never_send = 505, // option_data_never_send - S_pools_list = 506, // pools_list + S_option_data_client_classes = 506, // option_data_client_classes S_507_82 = 507, // $@82 - S_pools_list_content = 508, // pools_list_content - S_not_empty_pools_list = 509, // not_empty_pools_list - S_pool_list_entry = 510, // pool_list_entry - S_511_83 = 511, // $@83 - S_sub_pool4 = 512, // sub_pool4 + S_pools_list = 508, // pools_list + S_509_83 = 509, // $@83 + S_pools_list_content = 510, // pools_list_content + S_not_empty_pools_list = 511, // not_empty_pools_list + S_pool_list_entry = 512, // pool_list_entry S_513_84 = 513, // $@84 - S_pool_params = 514, // pool_params - S_pool_param = 515, // pool_param - S_pool_entry = 516, // pool_entry - S_517_85 = 517, // $@85 - S_pool_id = 518, // pool_id - S_user_context = 519, // user_context - S_520_86 = 520, // $@86 - S_comment = 521, // comment + S_sub_pool4 = 514, // sub_pool4 + S_515_85 = 515, // $@85 + S_pool_params = 516, // pool_params + S_pool_param = 517, // pool_param + S_pool_entry = 518, // pool_entry + S_519_86 = 519, // $@86 + S_pool_id = 520, // pool_id + S_user_context = 521, // user_context S_522_87 = 522, // $@87 - S_reservations = 523, // reservations + S_comment = 523, // comment S_524_88 = 524, // $@88 - S_reservations_list = 525, // reservations_list - S_not_empty_reservations_list = 526, // not_empty_reservations_list - S_reservation = 527, // reservation - S_528_89 = 528, // $@89 - S_sub_reservation = 529, // sub_reservation + S_reservations = 525, // reservations + S_526_89 = 526, // $@89 + S_reservations_list = 527, // reservations_list + S_not_empty_reservations_list = 528, // not_empty_reservations_list + S_reservation = 529, // reservation S_530_90 = 530, // $@90 - S_reservation_params = 531, // reservation_params - S_not_empty_reservation_params = 532, // not_empty_reservation_params - S_reservation_param = 533, // reservation_param - S_next_server = 534, // next_server - S_535_91 = 535, // $@91 - S_server_hostname = 536, // server_hostname + S_sub_reservation = 531, // sub_reservation + S_532_91 = 532, // $@91 + S_reservation_params = 533, // reservation_params + S_not_empty_reservation_params = 534, // not_empty_reservation_params + S_reservation_param = 535, // reservation_param + S_next_server = 536, // next_server S_537_92 = 537, // $@92 - S_boot_file_name = 538, // boot_file_name + S_server_hostname = 538, // server_hostname S_539_93 = 539, // $@93 - S_ip_address = 540, // ip_address + S_boot_file_name = 540, // boot_file_name S_541_94 = 541, // $@94 - S_duid = 542, // duid + S_ip_address = 542, // ip_address S_543_95 = 543, // $@95 - S_hw_address = 544, // hw_address + S_duid = 544, // duid S_545_96 = 545, // $@96 - S_client_id_value = 546, // client_id_value + S_hw_address = 546, // hw_address S_547_97 = 547, // $@97 - S_circuit_id_value = 548, // circuit_id_value + S_client_id_value = 548, // client_id_value S_549_98 = 549, // $@98 - S_flex_id_value = 550, // flex_id_value + S_circuit_id_value = 550, // circuit_id_value S_551_99 = 551, // $@99 - S_hostname = 552, // hostname + S_flex_id_value = 552, // flex_id_value S_553_100 = 553, // $@100 - S_reservation_client_classes = 554, // reservation_client_classes + S_hostname = 554, // hostname S_555_101 = 555, // $@101 - S_relay = 556, // relay + S_reservation_client_classes = 556, // reservation_client_classes S_557_102 = 557, // $@102 - S_relay_map = 558, // relay_map - S_ip_addresses = 559, // ip_addresses - S_560_103 = 560, // $@103 - S_client_classes = 561, // client_classes + S_relay = 558, // relay + S_559_103 = 559, // $@103 + S_relay_map = 560, // relay_map + S_ip_addresses = 561, // ip_addresses S_562_104 = 562, // $@104 - S_client_classes_list = 563, // client_classes_list - S_client_class_entry = 564, // client_class_entry - S_565_105 = 565, // $@105 - S_client_class_params = 566, // client_class_params - S_not_empty_client_class_params = 567, // not_empty_client_class_params - S_client_class_param = 568, // client_class_param - S_client_class_name = 569, // client_class_name - S_client_class_test = 570, // client_class_test - S_571_106 = 571, // $@106 - S_client_class_template_test = 572, // client_class_template_test + S_client_classes = 563, // client_classes + S_564_105 = 564, // $@105 + S_client_classes_list = 565, // client_classes_list + S_client_class_entry = 566, // client_class_entry + S_567_106 = 567, // $@106 + S_client_class_params = 568, // client_class_params + S_not_empty_client_class_params = 569, // not_empty_client_class_params + S_client_class_param = 570, // client_class_param + S_client_class_name = 571, // client_class_name + S_client_class_test = 572, // client_class_test S_573_107 = 573, // $@107 - S_only_if_required = 574, // only_if_required - S_dhcp4o6_port = 575, // dhcp4o6_port - S_control_socket = 576, // control_socket - S_577_108 = 577, // $@108 - S_control_sockets = 578, // control_sockets + S_client_class_template_test = 574, // client_class_template_test + S_575_108 = 575, // $@108 + S_only_if_required = 576, // only_if_required + S_dhcp4o6_port = 577, // dhcp4o6_port + S_control_socket = 578, // control_socket S_579_109 = 579, // $@109 - S_control_socket_list = 580, // control_socket_list - S_not_empty_control_socket_list = 581, // not_empty_control_socket_list - S_control_socket_entry = 582, // control_socket_entry - S_583_110 = 583, // $@110 - S_control_socket_params = 584, // control_socket_params - S_control_socket_param = 585, // control_socket_param - S_control_socket_type = 586, // control_socket_type - S_587_111 = 587, // $@111 - S_control_socket_type_value = 588, // control_socket_type_value - S_control_socket_name = 589, // control_socket_name - S_590_112 = 590, // $@112 - S_control_socket_address = 591, // control_socket_address + S_control_sockets = 580, // control_sockets + S_581_110 = 581, // $@110 + S_control_socket_list = 582, // control_socket_list + S_not_empty_control_socket_list = 583, // not_empty_control_socket_list + S_control_socket_entry = 584, // control_socket_entry + S_585_111 = 585, // $@111 + S_control_socket_params = 586, // control_socket_params + S_control_socket_param = 587, // control_socket_param + S_control_socket_type = 588, // control_socket_type + S_589_112 = 589, // $@112 + S_control_socket_type_value = 590, // control_socket_type_value + S_control_socket_name = 591, // control_socket_name S_592_113 = 592, // $@113 - S_control_socket_port = 593, // control_socket_port - S_cert_required = 594, // cert_required - S_authentication = 595, // authentication - S_596_114 = 596, // $@114 - S_auth_params = 597, // auth_params - S_auth_param = 598, // auth_param - S_auth_type = 599, // auth_type - S_600_115 = 600, // $@115 - S_auth_type_value = 601, // auth_type_value - S_realm = 602, // realm - S_603_116 = 603, // $@116 - S_directory = 604, // directory + S_control_socket_address = 593, // control_socket_address + S_594_114 = 594, // $@114 + S_control_socket_port = 595, // control_socket_port + S_cert_required = 596, // cert_required + S_authentication = 597, // authentication + S_598_115 = 598, // $@115 + S_auth_params = 599, // auth_params + S_auth_param = 600, // auth_param + S_auth_type = 601, // auth_type + S_602_116 = 602, // $@116 + S_auth_type_value = 603, // auth_type_value + S_realm = 604, // realm S_605_117 = 605, // $@117 - S_clients = 606, // clients + S_directory = 606, // directory S_607_118 = 607, // $@118 - S_clients_list = 608, // clients_list - S_not_empty_clients_list = 609, // not_empty_clients_list - S_basic_auth = 610, // basic_auth - S_611_119 = 611, // $@119 - S_clients_params = 612, // clients_params - S_clients_param = 613, // clients_param - S_user_file = 614, // user_file - S_615_120 = 615, // $@120 - S_password_file = 616, // password_file + S_clients = 608, // clients + S_609_119 = 609, // $@119 + S_clients_list = 610, // clients_list + S_not_empty_clients_list = 611, // not_empty_clients_list + S_basic_auth = 612, // basic_auth + S_613_120 = 613, // $@120 + S_clients_params = 614, // clients_params + S_clients_param = 615, // clients_param + S_user_file = 616, // user_file S_617_121 = 617, // $@121 - S_dhcp_queue_control = 618, // dhcp_queue_control + S_password_file = 618, // password_file S_619_122 = 619, // $@122 - S_queue_control_params = 620, // queue_control_params - S_queue_control_param = 621, // queue_control_param - S_enable_queue = 622, // enable_queue - S_queue_type = 623, // queue_type - S_624_123 = 624, // $@123 - S_capacity = 625, // capacity - S_arbitrary_map_entry = 626, // arbitrary_map_entry - S_627_124 = 627, // $@124 - S_dhcp_ddns = 628, // dhcp_ddns + S_dhcp_queue_control = 620, // dhcp_queue_control + S_621_123 = 621, // $@123 + S_queue_control_params = 622, // queue_control_params + S_queue_control_param = 623, // queue_control_param + S_enable_queue = 624, // enable_queue + S_queue_type = 625, // queue_type + S_626_124 = 626, // $@124 + S_capacity = 627, // capacity + S_arbitrary_map_entry = 628, // arbitrary_map_entry S_629_125 = 629, // $@125 - S_sub_dhcp_ddns = 630, // sub_dhcp_ddns + S_dhcp_ddns = 630, // dhcp_ddns S_631_126 = 631, // $@126 - S_dhcp_ddns_params = 632, // dhcp_ddns_params - S_dhcp_ddns_param = 633, // dhcp_ddns_param - S_enable_updates = 634, // enable_updates - S_server_ip = 635, // server_ip - S_636_127 = 636, // $@127 - S_server_port = 637, // server_port - S_sender_ip = 638, // sender_ip - S_639_128 = 639, // $@128 - S_sender_port = 640, // sender_port - S_max_queue_size = 641, // max_queue_size - S_ncr_protocol = 642, // ncr_protocol - S_643_129 = 643, // $@129 - S_ncr_protocol_value = 644, // ncr_protocol_value - S_ncr_format = 645, // ncr_format - S_646_130 = 646, // $@130 - S_config_control = 647, // config_control + S_sub_dhcp_ddns = 632, // sub_dhcp_ddns + S_633_127 = 633, // $@127 + S_dhcp_ddns_params = 634, // dhcp_ddns_params + S_dhcp_ddns_param = 635, // dhcp_ddns_param + S_enable_updates = 636, // enable_updates + S_server_ip = 637, // server_ip + S_638_128 = 638, // $@128 + S_server_port = 639, // server_port + S_sender_ip = 640, // sender_ip + S_641_129 = 641, // $@129 + S_sender_port = 642, // sender_port + S_max_queue_size = 643, // max_queue_size + S_ncr_protocol = 644, // ncr_protocol + S_645_130 = 645, // $@130 + S_ncr_protocol_value = 646, // ncr_protocol_value + S_ncr_format = 647, // ncr_format S_648_131 = 648, // $@131 - S_sub_config_control = 649, // sub_config_control + S_config_control = 649, // config_control S_650_132 = 650, // $@132 - S_config_control_params = 651, // config_control_params - S_config_control_param = 652, // config_control_param - S_config_databases = 653, // config_databases - S_654_133 = 654, // $@133 - S_config_fetch_wait_time = 655, // config_fetch_wait_time - S_loggers = 656, // loggers - S_657_134 = 657, // $@134 - S_loggers_entries = 658, // loggers_entries - S_logger_entry = 659, // logger_entry - S_660_135 = 660, // $@135 - S_logger_params = 661, // logger_params - S_logger_param = 662, // logger_param - S_debuglevel = 663, // debuglevel - S_severity = 664, // severity - S_665_136 = 665, // $@136 - S_output_options_list = 666, // output_options_list + S_sub_config_control = 651, // sub_config_control + S_652_133 = 652, // $@133 + S_config_control_params = 653, // config_control_params + S_config_control_param = 654, // config_control_param + S_config_databases = 655, // config_databases + S_656_134 = 656, // $@134 + S_config_fetch_wait_time = 657, // config_fetch_wait_time + S_loggers = 658, // loggers + S_659_135 = 659, // $@135 + S_loggers_entries = 660, // loggers_entries + S_logger_entry = 661, // logger_entry + S_662_136 = 662, // $@136 + S_logger_params = 663, // logger_params + S_logger_param = 664, // logger_param + S_debuglevel = 665, // debuglevel + S_severity = 666, // severity S_667_137 = 667, // $@137 - S_output_options_list_content = 668, // output_options_list_content - S_output_entry = 669, // output_entry - S_670_138 = 670, // $@138 - S_output_params_list = 671, // output_params_list - S_output_params = 672, // output_params - S_output = 673, // output - S_674_139 = 674, // $@139 - S_flush = 675, // flush - S_maxsize = 676, // maxsize - S_maxver = 677, // maxver - S_pattern = 678, // pattern - S_679_140 = 679, // $@140 - S_compatibility = 680, // compatibility + S_output_options_list = 668, // output_options_list + S_669_138 = 669, // $@138 + S_output_options_list_content = 670, // output_options_list_content + S_output_entry = 671, // output_entry + S_672_139 = 672, // $@139 + S_output_params_list = 673, // output_params_list + S_output_params = 674, // output_params + S_output = 675, // output + S_676_140 = 676, // $@140 + S_flush = 677, // flush + S_maxsize = 678, // maxsize + S_maxver = 679, // maxver + S_pattern = 680, // pattern S_681_141 = 681, // $@141 - S_compatibility_params = 682, // compatibility_params - S_compatibility_param = 683, // compatibility_param - S_lenient_option_parsing = 684, // lenient_option_parsing - S_ignore_dhcp_server_identifier = 685, // ignore_dhcp_server_identifier - S_ignore_rai_link_selection = 686, // ignore_rai_link_selection - S_exclude_first_last_24 = 687 // exclude_first_last_24 + S_compatibility = 682, // compatibility + S_683_142 = 683, // $@142 + S_compatibility_params = 684, // compatibility_params + S_compatibility_param = 685, // compatibility_param + S_lenient_option_parsing = 686, // lenient_option_parsing + S_ignore_dhcp_server_identifier = 687, // ignore_dhcp_server_identifier + S_ignore_rai_link_selection = 688, // ignore_rai_link_selection + S_exclude_first_last_24 = 689 // exclude_first_last_24 }; }; @@ -5573,8 +5575,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1538, ///< Last index in yytable_. - yynnts_ = 461, ///< Number of nonterminal symbols. + yylast_ = 1544, ///< Last index in yytable_. + yynnts_ = 463, ///< Number of nonterminal symbols. yyfinal_ = 28 ///< Termination state number. }; @@ -5820,7 +5822,7 @@ switch (yykind) #line 14 "dhcp4_parser.yy" } } // isc::dhcp -#line 5824 "dhcp4_parser.h" +#line 5826 "dhcp4_parser.h" diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 0587d425a1..77a78c2325 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -2039,6 +2039,7 @@ option_data_param: option_data_name | option_data_never_send | user_context | comment + | option_data_client_classes | unknown_map_entry ; @@ -2075,6 +2076,17 @@ option_data_never_send: NEVER_SEND COLON BOOLEAN { ctx.stack_.back()->set("never-send", cancel); }; +option_data_client_classes: CLIENT_CLASSES { + ctx.unique("client-classes", ctx.loc2pos(@1)); + ElementPtr c(new ListElement(ctx.loc2pos(@1))); + ctx.stack_.back()->set("client-classes", c); + ctx.stack_.push_back(c); + ctx.enter(ctx.NO_KEYWORD); +} COLON list_strings { + ctx.stack_.pop_back(); + ctx.leave(); +}; + // ---- pools ------------------------------------ // This defines the "pools": [ ... ] entry that may appear in subnet4. diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh index e1ae384183..860fbfa0c9 100644 --- a/src/bin/dhcp4/location.hh +++ b/src/bin/dhcp4/location.hh @@ -1,4 +1,3 @@ -// Generated 202409201300 // A Bison parser, made by GNU Bison 3.8.2. // Locations for Bison parsers in C++ diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index 27426e7b5e..e819bdf682 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -1,6 +1,6 @@ -#line 1 "dhcp6_lexer.cc" +#line 2 "dhcp6_lexer.cc" -#line 3 "dhcp6_lexer.cc" +#line 4 "dhcp6_lexer.cc" #define YY_INT_ALIGNED short int @@ -2141,6 +2141,7 @@ static const flex_int16_t yy_rule_linenum[238] = 896, 905, 914, 923, 934, 945, 954, 963, 974, 985, 996, 1007, 1018, 1029, 1040, 1051, 1062, 1071, 1080, 1089, +<<<<<<< HEAD 1101, 1112, 1122, 1133, 1142, 1151, 1166, 1182, 1191, 1200, 1209, 1218, 1227, 1236, 1245, 1254, 1263, 1272, 1281, 1291, 1317, 1343, 1352, 1362, 1372, 1381, 1391, 1402, 1413, 1424, @@ -2156,6 +2157,23 @@ static const flex_int16_t yy_rule_linenum[238] = 2180, 2189, 2198, 2207, 2216, 2225, 2234, 2243, 2252, 2353, 2369, 2418, 2426, 2441, 2442, 2443, 2444, 2445, 2446, 2448, 2466, 2479, 2484, 2488, 2490, 2492, 2494 +======= + 1098, 1107, 1116, 1128, 1139, 1149, 1160, 1169, 1178, 1193, + 1209, 1218, 1227, 1236, 1245, 1254, 1263, 1272, 1281, 1290, + 1299, 1308, 1318, 1344, 1370, 1379, 1389, 1399, 1408, 1418, + 1429, 1440, 1451, 1461, 1470, 1479, 1488, 1499, 1510, 1521, + 1532, 1543, 1552, 1561, 1570, 1579, 1588, 1597, 1606, 1615, + 1624, 1633, 1644, 1656, 1669, 1678, 1687, 1696, 1706, 1716, + 1725, 1734, 1745, 1755, 1764, 1774, 1784, 1793, 1802, 1811, + 1820, 1830, 1839, 1848, 1857, 1866, 1875, 1884, 1893, 1902, + 1911, 1920, 1929, 1938, 1947, 1956, 1965, 1974, 1983, 1992, + 2001, 2010, 2019, 2028, 2037, 2046, 2055, 2064, 2073, 2082, + + 2091, 2100, 2109, 2118, 2127, 2136, 2145, 2154, 2163, 2172, + 2181, 2190, 2199, 2208, 2217, 2226, 2235, 2244, 2253, 2262, + 2271, 2280, 2381, 2397, 2446, 2454, 2469, 2470, 2471, 2472, + 2473, 2474, 2476, 2494, 2507, 2512, 2516, 2518, 2520, 2522 +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) } ; /* The intent behind this definition is that it'll catch @@ -2210,7 +2228,11 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) +<<<<<<< HEAD #line 2213 "dhcp6_lexer.cc" +======= +#line 2227 "dhcp6_lexer.cc" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) /* noyywrap disables automatic rewinding for the next file to parse. Since we always parse only a single string, there's no need to do any wraps. And using yywrap requires linking with -lfl, which provides the default yywrap @@ -2236,8 +2258,13 @@ using namespace isc::dhcp; by moving it ahead by yyleng bytes. yyleng specifies the length of the currently matched token. */ #define YY_USER_ACTION driver.loc_.columns(yyleng); +<<<<<<< HEAD #line 2239 "dhcp6_lexer.cc" #line 2240 "dhcp6_lexer.cc" +======= +#line 2253 "dhcp6_lexer.cc" +#line 2254 "dhcp6_lexer.cc" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) #define INITIAL 0 #define COMMENT 1 @@ -2567,7 +2594,11 @@ YY_DECL } +<<<<<<< HEAD #line 2570 "dhcp6_lexer.cc" +======= +#line 2584 "dhcp6_lexer.cc" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -4559,6 +4590,7 @@ YY_RULE_SETUP switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::RESERVATIONS: + case isc::dhcp::Parser6Context::OPTION_DATA: return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_); @@ -4567,7 +4599,11 @@ YY_RULE_SETUP YY_BREAK case 150: YY_RULE_SETUP +<<<<<<< HEAD #line 1616 "dhcp6_lexer.ll" +======= +#line 1644 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4582,7 +4618,11 @@ YY_RULE_SETUP YY_BREAK case 151: YY_RULE_SETUP +<<<<<<< HEAD #line 1628 "dhcp6_lexer.ll" +======= +#line 1656 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4598,7 +4638,11 @@ YY_RULE_SETUP YY_BREAK case 152: YY_RULE_SETUP +<<<<<<< HEAD #line 1641 "dhcp6_lexer.ll" +======= +#line 1669 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4610,7 +4654,11 @@ YY_RULE_SETUP YY_BREAK case 153: YY_RULE_SETUP +<<<<<<< HEAD #line 1650 "dhcp6_lexer.ll" +======= +#line 1678 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4622,7 +4670,11 @@ YY_RULE_SETUP YY_BREAK case 154: YY_RULE_SETUP +<<<<<<< HEAD #line 1659 "dhcp6_lexer.ll" +======= +#line 1687 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -4634,7 +4686,11 @@ YY_RULE_SETUP YY_BREAK case 155: YY_RULE_SETUP +<<<<<<< HEAD #line 1668 "dhcp6_lexer.ll" +======= +#line 1696 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4647,7 +4703,11 @@ YY_RULE_SETUP YY_BREAK case 156: YY_RULE_SETUP +<<<<<<< HEAD #line 1678 "dhcp6_lexer.ll" +======= +#line 1706 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4660,7 +4720,11 @@ YY_RULE_SETUP YY_BREAK case 157: YY_RULE_SETUP +<<<<<<< HEAD #line 1688 "dhcp6_lexer.ll" +======= +#line 1716 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4672,7 +4736,11 @@ YY_RULE_SETUP YY_BREAK case 158: YY_RULE_SETUP +<<<<<<< HEAD #line 1697 "dhcp6_lexer.ll" +======= +#line 1725 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4684,7 +4752,11 @@ YY_RULE_SETUP YY_BREAK case 159: YY_RULE_SETUP +<<<<<<< HEAD #line 1706 "dhcp6_lexer.ll" +======= +#line 1734 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -4698,7 +4770,11 @@ YY_RULE_SETUP YY_BREAK case 160: YY_RULE_SETUP +<<<<<<< HEAD #line 1717 "dhcp6_lexer.ll" +======= +#line 1745 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4711,7 +4787,11 @@ YY_RULE_SETUP YY_BREAK case 161: YY_RULE_SETUP +<<<<<<< HEAD #line 1727 "dhcp6_lexer.ll" +======= +#line 1755 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -4723,7 +4803,11 @@ YY_RULE_SETUP YY_BREAK case 162: YY_RULE_SETUP +<<<<<<< HEAD #line 1736 "dhcp6_lexer.ll" +======= +#line 1764 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -4736,7 +4820,11 @@ YY_RULE_SETUP YY_BREAK case 163: YY_RULE_SETUP +<<<<<<< HEAD #line 1746 "dhcp6_lexer.ll" +======= +#line 1774 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4749,7 +4837,11 @@ YY_RULE_SETUP YY_BREAK case 164: YY_RULE_SETUP +<<<<<<< HEAD #line 1756 "dhcp6_lexer.ll" +======= +#line 1784 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -4761,7 +4853,11 @@ YY_RULE_SETUP YY_BREAK case 165: YY_RULE_SETUP +<<<<<<< HEAD #line 1765 "dhcp6_lexer.ll" +======= +#line 1793 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4773,7 +4869,11 @@ YY_RULE_SETUP YY_BREAK case 166: YY_RULE_SETUP +<<<<<<< HEAD #line 1774 "dhcp6_lexer.ll" +======= +#line 1802 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4785,7 +4885,11 @@ YY_RULE_SETUP YY_BREAK case 167: YY_RULE_SETUP +<<<<<<< HEAD #line 1783 "dhcp6_lexer.ll" +======= +#line 1811 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -4797,7 +4901,11 @@ YY_RULE_SETUP YY_BREAK case 168: YY_RULE_SETUP +<<<<<<< HEAD #line 1792 "dhcp6_lexer.ll" +======= +#line 1820 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -4810,7 +4918,11 @@ YY_RULE_SETUP YY_BREAK case 169: YY_RULE_SETUP +<<<<<<< HEAD #line 1802 "dhcp6_lexer.ll" +======= +#line 1830 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4822,7 +4934,11 @@ YY_RULE_SETUP YY_BREAK case 170: YY_RULE_SETUP +<<<<<<< HEAD #line 1811 "dhcp6_lexer.ll" +======= +#line 1839 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4834,7 +4950,11 @@ YY_RULE_SETUP YY_BREAK case 171: YY_RULE_SETUP +<<<<<<< HEAD #line 1820 "dhcp6_lexer.ll" +======= +#line 1848 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -4846,7 +4966,11 @@ YY_RULE_SETUP YY_BREAK case 172: YY_RULE_SETUP +<<<<<<< HEAD #line 1829 "dhcp6_lexer.ll" +======= +#line 1857 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4858,7 +4982,11 @@ YY_RULE_SETUP YY_BREAK case 173: YY_RULE_SETUP +<<<<<<< HEAD #line 1838 "dhcp6_lexer.ll" +======= +#line 1866 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4870,7 +4998,11 @@ YY_RULE_SETUP YY_BREAK case 174: YY_RULE_SETUP +<<<<<<< HEAD #line 1847 "dhcp6_lexer.ll" +======= +#line 1875 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4882,7 +5014,11 @@ YY_RULE_SETUP YY_BREAK case 175: YY_RULE_SETUP +<<<<<<< HEAD #line 1856 "dhcp6_lexer.ll" +======= +#line 1884 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4894,7 +5030,11 @@ YY_RULE_SETUP YY_BREAK case 176: YY_RULE_SETUP +<<<<<<< HEAD #line 1865 "dhcp6_lexer.ll" +======= +#line 1893 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4906,7 +5046,11 @@ YY_RULE_SETUP YY_BREAK case 177: YY_RULE_SETUP +<<<<<<< HEAD #line 1874 "dhcp6_lexer.ll" +======= +#line 1902 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4918,7 +5062,11 @@ YY_RULE_SETUP YY_BREAK case 178: YY_RULE_SETUP +<<<<<<< HEAD #line 1883 "dhcp6_lexer.ll" +======= +#line 1911 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4930,7 +5078,11 @@ YY_RULE_SETUP YY_BREAK case 179: YY_RULE_SETUP +<<<<<<< HEAD #line 1892 "dhcp6_lexer.ll" +======= +#line 1920 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4942,7 +5094,11 @@ YY_RULE_SETUP YY_BREAK case 180: YY_RULE_SETUP +<<<<<<< HEAD #line 1901 "dhcp6_lexer.ll" +======= +#line 1929 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4954,7 +5110,11 @@ YY_RULE_SETUP YY_BREAK case 181: YY_RULE_SETUP +<<<<<<< HEAD #line 1910 "dhcp6_lexer.ll" +======= +#line 1938 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4966,7 +5126,11 @@ YY_RULE_SETUP YY_BREAK case 182: YY_RULE_SETUP +<<<<<<< HEAD #line 1919 "dhcp6_lexer.ll" +======= +#line 1947 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4978,7 +5142,11 @@ YY_RULE_SETUP YY_BREAK case 183: YY_RULE_SETUP +<<<<<<< HEAD #line 1928 "dhcp6_lexer.ll" +======= +#line 1956 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4990,7 +5158,11 @@ YY_RULE_SETUP YY_BREAK case 184: YY_RULE_SETUP +<<<<<<< HEAD #line 1937 "dhcp6_lexer.ll" +======= +#line 1965 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5002,7 +5174,11 @@ YY_RULE_SETUP YY_BREAK case 185: YY_RULE_SETUP +<<<<<<< HEAD #line 1946 "dhcp6_lexer.ll" +======= +#line 1974 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5014,7 +5190,11 @@ YY_RULE_SETUP YY_BREAK case 186: YY_RULE_SETUP +<<<<<<< HEAD #line 1955 "dhcp6_lexer.ll" +======= +#line 1983 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -5026,7 +5206,11 @@ YY_RULE_SETUP YY_BREAK case 187: YY_RULE_SETUP +<<<<<<< HEAD #line 1964 "dhcp6_lexer.ll" +======= +#line 1992 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5038,7 +5222,11 @@ YY_RULE_SETUP YY_BREAK case 188: YY_RULE_SETUP +<<<<<<< HEAD #line 1973 "dhcp6_lexer.ll" +======= +#line 2001 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5050,7 +5238,11 @@ YY_RULE_SETUP YY_BREAK case 189: YY_RULE_SETUP +<<<<<<< HEAD #line 1982 "dhcp6_lexer.ll" +======= +#line 2010 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5062,7 +5254,11 @@ YY_RULE_SETUP YY_BREAK case 190: YY_RULE_SETUP +<<<<<<< HEAD #line 1991 "dhcp6_lexer.ll" +======= +#line 2019 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5074,7 +5270,11 @@ YY_RULE_SETUP YY_BREAK case 191: YY_RULE_SETUP +<<<<<<< HEAD #line 2000 "dhcp6_lexer.ll" +======= +#line 2028 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_MULTI_THREADING: @@ -5086,7 +5286,11 @@ YY_RULE_SETUP YY_BREAK case 192: YY_RULE_SETUP +<<<<<<< HEAD #line 2009 "dhcp6_lexer.ll" +======= +#line 2037 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5098,7 +5302,11 @@ YY_RULE_SETUP YY_BREAK case 193: YY_RULE_SETUP +<<<<<<< HEAD #line 2018 "dhcp6_lexer.ll" +======= +#line 2046 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5110,7 +5318,11 @@ YY_RULE_SETUP YY_BREAK case 194: YY_RULE_SETUP +<<<<<<< HEAD #line 2027 "dhcp6_lexer.ll" +======= +#line 2055 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5122,7 +5334,11 @@ YY_RULE_SETUP YY_BREAK case 195: YY_RULE_SETUP +<<<<<<< HEAD #line 2036 "dhcp6_lexer.ll" +======= +#line 2064 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5134,7 +5350,11 @@ YY_RULE_SETUP YY_BREAK case 196: YY_RULE_SETUP +<<<<<<< HEAD #line 2045 "dhcp6_lexer.ll" +======= +#line 2073 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5146,7 +5366,11 @@ YY_RULE_SETUP YY_BREAK case 197: YY_RULE_SETUP +<<<<<<< HEAD #line 2054 "dhcp6_lexer.ll" +======= +#line 2082 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET_TYPE: @@ -5158,7 +5382,11 @@ YY_RULE_SETUP YY_BREAK case 198: YY_RULE_SETUP +<<<<<<< HEAD #line 2063 "dhcp6_lexer.ll" +======= +#line 2091 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5170,7 +5398,11 @@ YY_RULE_SETUP YY_BREAK case 199: YY_RULE_SETUP +<<<<<<< HEAD #line 2072 "dhcp6_lexer.ll" +======= +#line 2100 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5182,7 +5414,11 @@ YY_RULE_SETUP YY_BREAK case 200: YY_RULE_SETUP +<<<<<<< HEAD #line 2081 "dhcp6_lexer.ll" +======= +#line 2109 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5194,7 +5430,11 @@ YY_RULE_SETUP YY_BREAK case 201: YY_RULE_SETUP +<<<<<<< HEAD #line 2090 "dhcp6_lexer.ll" +======= +#line 2118 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5206,7 +5446,11 @@ YY_RULE_SETUP YY_BREAK case 202: YY_RULE_SETUP +<<<<<<< HEAD #line 2099 "dhcp6_lexer.ll" +======= +#line 2127 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTH_TYPE: @@ -5218,7 +5462,11 @@ YY_RULE_SETUP YY_BREAK case 203: YY_RULE_SETUP +<<<<<<< HEAD #line 2108 "dhcp6_lexer.ll" +======= +#line 2136 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5230,7 +5478,11 @@ YY_RULE_SETUP YY_BREAK case 204: YY_RULE_SETUP +<<<<<<< HEAD #line 2117 "dhcp6_lexer.ll" +======= +#line 2145 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5242,7 +5494,11 @@ YY_RULE_SETUP YY_BREAK case 205: YY_RULE_SETUP +<<<<<<< HEAD #line 2126 "dhcp6_lexer.ll" +======= +#line 2154 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::AUTHENTICATION: @@ -5254,7 +5510,11 @@ YY_RULE_SETUP YY_BREAK case 206: YY_RULE_SETUP +<<<<<<< HEAD #line 2135 "dhcp6_lexer.ll" +======= +#line 2163 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENTS: @@ -5266,7 +5526,11 @@ YY_RULE_SETUP YY_BREAK case 207: YY_RULE_SETUP +<<<<<<< HEAD #line 2144 "dhcp6_lexer.ll" +======= +#line 2172 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENTS: @@ -5278,7 +5542,11 @@ YY_RULE_SETUP YY_BREAK case 208: YY_RULE_SETUP +<<<<<<< HEAD #line 2153 "dhcp6_lexer.ll" +======= +#line 2181 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -5290,7 +5558,11 @@ YY_RULE_SETUP YY_BREAK case 209: YY_RULE_SETUP +<<<<<<< HEAD #line 2162 "dhcp6_lexer.ll" +======= +#line 2190 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5302,7 +5574,11 @@ YY_RULE_SETUP YY_BREAK case 210: YY_RULE_SETUP +<<<<<<< HEAD #line 2171 "dhcp6_lexer.ll" +======= +#line 2199 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5314,7 +5590,11 @@ YY_RULE_SETUP YY_BREAK case 211: YY_RULE_SETUP +<<<<<<< HEAD #line 2180 "dhcp6_lexer.ll" +======= +#line 2208 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5326,7 +5606,11 @@ YY_RULE_SETUP YY_BREAK case 212: YY_RULE_SETUP +<<<<<<< HEAD #line 2189 "dhcp6_lexer.ll" +======= +#line 2217 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP_QUEUE_CONTROL: @@ -5338,7 +5622,11 @@ YY_RULE_SETUP YY_BREAK case 213: YY_RULE_SETUP +<<<<<<< HEAD #line 2198 "dhcp6_lexer.ll" +======= +#line 2226 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5350,7 +5638,11 @@ YY_RULE_SETUP YY_BREAK case 214: YY_RULE_SETUP +<<<<<<< HEAD #line 2207 "dhcp6_lexer.ll" +======= +#line 2235 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5362,7 +5654,11 @@ YY_RULE_SETUP YY_BREAK case 215: YY_RULE_SETUP +<<<<<<< HEAD #line 2216 "dhcp6_lexer.ll" +======= +#line 2244 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5374,7 +5670,11 @@ YY_RULE_SETUP YY_BREAK case 216: YY_RULE_SETUP +<<<<<<< HEAD #line 2225 "dhcp6_lexer.ll" +======= +#line 2253 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5386,7 +5686,11 @@ YY_RULE_SETUP YY_BREAK case 217: YY_RULE_SETUP +<<<<<<< HEAD #line 2234 "dhcp6_lexer.ll" +======= +#line 2262 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -5398,7 +5702,11 @@ YY_RULE_SETUP YY_BREAK case 218: YY_RULE_SETUP +<<<<<<< HEAD #line 2243 "dhcp6_lexer.ll" +======= +#line 2271 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { switch(driver.ctx_) { case isc::dhcp::Parser6Context::COMPATIBILITY: @@ -5410,7 +5718,11 @@ YY_RULE_SETUP YY_BREAK case 219: YY_RULE_SETUP +<<<<<<< HEAD #line 2252 "dhcp6_lexer.ll" +======= +#line 2280 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* 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. @@ -5515,7 +5827,11 @@ YY_RULE_SETUP case 220: /* rule 220 can match eol */ YY_RULE_SETUP +<<<<<<< HEAD #line 2353 "dhcp6_lexer.ll" +======= +#line 2381 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* Bad string with a forbidden control character inside */ std::string raw(yytext+1); @@ -5535,7 +5851,11 @@ YY_RULE_SETUP case 221: /* rule 221 can match eol */ YY_RULE_SETUP +<<<<<<< HEAD #line 2369 "dhcp6_lexer.ll" +======= +#line 2397 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* Bad string with a bad escape inside */ std::string raw(yytext+1); @@ -5587,7 +5907,11 @@ YY_RULE_SETUP YY_BREAK case 222: YY_RULE_SETUP +<<<<<<< HEAD #line 2418 "dhcp6_lexer.ll" +======= +#line 2446 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* Bad string with an open escape at the end */ std::string raw(yytext+1); @@ -5598,7 +5922,11 @@ YY_RULE_SETUP YY_BREAK case 223: YY_RULE_SETUP +<<<<<<< HEAD #line 2426 "dhcp6_lexer.ll" +======= +#line 2454 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* Bad string with an open unicode escape at the end */ std::string raw(yytext+1); @@ -5631,6 +5959,7 @@ YY_RULE_SETUP YY_BREAK case 227: YY_RULE_SETUP +<<<<<<< HEAD #line 2444 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK @@ -5647,6 +5976,39 @@ YY_RULE_SETUP case 230: YY_RULE_SETUP #line 2448 "dhcp6_lexer.ll" +======= +#line 2469 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } + YY_BREAK +case 228: +YY_RULE_SETUP +#line 2470 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } + YY_BREAK +case 229: +YY_RULE_SETUP +#line 2471 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 230: +YY_RULE_SETUP +#line 2472 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } + YY_BREAK +case 231: +YY_RULE_SETUP +#line 2473 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } + YY_BREAK +case 232: +YY_RULE_SETUP +#line 2474 "dhcp6_lexer.ll" +{ return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } + YY_BREAK +case 233: +YY_RULE_SETUP +#line 2476 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* An integer was found. */ std::string tmp(yytext); @@ -5667,7 +6029,11 @@ YY_RULE_SETUP YY_BREAK case 231: YY_RULE_SETUP +<<<<<<< HEAD #line 2466 "dhcp6_lexer.ll" +======= +#line 2494 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { /* A floating point was found. */ std::string tmp(yytext); @@ -5683,7 +6049,11 @@ YY_RULE_SETUP YY_BREAK case 232: YY_RULE_SETUP +<<<<<<< HEAD #line 2479 "dhcp6_lexer.ll" +======= +#line 2507 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); @@ -5691,33 +6061,57 @@ YY_RULE_SETUP YY_BREAK case 233: YY_RULE_SETUP +<<<<<<< HEAD #line 2484 "dhcp6_lexer.ll" +======= +#line 2512 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK case 234: YY_RULE_SETUP +<<<<<<< HEAD #line 2488 "dhcp6_lexer.ll" +======= +#line 2516 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK case 235: YY_RULE_SETUP +<<<<<<< HEAD #line 2490 "dhcp6_lexer.ll" +======= +#line 2518 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK case 236: YY_RULE_SETUP +<<<<<<< HEAD #line 2492 "dhcp6_lexer.ll" +======= +#line 2520 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK case 237: YY_RULE_SETUP +<<<<<<< HEAD #line 2494 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): #line 2496 "dhcp6_lexer.ll" +======= +#line 2522 "dhcp6_lexer.ll" +driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); + YY_BREAK +case YY_STATE_EOF(INITIAL): +#line 2524 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -5743,10 +6137,17 @@ case YY_STATE_EOF(INITIAL): YY_BREAK case 238: YY_RULE_SETUP +<<<<<<< HEAD #line 2519 "dhcp6_lexer.ll" ECHO; YY_BREAK #line 5749 "dhcp6_lexer.cc" +======= +#line 2547 "dhcp6_lexer.ll" +ECHO; + YY_BREAK +#line 5800 "dhcp6_lexer.cc" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) case YY_END_OF_BUFFER: { @@ -6851,7 +7252,11 @@ void yyfree (void * ptr ) /* %ok-for-header */ +<<<<<<< HEAD #line 2519 "dhcp6_lexer.ll" +======= +#line 2547 "dhcp6_lexer.ll" +>>>>>>> b1cd980387 ([#3583] Added client-class to OptionDescriptor) using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index dcb3548a77..073aec7db2 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -1606,6 +1606,7 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu] switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::RESERVATIONS: + case isc::dhcp::Parser6Context::OPTION_DATA: return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_); diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 744923e70f..2cac8b4a67 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -3236,8 +3236,8 @@ namespace isc { namespace dhcp { #line 3237 "dhcp6_parser.cc" break; - case 574: // $@82: %empty -#line 2044 "dhcp6_parser.yy" + case 575: // $@82: %empty +#line 2045 "dhcp6_parser.yy" { ctx.unique("data", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); @@ -3245,8 +3245,8 @@ namespace isc { namespace dhcp { #line 3246 "dhcp6_parser.cc" break; - case 575: // option_data_data: "data" $@82 ":" "constant string" -#line 2047 "dhcp6_parser.yy" + case 576: // option_data_data: "data" $@82 ":" "constant string" +#line 2048 "dhcp6_parser.yy" { ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); @@ -3255,8 +3255,8 @@ namespace isc { namespace dhcp { #line 3256 "dhcp6_parser.cc" break; - case 578: // option_data_csv_format: "csv-format" ":" "boolean" -#line 2057 "dhcp6_parser.yy" + case 579: // option_data_csv_format: "csv-format" ":" "boolean" +#line 2058 "dhcp6_parser.yy" { ctx.unique("csv-format", ctx.loc2pos(yystack_[2].location)); ElementPtr csv(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3265,8 +3265,8 @@ namespace isc { namespace dhcp { #line 3266 "dhcp6_parser.cc" break; - case 579: // option_data_always_send: "always-send" ":" "boolean" -#line 2063 "dhcp6_parser.yy" + case 580: // option_data_always_send: "always-send" ":" "boolean" +#line 2064 "dhcp6_parser.yy" { ctx.unique("always-send", ctx.loc2pos(yystack_[2].location)); ElementPtr persist(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3275,8 +3275,8 @@ namespace isc { namespace dhcp { #line 3276 "dhcp6_parser.cc" break; - case 580: // option_data_never_send: "never-send" ":" "boolean" -#line 2069 "dhcp6_parser.yy" + case 581: // option_data_never_send: "never-send" ":" "boolean" +#line 2070 "dhcp6_parser.yy" { ctx.unique("never-send", ctx.loc2pos(yystack_[2].location)); ElementPtr cancel(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); @@ -3285,8 +3285,29 @@ namespace isc { namespace dhcp { #line 3286 "dhcp6_parser.cc" break; - case 581: // $@83: %empty -#line 2078 "dhcp6_parser.yy" + case 582: // $@83: %empty +#line 2076 "dhcp6_parser.yy" + { + ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); + ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("client-classes", c); + ctx.stack_.push_back(c); + ctx.enter(ctx.NO_KEYWORD); +} +#line 3298 "dhcp6_parser.cc" + break; + + case 583: // option_data_client_classes: "client-classes" $@83 ":" list_strings +#line 2082 "dhcp6_parser.yy" + { + ctx.stack_.pop_back(); + ctx.leave(); +} +#line 3307 "dhcp6_parser.cc" + break; + + case 584: // $@84: %empty +#line 2090 "dhcp6_parser.yy" { ctx.unique("pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3294,113 +3315,113 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 3298 "dhcp6_parser.cc" +#line 3319 "dhcp6_parser.cc" break; - case 582: // pools_list: "pools" $@83 ":" "[" pools_list_content "]" -#line 2084 "dhcp6_parser.yy" + case 585: // pools_list: "pools" $@84 ":" "[" pools_list_content "]" +#line 2096 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3307 "dhcp6_parser.cc" +#line 3328 "dhcp6_parser.cc" break; - case 587: // not_empty_pools_list: not_empty_pools_list "," -#line 2097 "dhcp6_parser.yy" + case 590: // not_empty_pools_list: not_empty_pools_list "," +#line 2109 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3315 "dhcp6_parser.cc" +#line 3336 "dhcp6_parser.cc" break; - case 588: // $@84: %empty -#line 2102 "dhcp6_parser.yy" + case 591: // $@85: %empty +#line 2114 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3325 "dhcp6_parser.cc" +#line 3346 "dhcp6_parser.cc" break; - case 589: // pool_list_entry: "{" $@84 pool_params "}" -#line 2106 "dhcp6_parser.yy" + case 592: // pool_list_entry: "{" $@85 pool_params "}" +#line 2118 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3335 "dhcp6_parser.cc" +#line 3356 "dhcp6_parser.cc" break; - case 590: // $@85: %empty -#line 2112 "dhcp6_parser.yy" + case 593: // $@86: %empty +#line 2124 "dhcp6_parser.yy" { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3345 "dhcp6_parser.cc" +#line 3366 "dhcp6_parser.cc" break; - case 591: // sub_pool6: "{" $@85 pool_params "}" -#line 2116 "dhcp6_parser.yy" + case 594: // sub_pool6: "{" $@86 pool_params "}" +#line 2128 "dhcp6_parser.yy" { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3355 "dhcp6_parser.cc" +#line 3376 "dhcp6_parser.cc" break; - case 594: // pool_params: pool_params "," -#line 2124 "dhcp6_parser.yy" + case 597: // pool_params: pool_params "," +#line 2136 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3363 "dhcp6_parser.cc" +#line 3384 "dhcp6_parser.cc" break; - case 603: // $@86: %empty -#line 2139 "dhcp6_parser.yy" + case 606: // $@87: %empty +#line 2151 "dhcp6_parser.yy" { ctx.unique("pool", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3372 "dhcp6_parser.cc" +#line 3393 "dhcp6_parser.cc" break; - case 604: // pool_entry: "pool" $@86 ":" "constant string" -#line 2142 "dhcp6_parser.yy" + case 607: // pool_entry: "pool" $@87 ":" "constant string" +#line 2154 "dhcp6_parser.yy" { ElementPtr pool(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 3382 "dhcp6_parser.cc" +#line 3403 "dhcp6_parser.cc" break; - case 605: // pool_id: "pool-id" ":" "integer" -#line 2148 "dhcp6_parser.yy" + case 608: // pool_id: "pool-id" ":" "integer" +#line 2160 "dhcp6_parser.yy" { ctx.unique("pool-id", ctx.loc2pos(yystack_[2].location)); ElementPtr id(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool-id", id); } -#line 3392 "dhcp6_parser.cc" +#line 3413 "dhcp6_parser.cc" break; - case 606: // $@87: %empty -#line 2154 "dhcp6_parser.yy" + case 609: // $@88: %empty +#line 2166 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3400 "dhcp6_parser.cc" +#line 3421 "dhcp6_parser.cc" break; - case 607: // user_context: "user-context" $@87 ":" map_value -#line 2156 "dhcp6_parser.yy" + case 610: // user_context: "user-context" $@88 ":" map_value +#line 2168 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as < ElementPtr > (); @@ -3423,19 +3444,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3427 "dhcp6_parser.cc" +#line 3448 "dhcp6_parser.cc" break; - case 608: // $@88: %empty -#line 2179 "dhcp6_parser.yy" + case 611: // $@89: %empty +#line 2191 "dhcp6_parser.yy" { ctx.enter(ctx.NO_KEYWORD); } -#line 3435 "dhcp6_parser.cc" +#line 3456 "dhcp6_parser.cc" break; - case 609: // comment: "comment" $@88 ":" "constant string" -#line 2181 "dhcp6_parser.yy" + case 612: // comment: "comment" $@89 ":" "constant string" +#line 2193 "dhcp6_parser.yy" { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -3460,11 +3481,11 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 3464 "dhcp6_parser.cc" +#line 3485 "dhcp6_parser.cc" break; - case 610: // $@89: %empty -#line 2209 "dhcp6_parser.yy" + case 613: // $@90: %empty +#line 2221 "dhcp6_parser.yy" { ctx.unique("pd-pools", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3472,38 +3493,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 3476 "dhcp6_parser.cc" +#line 3497 "dhcp6_parser.cc" break; - case 611: // pd_pools_list: "pd-pools" $@89 ":" "[" pd_pools_list_content "]" -#line 2215 "dhcp6_parser.yy" + case 614: // pd_pools_list: "pd-pools" $@90 ":" "[" pd_pools_list_content "]" +#line 2227 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3485 "dhcp6_parser.cc" +#line 3506 "dhcp6_parser.cc" break; - case 616: // not_empty_pd_pools_list: not_empty_pd_pools_list "," -#line 2228 "dhcp6_parser.yy" + case 619: // not_empty_pd_pools_list: not_empty_pd_pools_list "," +#line 2240 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3493 "dhcp6_parser.cc" +#line 3514 "dhcp6_parser.cc" break; - case 617: // $@90: %empty -#line 2233 "dhcp6_parser.yy" + case 620: // $@91: %empty +#line 2245 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3503 "dhcp6_parser.cc" +#line 3524 "dhcp6_parser.cc" break; - case 618: // pd_pool_entry: "{" $@90 pd_pool_params "}" -#line 2237 "dhcp6_parser.yy" + case 621: // pd_pool_entry: "{" $@91 pd_pool_params "}" +#line 2249 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3511,21 +3532,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3515 "dhcp6_parser.cc" +#line 3536 "dhcp6_parser.cc" break; - case 619: // $@91: %empty -#line 2245 "dhcp6_parser.yy" + case 622: // $@92: %empty +#line 2257 "dhcp6_parser.yy" { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3525 "dhcp6_parser.cc" +#line 3546 "dhcp6_parser.cc" break; - case 620: // sub_pd_pool: "{" $@91 pd_pool_params "}" -#line 2249 "dhcp6_parser.yy" + case 623: // sub_pd_pool: "{" $@92 pd_pool_params "}" +#line 2261 "dhcp6_parser.yy" { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -3533,87 +3554,87 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 3537 "dhcp6_parser.cc" +#line 3558 "dhcp6_parser.cc" break; - case 623: // pd_pool_params: pd_pool_params "," -#line 2259 "dhcp6_parser.yy" + case 626: // pd_pool_params: pd_pool_params "," +#line 2271 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3545 "dhcp6_parser.cc" +#line 3566 "dhcp6_parser.cc" break; - case 636: // $@92: %empty -#line 2278 "dhcp6_parser.yy" + case 639: // $@93: %empty +#line 2290 "dhcp6_parser.yy" { ctx.unique("prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3554 "dhcp6_parser.cc" +#line 3575 "dhcp6_parser.cc" break; - case 637: // pd_prefix: "prefix" $@92 ":" "constant string" -#line 2281 "dhcp6_parser.yy" + case 640: // pd_prefix: "prefix" $@93 ":" "constant string" +#line 2293 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 3564 "dhcp6_parser.cc" +#line 3585 "dhcp6_parser.cc" break; - case 638: // pd_prefix_len: "prefix-len" ":" "integer" -#line 2287 "dhcp6_parser.yy" + case 641: // pd_prefix_len: "prefix-len" ":" "integer" +#line 2299 "dhcp6_parser.yy" { ctx.unique("prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 3574 "dhcp6_parser.cc" +#line 3595 "dhcp6_parser.cc" break; - case 639: // $@93: %empty -#line 2293 "dhcp6_parser.yy" + case 642: // $@94: %empty +#line 2305 "dhcp6_parser.yy" { ctx.unique("excluded-prefix", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3583 "dhcp6_parser.cc" +#line 3604 "dhcp6_parser.cc" break; - case 640: // excluded_prefix: "excluded-prefix" $@93 ":" "constant string" -#line 2296 "dhcp6_parser.yy" + case 643: // excluded_prefix: "excluded-prefix" $@94 ":" "constant string" +#line 2308 "dhcp6_parser.yy" { ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 3593 "dhcp6_parser.cc" +#line 3614 "dhcp6_parser.cc" break; - case 641: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" -#line 2302 "dhcp6_parser.yy" + case 644: // excluded_prefix_len: "excluded-prefix-len" ":" "integer" +#line 2314 "dhcp6_parser.yy" { ctx.unique("excluded-prefix-len", ctx.loc2pos(yystack_[2].location)); ElementPtr prf(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 3603 "dhcp6_parser.cc" +#line 3624 "dhcp6_parser.cc" break; - case 642: // pd_delegated_len: "delegated-len" ":" "integer" -#line 2308 "dhcp6_parser.yy" + case 645: // pd_delegated_len: "delegated-len" ":" "integer" +#line 2320 "dhcp6_parser.yy" { ctx.unique("delegated-len", ctx.loc2pos(yystack_[2].location)); ElementPtr deleg(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 3613 "dhcp6_parser.cc" +#line 3634 "dhcp6_parser.cc" break; - case 643: // $@94: %empty -#line 2317 "dhcp6_parser.yy" + case 646: // $@95: %empty +#line 2329 "dhcp6_parser.yy" { ctx.unique("reservations", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3621,74 +3642,74 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 3625 "dhcp6_parser.cc" +#line 3646 "dhcp6_parser.cc" break; - case 644: // reservations: "reservations" $@94 ":" "[" reservations_list "]" -#line 2323 "dhcp6_parser.yy" + case 647: // reservations: "reservations" $@95 ":" "[" reservations_list "]" +#line 2335 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3634 "dhcp6_parser.cc" +#line 3655 "dhcp6_parser.cc" break; - case 649: // not_empty_reservations_list: not_empty_reservations_list "," -#line 2334 "dhcp6_parser.yy" + case 652: // not_empty_reservations_list: not_empty_reservations_list "," +#line 2346 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3642 "dhcp6_parser.cc" +#line 3663 "dhcp6_parser.cc" break; - case 650: // $@95: %empty -#line 2339 "dhcp6_parser.yy" + case 653: // $@96: %empty +#line 2351 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3652 "dhcp6_parser.cc" +#line 3673 "dhcp6_parser.cc" break; - case 651: // reservation: "{" $@95 reservation_params "}" -#line 2343 "dhcp6_parser.yy" + case 654: // reservation: "{" $@96 reservation_params "}" +#line 2355 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 3661 "dhcp6_parser.cc" +#line 3682 "dhcp6_parser.cc" break; - case 652: // $@96: %empty -#line 2348 "dhcp6_parser.yy" + case 655: // $@97: %empty +#line 2360 "dhcp6_parser.yy" { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3671 "dhcp6_parser.cc" +#line 3692 "dhcp6_parser.cc" break; - case 653: // sub_reservation: "{" $@96 reservation_params "}" -#line 2352 "dhcp6_parser.yy" + case 656: // sub_reservation: "{" $@97 reservation_params "}" +#line 2364 "dhcp6_parser.yy" { /// @todo: an identifier parameter is required. // parsing completed } -#line 3680 "dhcp6_parser.cc" +#line 3701 "dhcp6_parser.cc" break; - case 658: // not_empty_reservation_params: not_empty_reservation_params "," -#line 2363 "dhcp6_parser.yy" + case 661: // not_empty_reservation_params: not_empty_reservation_params "," +#line 2375 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3688 "dhcp6_parser.cc" +#line 3709 "dhcp6_parser.cc" break; - case 671: // $@97: %empty -#line 2383 "dhcp6_parser.yy" + case 674: // $@98: %empty +#line 2395 "dhcp6_parser.yy" { ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3696,20 +3717,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3700 "dhcp6_parser.cc" +#line 3721 "dhcp6_parser.cc" break; - case 672: // ip_addresses: "ip-addresses" $@97 ":" list_strings -#line 2389 "dhcp6_parser.yy" + case 675: // ip_addresses: "ip-addresses" $@98 ":" list_strings +#line 2401 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3709 "dhcp6_parser.cc" +#line 3730 "dhcp6_parser.cc" break; - case 673: // $@98: %empty -#line 2394 "dhcp6_parser.yy" + case 676: // $@99: %empty +#line 2406 "dhcp6_parser.yy" { ctx.unique("prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3717,20 +3738,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3721 "dhcp6_parser.cc" +#line 3742 "dhcp6_parser.cc" break; - case 674: // prefixes: "prefixes" $@98 ":" list_strings -#line 2400 "dhcp6_parser.yy" + case 677: // prefixes: "prefixes" $@99 ":" list_strings +#line 2412 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3730 "dhcp6_parser.cc" +#line 3751 "dhcp6_parser.cc" break; - case 675: // $@99: %empty -#line 2405 "dhcp6_parser.yy" + case 678: // $@100: %empty +#line 2417 "dhcp6_parser.yy" { ctx.unique("excluded-prefixes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3738,96 +3759,96 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 3742 "dhcp6_parser.cc" +#line 3763 "dhcp6_parser.cc" break; - case 676: // excluded_prefixes: "excluded-prefixes" $@99 ":" list_strings -#line 2411 "dhcp6_parser.yy" + case 679: // excluded_prefixes: "excluded-prefixes" $@100 ":" list_strings +#line 2423 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3751 "dhcp6_parser.cc" +#line 3772 "dhcp6_parser.cc" break; - case 677: // $@100: %empty -#line 2416 "dhcp6_parser.yy" + case 680: // $@101: %empty +#line 2428 "dhcp6_parser.yy" { ctx.unique("duid", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3760 "dhcp6_parser.cc" +#line 3781 "dhcp6_parser.cc" break; - case 678: // duid: "duid" $@100 ":" "constant string" -#line 2419 "dhcp6_parser.yy" + case 681: // duid: "duid" $@101 ":" "constant string" +#line 2431 "dhcp6_parser.yy" { ElementPtr d(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 3770 "dhcp6_parser.cc" +#line 3791 "dhcp6_parser.cc" break; - case 679: // $@101: %empty -#line 2425 "dhcp6_parser.yy" + case 682: // $@102: %empty +#line 2437 "dhcp6_parser.yy" { ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3779 "dhcp6_parser.cc" +#line 3800 "dhcp6_parser.cc" break; - case 680: // hw_address: "hw-address" $@101 ":" "constant string" -#line 2428 "dhcp6_parser.yy" + case 683: // hw_address: "hw-address" $@102 ":" "constant string" +#line 2440 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hw-address", hw); ctx.leave(); } -#line 3789 "dhcp6_parser.cc" +#line 3810 "dhcp6_parser.cc" break; - case 681: // $@102: %empty -#line 2434 "dhcp6_parser.yy" + case 684: // $@103: %empty +#line 2446 "dhcp6_parser.yy" { ctx.unique("hostname", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3798 "dhcp6_parser.cc" +#line 3819 "dhcp6_parser.cc" break; - case 682: // hostname: "hostname" $@102 ":" "constant string" -#line 2437 "dhcp6_parser.yy" + case 685: // hostname: "hostname" $@103 ":" "constant string" +#line 2449 "dhcp6_parser.yy" { ElementPtr host(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 3808 "dhcp6_parser.cc" +#line 3829 "dhcp6_parser.cc" break; - case 683: // $@103: %empty -#line 2443 "dhcp6_parser.yy" + case 686: // $@104: %empty +#line 2455 "dhcp6_parser.yy" { ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3817 "dhcp6_parser.cc" +#line 3838 "dhcp6_parser.cc" break; - case 684: // flex_id_value: "flex-id" $@103 ":" "constant string" -#line 2446 "dhcp6_parser.yy" + case 687: // flex_id_value: "flex-id" $@104 ":" "constant string" +#line 2458 "dhcp6_parser.yy" { ElementPtr hw(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flex-id", hw); ctx.leave(); } -#line 3827 "dhcp6_parser.cc" +#line 3848 "dhcp6_parser.cc" break; - case 685: // $@104: %empty -#line 2452 "dhcp6_parser.yy" + case 688: // $@105: %empty +#line 2464 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3835,20 +3856,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 3839 "dhcp6_parser.cc" +#line 3860 "dhcp6_parser.cc" break; - case 686: // reservation_client_classes: "client-classes" $@104 ":" list_strings -#line 2458 "dhcp6_parser.yy" + case 689: // reservation_client_classes: "client-classes" $@105 ":" list_strings +#line 2470 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3848 "dhcp6_parser.cc" +#line 3869 "dhcp6_parser.cc" break; - case 687: // $@105: %empty -#line 2466 "dhcp6_parser.yy" + case 690: // $@106: %empty +#line 2478 "dhcp6_parser.yy" { ctx.unique("relay", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3856,20 +3877,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 3860 "dhcp6_parser.cc" +#line 3881 "dhcp6_parser.cc" break; - case 688: // relay: "relay" $@105 ":" "{" relay_map "}" -#line 2472 "dhcp6_parser.yy" + case 691: // relay: "relay" $@106 ":" "{" relay_map "}" +#line 2484 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3869 "dhcp6_parser.cc" +#line 3890 "dhcp6_parser.cc" break; - case 690: // $@106: %empty -#line 2483 "dhcp6_parser.yy" + case 693: // $@107: %empty +#line 2495 "dhcp6_parser.yy" { ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -3877,104 +3898,104 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 3881 "dhcp6_parser.cc" +#line 3902 "dhcp6_parser.cc" break; - case 691: // client_classes: "client-classes" $@106 ":" "[" client_classes_list "]" -#line 2489 "dhcp6_parser.yy" + case 694: // client_classes: "client-classes" $@107 ":" "[" client_classes_list "]" +#line 2501 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 3890 "dhcp6_parser.cc" +#line 3911 "dhcp6_parser.cc" break; - case 694: // client_classes_list: client_classes_list "," -#line 2496 "dhcp6_parser.yy" + case 697: // client_classes_list: client_classes_list "," +#line 2508 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3898 "dhcp6_parser.cc" +#line 3919 "dhcp6_parser.cc" break; - case 695: // $@107: %empty -#line 2501 "dhcp6_parser.yy" + case 698: // $@108: %empty +#line 2513 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3908 "dhcp6_parser.cc" +#line 3929 "dhcp6_parser.cc" break; - case 696: // client_class_entry: "{" $@107 client_class_params "}" -#line 2505 "dhcp6_parser.yy" + case 699: // client_class_entry: "{" $@108 client_class_params "}" +#line 2517 "dhcp6_parser.yy" { // The name client class parameter is required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 3918 "dhcp6_parser.cc" +#line 3939 "dhcp6_parser.cc" break; - case 701: // not_empty_client_class_params: not_empty_client_class_params "," -#line 2517 "dhcp6_parser.yy" + case 704: // not_empty_client_class_params: not_empty_client_class_params "," +#line 2529 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 3926 "dhcp6_parser.cc" +#line 3947 "dhcp6_parser.cc" break; - case 717: // $@108: %empty -#line 2540 "dhcp6_parser.yy" + case 720: // $@109: %empty +#line 2552 "dhcp6_parser.yy" { ctx.unique("test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3935 "dhcp6_parser.cc" +#line 3956 "dhcp6_parser.cc" break; - case 718: // client_class_test: "test" $@108 ":" "constant string" -#line 2543 "dhcp6_parser.yy" + case 721: // client_class_test: "test" $@109 ":" "constant string" +#line 2555 "dhcp6_parser.yy" { ElementPtr test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 3945 "dhcp6_parser.cc" +#line 3966 "dhcp6_parser.cc" break; - case 719: // $@109: %empty -#line 2549 "dhcp6_parser.yy" + case 722: // $@110: %empty +#line 2561 "dhcp6_parser.yy" { ctx.unique("template-test", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 3954 "dhcp6_parser.cc" +#line 3975 "dhcp6_parser.cc" break; - case 720: // client_class_template_test: "template-test" $@109 ":" "constant string" -#line 2552 "dhcp6_parser.yy" + case 723: // client_class_template_test: "template-test" $@110 ":" "constant string" +#line 2564 "dhcp6_parser.yy" { ElementPtr template_test(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("template-test", template_test); ctx.leave(); } -#line 3964 "dhcp6_parser.cc" +#line 3985 "dhcp6_parser.cc" break; - case 721: // only_if_required: "only-if-required" ":" "boolean" -#line 2558 "dhcp6_parser.yy" + case 724: // only_if_required: "only-if-required" ":" "boolean" +#line 2570 "dhcp6_parser.yy" { ctx.unique("only-if-required", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 3974 "dhcp6_parser.cc" +#line 3995 "dhcp6_parser.cc" break; - case 722: // $@110: %empty -#line 2567 "dhcp6_parser.yy" + case 725: // $@111: %empty +#line 2579 "dhcp6_parser.yy" { ctx.unique("server-id", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -3982,125 +4003,125 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 3986 "dhcp6_parser.cc" +#line 4007 "dhcp6_parser.cc" break; - case 723: // server_id: "server-id" $@110 ":" "{" server_id_params "}" -#line 2573 "dhcp6_parser.yy" + case 726: // server_id: "server-id" $@111 ":" "{" server_id_params "}" +#line 2585 "dhcp6_parser.yy" { // The type parameter is required. ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 3997 "dhcp6_parser.cc" +#line 4018 "dhcp6_parser.cc" break; - case 726: // server_id_params: server_id_params "," -#line 2582 "dhcp6_parser.yy" + case 729: // server_id_params: server_id_params "," +#line 2594 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4005 "dhcp6_parser.cc" +#line 4026 "dhcp6_parser.cc" break; - case 736: // $@111: %empty -#line 2598 "dhcp6_parser.yy" + case 739: // $@112: %empty +#line 2610 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.DUID_TYPE); } -#line 4014 "dhcp6_parser.cc" +#line 4035 "dhcp6_parser.cc" break; - case 737: // server_id_type: "type" $@111 ":" duid_type -#line 2601 "dhcp6_parser.yy" + case 740: // server_id_type: "type" $@112 ":" duid_type +#line 2613 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4023 "dhcp6_parser.cc" +#line 4044 "dhcp6_parser.cc" break; - case 738: // duid_type: "LLT" -#line 2606 "dhcp6_parser.yy" + case 741: // duid_type: "LLT" +#line 2618 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 4029 "dhcp6_parser.cc" +#line 4050 "dhcp6_parser.cc" break; - case 739: // duid_type: "EN" -#line 2607 "dhcp6_parser.yy" + case 742: // duid_type: "EN" +#line 2619 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 4035 "dhcp6_parser.cc" +#line 4056 "dhcp6_parser.cc" break; - case 740: // duid_type: "LL" -#line 2608 "dhcp6_parser.yy" + case 743: // duid_type: "LL" +#line 2620 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 4041 "dhcp6_parser.cc" +#line 4062 "dhcp6_parser.cc" break; - case 741: // htype: "htype" ":" "integer" -#line 2611 "dhcp6_parser.yy" + case 744: // htype: "htype" ":" "integer" +#line 2623 "dhcp6_parser.yy" { ctx.unique("htype", ctx.loc2pos(yystack_[2].location)); ElementPtr htype(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 4051 "dhcp6_parser.cc" +#line 4072 "dhcp6_parser.cc" break; - case 742: // $@112: %empty -#line 2617 "dhcp6_parser.yy" + case 745: // $@113: %empty +#line 2629 "dhcp6_parser.yy" { ctx.unique("identifier", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4060 "dhcp6_parser.cc" +#line 4081 "dhcp6_parser.cc" break; - case 743: // identifier: "identifier" $@112 ":" "constant string" -#line 2620 "dhcp6_parser.yy" + case 746: // identifier: "identifier" $@113 ":" "constant string" +#line 2632 "dhcp6_parser.yy" { ElementPtr id(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 4070 "dhcp6_parser.cc" +#line 4091 "dhcp6_parser.cc" break; - case 744: // time: "time" ":" "integer" -#line 2626 "dhcp6_parser.yy" + case 747: // time: "time" ":" "integer" +#line 2638 "dhcp6_parser.yy" { ctx.unique("time", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 4080 "dhcp6_parser.cc" +#line 4101 "dhcp6_parser.cc" break; - case 745: // enterprise_id: "enterprise-id" ":" "integer" -#line 2632 "dhcp6_parser.yy" + case 748: // enterprise_id: "enterprise-id" ":" "integer" +#line 2644 "dhcp6_parser.yy" { ctx.unique("enterprise-id", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 4090 "dhcp6_parser.cc" +#line 4111 "dhcp6_parser.cc" break; - case 746: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" -#line 2640 "dhcp6_parser.yy" + case 749: // dhcp4o6_port: "dhcp4o6-port" ":" "integer" +#line 2652 "dhcp6_parser.yy" { ctx.unique("dhcp4o6-port", ctx.loc2pos(yystack_[2].location)); ElementPtr time(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 4100 "dhcp6_parser.cc" +#line 4121 "dhcp6_parser.cc" break; - case 747: // $@113: %empty -#line 2648 "dhcp6_parser.yy" + case 750: // $@114: %empty +#line 2660 "dhcp6_parser.yy" { ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); @@ -4109,20 +4130,20 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4113 "dhcp6_parser.cc" +#line 4134 "dhcp6_parser.cc" break; - case 748: // control_socket: "control-socket" $@113 ":" "{" control_socket_params "}" -#line 2655 "dhcp6_parser.yy" + case 751: // control_socket: "control-socket" $@114 ":" "{" control_socket_params "}" +#line 2667 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4122 "dhcp6_parser.cc" +#line 4143 "dhcp6_parser.cc" break; - case 749: // $@114: %empty -#line 2660 "dhcp6_parser.yy" + case 752: // $@115: %empty +#line 2672 "dhcp6_parser.yy" { ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location)); ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location)); @@ -4131,150 +4152,150 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONTROL_SOCKET); } -#line 4135 "dhcp6_parser.cc" +#line 4156 "dhcp6_parser.cc" break; - case 750: // control_sockets: "control-sockets" $@114 ":" "[" control_socket_list "]" -#line 2667 "dhcp6_parser.yy" + case 753: // control_sockets: "control-sockets" $@115 ":" "[" control_socket_list "]" +#line 2679 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4144 "dhcp6_parser.cc" +#line 4165 "dhcp6_parser.cc" break; - case 755: // not_empty_control_socket_list: not_empty_control_socket_list "," -#line 2678 "dhcp6_parser.yy" + case 758: // not_empty_control_socket_list: not_empty_control_socket_list "," +#line 2690 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4152 "dhcp6_parser.cc" +#line 4173 "dhcp6_parser.cc" break; - case 756: // $@115: %empty -#line 2683 "dhcp6_parser.yy" + case 759: // $@116: %empty +#line 2695 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4162 "dhcp6_parser.cc" +#line 4183 "dhcp6_parser.cc" break; - case 757: // control_socket_entry: "{" $@115 control_socket_params "}" -#line 2687 "dhcp6_parser.yy" + case 760: // control_socket_entry: "{" $@116 control_socket_params "}" +#line 2699 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4170 "dhcp6_parser.cc" +#line 4191 "dhcp6_parser.cc" break; - case 760: // control_socket_params: control_socket_params "," -#line 2693 "dhcp6_parser.yy" + case 763: // control_socket_params: control_socket_params "," +#line 2705 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4178 "dhcp6_parser.cc" +#line 4199 "dhcp6_parser.cc" break; - case 773: // $@116: %empty -#line 2712 "dhcp6_parser.yy" + case 776: // $@117: %empty +#line 2724 "dhcp6_parser.yy" { ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.CONTROL_SOCKET_TYPE); } -#line 4187 "dhcp6_parser.cc" +#line 4208 "dhcp6_parser.cc" break; - case 774: // control_socket_type: "socket-type" $@116 ":" control_socket_type_value -#line 2715 "dhcp6_parser.yy" + case 777: // control_socket_type: "socket-type" $@117 ":" control_socket_type_value +#line 2727 "dhcp6_parser.yy" { ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4196 "dhcp6_parser.cc" +#line 4217 "dhcp6_parser.cc" break; - case 775: // control_socket_type_value: "unix" -#line 2721 "dhcp6_parser.yy" + case 778: // control_socket_type_value: "unix" +#line 2733 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); } -#line 4202 "dhcp6_parser.cc" +#line 4223 "dhcp6_parser.cc" break; - case 776: // control_socket_type_value: "http" -#line 2722 "dhcp6_parser.yy" + case 779: // control_socket_type_value: "http" +#line 2734 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); } -#line 4208 "dhcp6_parser.cc" +#line 4229 "dhcp6_parser.cc" break; - case 777: // control_socket_type_value: "https" -#line 2723 "dhcp6_parser.yy" + case 780: // control_socket_type_value: "https" +#line 2735 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); } -#line 4214 "dhcp6_parser.cc" +#line 4235 "dhcp6_parser.cc" break; - case 778: // $@117: %empty -#line 2726 "dhcp6_parser.yy" + case 781: // $@118: %empty +#line 2738 "dhcp6_parser.yy" { ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4224 "dhcp6_parser.cc" +#line 4245 "dhcp6_parser.cc" break; - case 779: // control_socket_name: "socket-name" $@117 ":" "constant string" -#line 2730 "dhcp6_parser.yy" + case 782: // control_socket_name: "socket-name" $@118 ":" "constant string" +#line 2742 "dhcp6_parser.yy" { ElementPtr name(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-name", name); ctx.leave(); } -#line 4234 "dhcp6_parser.cc" +#line 4255 "dhcp6_parser.cc" break; - case 780: // $@118: %empty -#line 2736 "dhcp6_parser.yy" + case 783: // $@119: %empty +#line 2748 "dhcp6_parser.yy" { ctx.unique("socket-address", ctx.loc2pos(yystack_[0].location)); ctx.unique("socket-name", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4244 "dhcp6_parser.cc" +#line 4265 "dhcp6_parser.cc" break; - case 781: // control_socket_address: "socket-address" $@118 ":" "constant string" -#line 2740 "dhcp6_parser.yy" + case 784: // control_socket_address: "socket-address" $@119 ":" "constant string" +#line 2752 "dhcp6_parser.yy" { ElementPtr address(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-address", address); ctx.leave(); } -#line 4254 "dhcp6_parser.cc" +#line 4275 "dhcp6_parser.cc" break; - case 782: // control_socket_port: "socket-port" ":" "integer" -#line 2746 "dhcp6_parser.yy" + case 785: // control_socket_port: "socket-port" ":" "integer" +#line 2758 "dhcp6_parser.yy" { ctx.unique("socket-port", ctx.loc2pos(yystack_[2].location)); ElementPtr port(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-port", port); } -#line 4264 "dhcp6_parser.cc" +#line 4285 "dhcp6_parser.cc" break; - case 783: // cert_required: "cert-required" ":" "boolean" -#line 2752 "dhcp6_parser.yy" + case 786: // cert_required: "cert-required" ":" "boolean" +#line 2764 "dhcp6_parser.yy" { ctx.unique("cert-required", ctx.loc2pos(yystack_[2].location)); ElementPtr req(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("cert-required", req); } -#line 4274 "dhcp6_parser.cc" +#line 4295 "dhcp6_parser.cc" break; - case 784: // $@119: %empty -#line 2760 "dhcp6_parser.yy" + case 787: // $@120: %empty +#line 2772 "dhcp6_parser.yy" { ctx.unique("authentication", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4282,92 +4303,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.AUTHENTICATION); } -#line 4286 "dhcp6_parser.cc" +#line 4307 "dhcp6_parser.cc" break; - case 785: // authentication: "authentication" $@119 ":" "{" auth_params "}" -#line 2766 "dhcp6_parser.yy" + case 788: // authentication: "authentication" $@120 ":" "{" auth_params "}" +#line 2778 "dhcp6_parser.yy" { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4297 "dhcp6_parser.cc" +#line 4318 "dhcp6_parser.cc" break; - case 788: // auth_params: auth_params "," -#line 2775 "dhcp6_parser.yy" + case 791: // auth_params: auth_params "," +#line 2787 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4305 "dhcp6_parser.cc" +#line 4326 "dhcp6_parser.cc" break; - case 796: // $@120: %empty -#line 2789 "dhcp6_parser.yy" + case 799: // $@121: %empty +#line 2801 "dhcp6_parser.yy" { ctx.unique("type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.AUTH_TYPE); } -#line 4314 "dhcp6_parser.cc" +#line 4335 "dhcp6_parser.cc" break; - case 797: // auth_type: "type" $@120 ":" auth_type_value -#line 2792 "dhcp6_parser.yy" + case 800: // auth_type: "type" $@121 ":" auth_type_value +#line 2804 "dhcp6_parser.yy" { ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4323 "dhcp6_parser.cc" +#line 4344 "dhcp6_parser.cc" break; - case 798: // auth_type_value: "basic" -#line 2797 "dhcp6_parser.yy" + case 801: // auth_type_value: "basic" +#line 2809 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); } -#line 4329 "dhcp6_parser.cc" +#line 4350 "dhcp6_parser.cc" break; - case 799: // $@121: %empty -#line 2800 "dhcp6_parser.yy" + case 802: // $@122: %empty +#line 2812 "dhcp6_parser.yy" { ctx.unique("realm", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4338 "dhcp6_parser.cc" +#line 4359 "dhcp6_parser.cc" break; - case 800: // realm: "realm" $@121 ":" "constant string" -#line 2803 "dhcp6_parser.yy" + case 803: // realm: "realm" $@122 ":" "constant string" +#line 2815 "dhcp6_parser.yy" { ElementPtr realm(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("realm", realm); ctx.leave(); } -#line 4348 "dhcp6_parser.cc" +#line 4369 "dhcp6_parser.cc" break; - case 801: // $@122: %empty -#line 2809 "dhcp6_parser.yy" + case 804: // $@123: %empty +#line 2821 "dhcp6_parser.yy" { ctx.unique("directory", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4357 "dhcp6_parser.cc" +#line 4378 "dhcp6_parser.cc" break; - case 802: // directory: "directory" $@122 ":" "constant string" -#line 2812 "dhcp6_parser.yy" + case 805: // directory: "directory" $@123 ":" "constant string" +#line 2824 "dhcp6_parser.yy" { ElementPtr directory(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("directory", directory); ctx.leave(); } -#line 4367 "dhcp6_parser.cc" +#line 4388 "dhcp6_parser.cc" break; - case 803: // $@123: %empty -#line 2818 "dhcp6_parser.yy" + case 806: // $@124: %empty +#line 2830 "dhcp6_parser.yy" { ctx.unique("clients", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4375,92 +4396,92 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CLIENTS); } -#line 4379 "dhcp6_parser.cc" +#line 4400 "dhcp6_parser.cc" break; - case 804: // clients: "clients" $@123 ":" "[" clients_list "]" -#line 2824 "dhcp6_parser.yy" + case 807: // clients: "clients" $@124 ":" "[" clients_list "]" +#line 2836 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4388 "dhcp6_parser.cc" +#line 4409 "dhcp6_parser.cc" break; - case 809: // not_empty_clients_list: not_empty_clients_list "," -#line 2835 "dhcp6_parser.yy" + case 812: // not_empty_clients_list: not_empty_clients_list "," +#line 2847 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4396 "dhcp6_parser.cc" +#line 4417 "dhcp6_parser.cc" break; - case 810: // $@124: %empty -#line 2840 "dhcp6_parser.yy" + case 813: // $@125: %empty +#line 2852 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4406 "dhcp6_parser.cc" +#line 4427 "dhcp6_parser.cc" break; - case 811: // basic_auth: "{" $@124 clients_params "}" -#line 2844 "dhcp6_parser.yy" + case 814: // basic_auth: "{" $@125 clients_params "}" +#line 2856 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4414 "dhcp6_parser.cc" +#line 4435 "dhcp6_parser.cc" break; - case 814: // clients_params: clients_params "," -#line 2850 "dhcp6_parser.yy" + case 817: // clients_params: clients_params "," +#line 2862 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4422 "dhcp6_parser.cc" +#line 4443 "dhcp6_parser.cc" break; - case 822: // $@125: %empty -#line 2864 "dhcp6_parser.yy" + case 825: // $@126: %empty +#line 2876 "dhcp6_parser.yy" { ctx.unique("user-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4431 "dhcp6_parser.cc" +#line 4452 "dhcp6_parser.cc" break; - case 823: // user_file: "user-file" $@125 ":" "constant string" -#line 2867 "dhcp6_parser.yy" + case 826: // user_file: "user-file" $@126 ":" "constant string" +#line 2879 "dhcp6_parser.yy" { ElementPtr user(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user-file", user); ctx.leave(); } -#line 4441 "dhcp6_parser.cc" +#line 4462 "dhcp6_parser.cc" break; - case 824: // $@126: %empty -#line 2873 "dhcp6_parser.yy" + case 827: // $@127: %empty +#line 2885 "dhcp6_parser.yy" { ctx.unique("password-file", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4450 "dhcp6_parser.cc" +#line 4471 "dhcp6_parser.cc" break; - case 825: // password_file: "password-file" $@126 ":" "constant string" -#line 2876 "dhcp6_parser.yy" + case 828: // password_file: "password-file" $@127 ":" "constant string" +#line 2888 "dhcp6_parser.yy" { ElementPtr password(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password-file", password); ctx.leave(); } -#line 4460 "dhcp6_parser.cc" +#line 4481 "dhcp6_parser.cc" break; - case 826: // $@127: %empty -#line 2884 "dhcp6_parser.yy" + case 829: // $@128: %empty +#line 2896 "dhcp6_parser.yy" { ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location)); ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4468,87 +4489,87 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(qc); ctx.enter(ctx.DHCP_QUEUE_CONTROL); } -#line 4472 "dhcp6_parser.cc" +#line 4493 "dhcp6_parser.cc" break; - case 827: // dhcp_queue_control: "dhcp-queue-control" $@127 ":" "{" queue_control_params "}" -#line 2890 "dhcp6_parser.yy" + case 830: // dhcp_queue_control: "dhcp-queue-control" $@128 ":" "{" queue_control_params "}" +#line 2902 "dhcp6_parser.yy" { // The enable queue parameter is required. ctx.require("enable-queue", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4483 "dhcp6_parser.cc" +#line 4504 "dhcp6_parser.cc" break; - case 830: // queue_control_params: queue_control_params "," -#line 2899 "dhcp6_parser.yy" + case 833: // queue_control_params: queue_control_params "," +#line 2911 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4491 "dhcp6_parser.cc" +#line 4512 "dhcp6_parser.cc" break; - case 837: // enable_queue: "enable-queue" ":" "boolean" -#line 2912 "dhcp6_parser.yy" + case 840: // enable_queue: "enable-queue" ":" "boolean" +#line 2924 "dhcp6_parser.yy" { ctx.unique("enable-queue", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-queue", b); } -#line 4501 "dhcp6_parser.cc" +#line 4522 "dhcp6_parser.cc" break; - case 838: // $@128: %empty -#line 2918 "dhcp6_parser.yy" + case 841: // $@129: %empty +#line 2930 "dhcp6_parser.yy" { ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4510 "dhcp6_parser.cc" +#line 4531 "dhcp6_parser.cc" break; - case 839: // queue_type: "queue-type" $@128 ":" "constant string" -#line 2921 "dhcp6_parser.yy" + case 842: // queue_type: "queue-type" $@129 ":" "constant string" +#line 2933 "dhcp6_parser.yy" { ElementPtr qt(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("queue-type", qt); ctx.leave(); } -#line 4520 "dhcp6_parser.cc" +#line 4541 "dhcp6_parser.cc" break; - case 840: // capacity: "capacity" ":" "integer" -#line 2927 "dhcp6_parser.yy" + case 843: // capacity: "capacity" ":" "integer" +#line 2939 "dhcp6_parser.yy" { ctx.unique("capacity", ctx.loc2pos(yystack_[2].location)); ElementPtr c(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("capacity", c); } -#line 4530 "dhcp6_parser.cc" +#line 4551 "dhcp6_parser.cc" break; - case 841: // $@129: %empty -#line 2933 "dhcp6_parser.yy" + case 844: // $@130: %empty +#line 2945 "dhcp6_parser.yy" { ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4539 "dhcp6_parser.cc" +#line 4560 "dhcp6_parser.cc" break; - case 842: // arbitrary_map_entry: "constant string" $@129 ":" value -#line 2936 "dhcp6_parser.yy" + case 845: // arbitrary_map_entry: "constant string" $@130 ":" value +#line 2948 "dhcp6_parser.yy" { ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4548 "dhcp6_parser.cc" +#line 4569 "dhcp6_parser.cc" break; - case 843: // $@130: %empty -#line 2943 "dhcp6_parser.yy" + case 846: // $@131: %empty +#line 2955 "dhcp6_parser.yy" { ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location)); ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4556,177 +4577,177 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 4560 "dhcp6_parser.cc" +#line 4581 "dhcp6_parser.cc" break; - case 844: // dhcp_ddns: "dhcp-ddns" $@130 ":" "{" dhcp_ddns_params "}" -#line 2949 "dhcp6_parser.yy" + case 847: // dhcp_ddns: "dhcp-ddns" $@131 ":" "{" dhcp_ddns_params "}" +#line 2961 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[2].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); ctx.leave(); } -#line 4571 "dhcp6_parser.cc" +#line 4592 "dhcp6_parser.cc" break; - case 845: // $@131: %empty -#line 2956 "dhcp6_parser.yy" + case 848: // $@132: %empty +#line 2968 "dhcp6_parser.yy" { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4581 "dhcp6_parser.cc" +#line 4602 "dhcp6_parser.cc" break; - case 846: // sub_dhcp_ddns: "{" $@131 dhcp_ddns_params "}" -#line 2960 "dhcp6_parser.yy" + case 849: // sub_dhcp_ddns: "{" $@132 dhcp_ddns_params "}" +#line 2972 "dhcp6_parser.yy" { // The enable updates DHCP DDNS parameter is required. ctx.require("enable-updates", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 4591 "dhcp6_parser.cc" +#line 4612 "dhcp6_parser.cc" break; - case 849: // dhcp_ddns_params: dhcp_ddns_params "," -#line 2968 "dhcp6_parser.yy" + case 852: // dhcp_ddns_params: dhcp_ddns_params "," +#line 2980 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4599 "dhcp6_parser.cc" +#line 4620 "dhcp6_parser.cc" break; - case 861: // enable_updates: "enable-updates" ":" "boolean" -#line 2986 "dhcp6_parser.yy" + case 864: // enable_updates: "enable-updates" ":" "boolean" +#line 2998 "dhcp6_parser.yy" { ctx.unique("enable-updates", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 4609 "dhcp6_parser.cc" +#line 4630 "dhcp6_parser.cc" break; - case 862: // $@132: %empty -#line 2992 "dhcp6_parser.yy" + case 865: // $@133: %empty +#line 3004 "dhcp6_parser.yy" { ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4618 "dhcp6_parser.cc" +#line 4639 "dhcp6_parser.cc" break; - case 863: // server_ip: "server-ip" $@132 ":" "constant string" -#line 2995 "dhcp6_parser.yy" + case 866: // server_ip: "server-ip" $@133 ":" "constant string" +#line 3007 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-ip", s); ctx.leave(); } -#line 4628 "dhcp6_parser.cc" +#line 4649 "dhcp6_parser.cc" break; - case 864: // server_port: "server-port" ":" "integer" -#line 3001 "dhcp6_parser.yy" + case 867: // server_port: "server-port" ":" "integer" +#line 3013 "dhcp6_parser.yy" { ctx.unique("server-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 4638 "dhcp6_parser.cc" +#line 4659 "dhcp6_parser.cc" break; - case 865: // $@133: %empty -#line 3007 "dhcp6_parser.yy" + case 868: // $@134: %empty +#line 3019 "dhcp6_parser.yy" { ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4647 "dhcp6_parser.cc" +#line 4668 "dhcp6_parser.cc" break; - case 866: // sender_ip: "sender-ip" $@133 ":" "constant string" -#line 3010 "dhcp6_parser.yy" + case 869: // sender_ip: "sender-ip" $@134 ":" "constant string" +#line 3022 "dhcp6_parser.yy" { ElementPtr s(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-ip", s); ctx.leave(); } -#line 4657 "dhcp6_parser.cc" +#line 4678 "dhcp6_parser.cc" break; - case 867: // sender_port: "sender-port" ":" "integer" -#line 3016 "dhcp6_parser.yy" + case 870: // sender_port: "sender-port" ":" "integer" +#line 3028 "dhcp6_parser.yy" { ctx.unique("sender-port", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 4667 "dhcp6_parser.cc" +#line 4688 "dhcp6_parser.cc" break; - case 868: // max_queue_size: "max-queue-size" ":" "integer" -#line 3022 "dhcp6_parser.yy" + case 871: // max_queue_size: "max-queue-size" ":" "integer" +#line 3034 "dhcp6_parser.yy" { ctx.unique("max-queue-size", ctx.loc2pos(yystack_[2].location)); ElementPtr i(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 4677 "dhcp6_parser.cc" +#line 4698 "dhcp6_parser.cc" break; - case 869: // $@134: %empty -#line 3028 "dhcp6_parser.yy" + case 872: // $@135: %empty +#line 3040 "dhcp6_parser.yy" { ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_PROTOCOL); } -#line 4686 "dhcp6_parser.cc" +#line 4707 "dhcp6_parser.cc" break; - case 870: // ncr_protocol: "ncr-protocol" $@134 ":" ncr_protocol_value -#line 3031 "dhcp6_parser.yy" + case 873: // ncr_protocol: "ncr-protocol" $@135 ":" ncr_protocol_value +#line 3043 "dhcp6_parser.yy" { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ()); ctx.leave(); } -#line 4695 "dhcp6_parser.cc" +#line 4716 "dhcp6_parser.cc" break; - case 871: // ncr_protocol_value: "UDP" -#line 3037 "dhcp6_parser.yy" + case 874: // ncr_protocol_value: "UDP" +#line 3049 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 4701 "dhcp6_parser.cc" +#line 4722 "dhcp6_parser.cc" break; - case 872: // ncr_protocol_value: "TCP" -#line 3038 "dhcp6_parser.yy" + case 875: // ncr_protocol_value: "TCP" +#line 3050 "dhcp6_parser.yy" { yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 4707 "dhcp6_parser.cc" +#line 4728 "dhcp6_parser.cc" break; - case 873: // $@135: %empty -#line 3041 "dhcp6_parser.yy" + case 876: // $@136: %empty +#line 3053 "dhcp6_parser.yy" { ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NCR_FORMAT); } -#line 4716 "dhcp6_parser.cc" +#line 4737 "dhcp6_parser.cc" break; - case 874: // ncr_format: "ncr-format" $@135 ":" "JSON" -#line 3044 "dhcp6_parser.yy" + case 877: // ncr_format: "ncr-format" $@136 ":" "JSON" +#line 3056 "dhcp6_parser.yy" { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 4726 "dhcp6_parser.cc" +#line 4747 "dhcp6_parser.cc" break; - case 875: // $@136: %empty -#line 3052 "dhcp6_parser.yy" + case 878: // $@137: %empty +#line 3064 "dhcp6_parser.yy" { ctx.unique("config-control", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -4734,48 +4755,48 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 4738 "dhcp6_parser.cc" +#line 4759 "dhcp6_parser.cc" break; - case 876: // config_control: "config-control" $@136 ":" "{" config_control_params "}" -#line 3058 "dhcp6_parser.yy" + case 879: // config_control: "config-control" $@137 ":" "{" config_control_params "}" +#line 3070 "dhcp6_parser.yy" { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 4748 "dhcp6_parser.cc" +#line 4769 "dhcp6_parser.cc" break; - case 877: // $@137: %empty -#line 3064 "dhcp6_parser.yy" + case 880: // $@138: %empty +#line 3076 "dhcp6_parser.yy" { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 4758 "dhcp6_parser.cc" +#line 4779 "dhcp6_parser.cc" break; - case 878: // sub_config_control: "{" $@137 config_control_params "}" -#line 3068 "dhcp6_parser.yy" + case 881: // sub_config_control: "{" $@138 config_control_params "}" +#line 3080 "dhcp6_parser.yy" { // No config_control params are required // parsing completed } -#line 4767 "dhcp6_parser.cc" +#line 4788 "dhcp6_parser.cc" break; - case 881: // config_control_params: config_control_params "," -#line 3076 "dhcp6_parser.yy" + case 884: // config_control_params: config_control_params "," +#line 3088 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4775 "dhcp6_parser.cc" +#line 4796 "dhcp6_parser.cc" break; - case 884: // $@138: %empty -#line 3086 "dhcp6_parser.yy" + case 887: // $@139: %empty +#line 3098 "dhcp6_parser.yy" { ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4783,30 +4804,30 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 4787 "dhcp6_parser.cc" +#line 4808 "dhcp6_parser.cc" break; - case 885: // config_databases: "config-databases" $@138 ":" "[" database_list "]" -#line 3092 "dhcp6_parser.yy" + case 888: // config_databases: "config-databases" $@139 ":" "[" database_list "]" +#line 3104 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4796 "dhcp6_parser.cc" +#line 4817 "dhcp6_parser.cc" break; - case 886: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" -#line 3097 "dhcp6_parser.yy" + case 889: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer" +#line 3109 "dhcp6_parser.yy" { ctx.unique("config-fetch-wait-time", ctx.loc2pos(yystack_[2].location)); ElementPtr value(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-fetch-wait-time", value); } -#line 4806 "dhcp6_parser.cc" +#line 4827 "dhcp6_parser.cc" break; - case 887: // $@139: %empty -#line 3105 "dhcp6_parser.yy" + case 890: // $@140: %empty +#line 3117 "dhcp6_parser.yy" { ctx.unique("loggers", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4814,83 +4835,83 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 4818 "dhcp6_parser.cc" +#line 4839 "dhcp6_parser.cc" break; - case 888: // loggers: "loggers" $@139 ":" "[" loggers_entries "]" -#line 3111 "dhcp6_parser.yy" + case 891: // loggers: "loggers" $@140 ":" "[" loggers_entries "]" +#line 3123 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4827 "dhcp6_parser.cc" +#line 4848 "dhcp6_parser.cc" break; - case 891: // loggers_entries: loggers_entries "," -#line 3120 "dhcp6_parser.yy" + case 894: // loggers_entries: loggers_entries "," +#line 3132 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4835 "dhcp6_parser.cc" +#line 4856 "dhcp6_parser.cc" break; - case 892: // $@140: %empty -#line 3126 "dhcp6_parser.yy" + case 895: // $@141: %empty +#line 3138 "dhcp6_parser.yy" { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 4845 "dhcp6_parser.cc" +#line 4866 "dhcp6_parser.cc" break; - case 893: // logger_entry: "{" $@140 logger_params "}" -#line 3130 "dhcp6_parser.yy" + case 896: // logger_entry: "{" $@141 logger_params "}" +#line 3142 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4853 "dhcp6_parser.cc" +#line 4874 "dhcp6_parser.cc" break; - case 896: // logger_params: logger_params "," -#line 3136 "dhcp6_parser.yy" + case 899: // logger_params: logger_params "," +#line 3148 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4861 "dhcp6_parser.cc" +#line 4882 "dhcp6_parser.cc" break; - case 904: // debuglevel: "debuglevel" ":" "integer" -#line 3150 "dhcp6_parser.yy" + case 907: // debuglevel: "debuglevel" ":" "integer" +#line 3162 "dhcp6_parser.yy" { ctx.unique("debuglevel", ctx.loc2pos(yystack_[2].location)); ElementPtr dl(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 4871 "dhcp6_parser.cc" +#line 4892 "dhcp6_parser.cc" break; - case 905: // $@141: %empty -#line 3156 "dhcp6_parser.yy" + case 908: // $@142: %empty +#line 3168 "dhcp6_parser.yy" { ctx.unique("severity", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4880 "dhcp6_parser.cc" +#line 4901 "dhcp6_parser.cc" break; - case 906: // severity: "severity" $@141 ":" "constant string" -#line 3159 "dhcp6_parser.yy" + case 909: // severity: "severity" $@142 ":" "constant string" +#line 3171 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 4890 "dhcp6_parser.cc" +#line 4911 "dhcp6_parser.cc" break; - case 907: // $@142: %empty -#line 3165 "dhcp6_parser.yy" + case 910: // $@143: %empty +#line 3177 "dhcp6_parser.yy" { ctx.unique("output-options", ctx.loc2pos(yystack_[0].location)); ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); @@ -4898,122 +4919,122 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 4902 "dhcp6_parser.cc" +#line 4923 "dhcp6_parser.cc" break; - case 908: // output_options_list: "output-options" $@142 ":" "[" output_options_list_content "]" -#line 3171 "dhcp6_parser.yy" + case 911: // output_options_list: "output-options" $@143 ":" "[" output_options_list_content "]" +#line 3183 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 4911 "dhcp6_parser.cc" +#line 4932 "dhcp6_parser.cc" break; - case 911: // output_options_list_content: output_options_list_content "," -#line 3178 "dhcp6_parser.yy" + case 914: // output_options_list_content: output_options_list_content "," +#line 3190 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4919 "dhcp6_parser.cc" +#line 4940 "dhcp6_parser.cc" break; - case 912: // $@143: %empty -#line 3183 "dhcp6_parser.yy" + case 915: // $@144: %empty +#line 3195 "dhcp6_parser.yy" { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 4929 "dhcp6_parser.cc" +#line 4950 "dhcp6_parser.cc" break; - case 913: // output_entry: "{" $@143 output_params_list "}" -#line 3187 "dhcp6_parser.yy" + case 916: // output_entry: "{" $@144 output_params_list "}" +#line 3199 "dhcp6_parser.yy" { ctx.stack_.pop_back(); } -#line 4937 "dhcp6_parser.cc" +#line 4958 "dhcp6_parser.cc" break; - case 916: // output_params_list: output_params_list "," -#line 3193 "dhcp6_parser.yy" + case 919: // output_params_list: output_params_list "," +#line 3205 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 4945 "dhcp6_parser.cc" +#line 4966 "dhcp6_parser.cc" break; - case 922: // $@144: %empty -#line 3205 "dhcp6_parser.yy" + case 925: // $@145: %empty +#line 3217 "dhcp6_parser.yy" { ctx.unique("output", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 4954 "dhcp6_parser.cc" +#line 4975 "dhcp6_parser.cc" break; - case 923: // output: "output" $@144 ":" "constant string" -#line 3208 "dhcp6_parser.yy" + case 926: // output: "output" $@145 ":" "constant string" +#line 3220 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 4964 "dhcp6_parser.cc" +#line 4985 "dhcp6_parser.cc" break; - case 924: // flush: "flush" ":" "boolean" -#line 3214 "dhcp6_parser.yy" + case 927: // flush: "flush" ":" "boolean" +#line 3226 "dhcp6_parser.yy" { ctx.unique("flush", ctx.loc2pos(yystack_[2].location)); ElementPtr flush(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 4974 "dhcp6_parser.cc" +#line 4995 "dhcp6_parser.cc" break; - case 925: // maxsize: "maxsize" ":" "integer" -#line 3220 "dhcp6_parser.yy" + case 928: // maxsize: "maxsize" ":" "integer" +#line 3232 "dhcp6_parser.yy" { ctx.unique("maxsize", ctx.loc2pos(yystack_[2].location)); ElementPtr maxsize(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 4984 "dhcp6_parser.cc" +#line 5005 "dhcp6_parser.cc" break; - case 926: // maxver: "maxver" ":" "integer" -#line 3226 "dhcp6_parser.yy" + case 929: // maxver: "maxver" ":" "integer" +#line 3238 "dhcp6_parser.yy" { ctx.unique("maxver", ctx.loc2pos(yystack_[2].location)); ElementPtr maxver(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 4994 "dhcp6_parser.cc" +#line 5015 "dhcp6_parser.cc" break; - case 927: // $@145: %empty -#line 3232 "dhcp6_parser.yy" + case 930: // $@146: %empty +#line 3244 "dhcp6_parser.yy" { ctx.unique("pattern", ctx.loc2pos(yystack_[0].location)); ctx.enter(ctx.NO_KEYWORD); } -#line 5003 "dhcp6_parser.cc" +#line 5024 "dhcp6_parser.cc" break; - case 928: // pattern: "pattern" $@145 ":" "constant string" -#line 3235 "dhcp6_parser.yy" + case 931: // pattern: "pattern" $@146 ":" "constant string" +#line 3247 "dhcp6_parser.yy" { ElementPtr sev(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pattern", sev); ctx.leave(); } -#line 5013 "dhcp6_parser.cc" +#line 5034 "dhcp6_parser.cc" break; - case 929: // $@146: %empty -#line 3241 "dhcp6_parser.yy" + case 932: // $@147: %empty +#line 3253 "dhcp6_parser.yy" { ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location)); ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -5021,38 +5042,38 @@ namespace isc { namespace dhcp { ctx.stack_.push_back(i); ctx.enter(ctx.COMPATIBILITY); } -#line 5025 "dhcp6_parser.cc" +#line 5046 "dhcp6_parser.cc" break; - case 930: // compatibility: "compatibility" $@146 ":" "{" compatibility_params "}" -#line 3247 "dhcp6_parser.yy" + case 933: // compatibility: "compatibility" $@147 ":" "{" compatibility_params "}" +#line 3259 "dhcp6_parser.yy" { ctx.stack_.pop_back(); ctx.leave(); } -#line 5034 "dhcp6_parser.cc" +#line 5055 "dhcp6_parser.cc" break; - case 933: // compatibility_params: compatibility_params "," -#line 3254 "dhcp6_parser.yy" + case 936: // compatibility_params: compatibility_params "," +#line 3266 "dhcp6_parser.yy" { ctx.warnAboutExtraCommas(yystack_[0].location); } -#line 5042 "dhcp6_parser.cc" +#line 5063 "dhcp6_parser.cc" break; - case 936: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" -#line 3263 "dhcp6_parser.yy" + case 939: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean" +#line 3275 "dhcp6_parser.yy" { ctx.unique("lenient-option-parsing", ctx.loc2pos(yystack_[2].location)); ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lenient-option-parsing", b); } -#line 5052 "dhcp6_parser.cc" +#line 5073 "dhcp6_parser.cc" break; -#line 5056 "dhcp6_parser.cc" +#line 5077 "dhcp6_parser.cc" default: break; @@ -5404,157 +5425,158 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -1344; + const short Dhcp6Parser::yypact_ninf_ = -1354; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 509, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, 70, 38, 90, 118, 120, - 138, 142, 146, 152, 185, 191, 257, 264, 270, 300, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 38, -143, - 101, 184, 36, 690, 282, 315, 556, 27, 198, 375, - -79, 482, 376, -1344, 113, 126, 208, 216, 259, -1344, - 92, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 318, 322, - 346, 356, 406, 410, 418, 419, 420, 424, 434, 435, - 436, 443, -1344, 444, 445, 447, 448, 456, -1344, -1344, - -1344, 457, 459, 460, 461, -1344, -1344, -1344, 464, -1344, - -1344, -1344, -1344, -1344, -1344, 470, 472, 474, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, 481, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, 487, 489, 491, -1344, -1344, - 493, -1344, 93, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, 500, 501, 503, 506, -1344, 96, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, 508, 511, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, 104, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, 512, -1344, -1344, -1344, - -1344, 106, -1344, -1344, -1344, -1344, -1344, -1344, 515, -1344, - 516, 520, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 114, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 334, 361, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 478, - -1344, -1344, 521, -1344, -1344, -1344, 523, -1344, -1344, 524, - 528, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, 530, 533, 534, -1344, -1344, -1344, - -1344, 531, 540, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, 125, -1344, -1344, -1344, - 541, -1344, 542, -1344, 543, 545, -1344, -1344, -1344, -1344, - -1344, 127, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, 546, 128, -1344, -1344, -1344, -1344, 38, 38, - -1344, 325, 551, -1344, -1344, 552, 555, 557, 559, 560, - 563, 332, 341, 343, 347, 351, 357, 362, 365, 344, - 366, 367, 369, 371, 373, 573, 377, 378, 379, 381, - 383, 585, 599, 604, 386, 387, 390, 391, 616, 618, - 627, 404, 630, 631, 632, 633, 634, 636, 411, 412, - 417, 644, 645, 646, 647, 648, 650, 651, 653, 654, - 432, 659, 668, 669, 670, 671, 674, 675, 450, 451, - 452, 679, 680, -1344, 184, -1344, 688, 463, 467, 473, - 479, 36, -1344, 694, 696, 698, 701, 702, 480, 484, - 706, 713, 714, 690, -1344, 715, 492, 282, -1344, 732, - 525, 747, 526, 537, 315, -1344, 748, 762, 764, 765, - 766, 767, 771, 774, -1344, 556, -1344, 778, 780, 558, - 781, 784, 786, 561, -1344, 198, 788, 564, 575, 576, - -1344, 375, 789, 803, 255, -1344, 578, 805, 582, 807, - 586, 587, 809, 813, 482, -1344, 815, 592, 376, -1344, - -1344, -1344, 817, 816, 595, 818, 820, 821, 822, 819, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, 603, -1344, -1344, -1344, -1344, -1344, - -128, 605, 606, -1344, -1344, -1344, -1344, 826, 829, 830, - -1344, 609, 610, 308, 833, 832, 613, -1344, -1344, -1344, - 836, 837, 838, 839, 840, 842, 843, 844, 845, -1344, - 846, 847, 850, 849, 851, 617, 622, -1344, -1344, -1344, - 852, 853, -1344, 854, -1344, -1344, -1344, -1344, -1344, 856, - 857, 623, 637, 638, -1344, -1344, 854, 639, 860, -1344, - 641, -1344, -1344, 642, -1344, 643, -1344, -1344, -1344, 854, - 854, 854, 854, 649, 652, 655, 656, -1344, 657, 658, - -1344, 662, 663, 664, -1344, -1344, 665, -1344, -1344, -1344, - -1344, 666, 832, -1344, -1344, 667, -1344, 672, -1344, -1344, - -140, 681, -1344, 858, -1344, -1344, 38, 184, -1344, 376, - 36, 139, 139, 864, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, 865, 867, 868, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, 870, -1344, -1344, -1344, -88, 38, 297, - 293, 871, 873, 874, 483, 164, 330, 477, 879, 291, - 482, -1344, -1344, 888, -135, -1344, -1344, 889, 890, -1344, - -1344, -1344, -1344, -1344, 769, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - 864, -1344, 135, 148, 154, -1344, -1344, -1344, -1344, 896, - 897, 898, 899, 900, 901, 902, 903, 904, 905, -1344, - 906, 907, -1344, -1344, -1344, -1344, -1344, 201, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, 205, -1344, 908, 909, -1344, -1344, 910, 912, -1344, - -1344, 913, 915, -1344, -1344, 914, 918, -1344, -1344, 916, - 920, -1344, -1344, -1344, 72, -1344, -1344, -1344, 919, -1344, - -1344, -1344, 112, -1344, -1344, -1344, -1344, -1344, 207, -1344, - -1344, -1344, -1344, 188, -1344, -1344, 921, 923, -1344, -1344, - 922, 926, -1344, 927, 928, 929, 930, 931, 932, 211, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 933, - 934, 935, -1344, -1344, -1344, -1344, 213, -1344, -1344, -1344, - -1344, -1344, -1344, 936, 937, 938, -1344, 215, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, 939, -1344, 940, - -1344, -1344, -1344, -1344, -1344, -1344, 217, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, 924, 942, -1344, 943, -1344, - 944, -1344, -1344, -1344, 223, -1344, -1344, -1344, -1344, -1344, - 278, -1344, 327, -1344, 945, -1344, 303, -1344, -1344, 686, - -1344, 946, 947, -1344, -1344, 948, 950, -1344, -1344, 949, - 952, -1344, -1344, -1344, 951, 955, 956, 957, 718, 721, - 728, 733, 734, 736, 737, 738, 739, 740, 965, 741, - 744, 970, 971, 973, 974, 139, -1344, -1344, 139, -1344, - 864, 690, -1344, 865, 198, -1344, 867, 375, -1344, 868, - 1097, -1344, 870, -88, -1344, -1344, 297, -1344, 977, 982, - 293, -1344, 321, 871, -1344, 556, -1344, 873, -79, -1344, - 874, 760, 770, 775, 777, 794, 795, 483, -1344, 991, - 995, 797, 801, 806, 164, -1344, 772, 808, 812, 330, - -1344, 1008, 1029, 1037, 828, 1045, 869, 477, -1344, 477, - -1344, 879, 911, 1056, 835, 1064, 291, -1344, -1344, -16, - 888, -1344, 953, -135, -1344, -1344, 1080, 1092, 282, -1344, - 889, 315, -1344, 890, -1344, -1344, 697, 892, 917, 954, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - 336, -1344, -1344, 958, 962, 963, 964, -1344, 305, -1344, - 311, -1344, 1122, -1344, 1125, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, 317, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, 966, 967, -1344, -1344, -1344, 1130, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, 1129, 1135, -1344, -1344, -1344, -1344, -1344, -1344, 1131, - -1344, 320, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - 30, 968, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - 242, 969, 972, -1344, 1133, -1344, -1344, 326, -1344, -1344, - 985, -1344, 38, -1344, -1344, 1138, -1344, -1344, -1344, -1344, - -1344, 329, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - 986, 338, -1344, 340, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, 1097, -1344, -1344, -1344, 1139, 1154, 984, -1344, 321, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, 122, -1344, -1344, -1344, 1155, 987, 1156, - -16, -1344, -1344, -1344, -1344, -1344, 989, 990, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, 349, -1344, -1344, - -1344, -1344, -1344, 1168, -1344, 993, -1344, -1344, -1344, 1157, - 1172, 1173, 1174, 122, -1344, 1175, -1344, 1009, 994, 997, - 1179, -1344, -1344, 348, -1344, -1344, -1344, -1344, -1344, 1185, - -7, 1175, -1344, -1344, 1191, 1177, -1344, -1344, 1194, 1196, - 1197, -1344, 359, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - 204, -1344, 1185, 1214, 992, 998, 999, 1221, -7, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, 360, -1344, -1344, - -1344, -1344, 1001, -1344, -1344, -1344, 1002, -1344, 1227, 1228, - 204, -1344, -1344, -1344, 1007, 1010, -1344, -1344, -1344 + 525, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, 44, 38, 56, 90, 104, + 114, 116, 118, 120, 136, 160, 169, 170, 196, 232, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 38, -78, + 147, 157, 57, 713, 453, 547, 510, 165, 220, 613, + -88, 230, 174, -1354, 281, 286, 298, 302, 326, -1354, + 87, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 345, 369, + 370, 401, 422, 432, 440, 442, 446, 447, 449, 450, + 451, 452, -1354, 454, 457, 458, 459, 461, -1354, -1354, + -1354, 462, 463, 465, 475, -1354, -1354, -1354, 477, -1354, + -1354, -1354, -1354, -1354, -1354, 479, 481, 485, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, 488, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, 489, 491, 493, -1354, -1354, + 494, -1354, 109, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, 495, 496, 500, 507, -1354, 121, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, 509, 511, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, 133, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, 514, -1354, -1354, -1354, + -1354, 139, -1354, -1354, -1354, -1354, -1354, -1354, 515, -1354, + 519, 520, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 150, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 322, 338, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 355, + -1354, -1354, 523, -1354, -1354, -1354, 527, -1354, -1354, 363, + 380, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, 531, 532, 533, -1354, -1354, -1354, + -1354, -1354, 373, 436, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 156, -1354, + -1354, -1354, 534, -1354, 535, -1354, 536, 537, -1354, -1354, + -1354, -1354, -1354, 162, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, 540, 163, -1354, -1354, -1354, -1354, + 38, 38, -1354, 287, 541, -1354, -1354, 546, 548, 551, + 552, 553, 557, 334, 335, 336, 340, 341, 346, 349, + 353, 356, 354, 360, 368, 365, 371, 563, 375, 376, + 362, 381, 387, 581, 594, 597, 390, 391, 393, 397, + 601, 619, 624, 402, 625, 629, 630, 631, 632, 633, + 408, 416, 424, 651, 652, 653, 654, 655, 657, 658, + 660, 661, 438, 663, 664, 666, 667, 668, 671, 672, + 448, 455, 456, 673, 675, -1354, 157, -1354, 677, 460, + 471, 474, 476, 57, -1354, 678, 679, 680, 683, 684, + 478, 480, 701, 704, 705, 713, -1354, 707, 484, 453, + -1354, 709, 486, 711, 499, 503, 547, -1354, 712, 717, + 718, 719, 728, 729, 731, 732, -1354, 510, -1354, 748, + 749, 526, 754, 771, 772, 487, -1354, 220, 773, 558, + 559, 561, 788, -1354, 613, 789, 790, 141, -1354, 565, + 792, 569, 794, 571, 572, 797, 801, 230, -1354, 802, + 579, 174, -1354, -1354, -1354, 804, 806, 582, 807, 808, + 809, 810, 823, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, 584, -1354, -1354, + -1354, -1354, -1354, -115, 602, 603, -1354, -1354, -1354, -1354, + 826, 827, 828, -1354, 607, 609, 378, 832, 831, 615, + -1354, -1354, -1354, 838, 839, 840, 841, 842, 845, 846, + 847, 848, -1354, 849, 850, 853, 852, 854, 626, 635, + -1354, -1354, -1354, 855, 856, -1354, 859, -1354, -1354, -1354, + -1354, -1354, 860, 861, 640, 641, 642, -1354, -1354, 859, + 643, 864, -1354, 645, -1354, -1354, 646, -1354, 647, -1354, + -1354, -1354, 859, 859, 859, 859, 648, 649, 650, 656, + -1354, 659, 662, -1354, 665, 669, 670, -1354, -1354, 674, + -1354, -1354, -1354, 859, -1354, 676, 831, -1354, -1354, 681, + -1354, 682, -1354, -1354, 142, 686, -1354, 874, -1354, -1354, + 38, 157, -1354, 174, 57, 364, 364, 873, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, 875, 877, 878, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, 880, -1354, -1354, + -1354, -90, 38, 69, 284, 881, 883, 884, 40, 84, + -52, 210, 886, 13, 230, -1354, -1354, 887, -129, -1354, + -1354, 888, 891, -1354, -1354, -1354, -1354, -1354, 723, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, 873, -1354, 191, 192, 256, + -1354, -1354, -1354, -1354, 895, 896, 898, 900, 901, 902, + 903, 908, 909, 910, -1354, 911, 912, -1354, -1354, -1354, + -1354, -1354, 273, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, 274, -1354, 913, 843, + -1354, -1354, 914, 915, -1354, -1354, 916, 918, -1354, -1354, + 917, 921, -1354, -1354, 919, 923, -1354, -1354, -1354, 81, + -1354, -1354, -1354, 922, -1354, -1354, -1354, 85, -1354, -1354, + -1354, -1354, -1354, 285, -1354, -1354, -1354, -1354, 254, -1354, + -1354, 924, 926, -1354, -1354, 925, 929, -1354, 930, 931, + 932, 933, 934, 935, 300, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, 937, 938, 939, -1354, -1354, -1354, + -1354, 306, -1354, -1354, -1354, -1354, -1354, -1354, 940, 941, + 942, -1354, 319, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, 943, -1354, 944, -1354, -1354, -1354, -1354, -1354, + -1354, 320, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + 927, 946, -1354, 947, -1354, 948, -1354, -1354, -1354, 337, + -1354, -1354, -1354, -1354, -1354, 339, -1354, 255, -1354, 949, + -1354, 357, -1354, -1354, 690, -1354, 950, 951, -1354, -1354, + 952, 954, -1354, -1354, 953, 956, -1354, -1354, -1354, 955, + 959, 960, 961, 699, 720, 727, 730, 738, 739, 740, + 741, 742, 743, 968, 744, 745, 972, 973, 975, 976, + 364, -1354, -1354, 364, -1354, 873, 713, -1354, 875, 220, + -1354, 877, 613, -1354, 878, 1105, -1354, 880, -90, -1354, + -1354, 69, -1354, 978, 979, 284, -1354, 382, 881, -1354, + 510, -1354, 883, -88, -1354, 884, 758, 761, 762, 764, + 765, 775, 40, -1354, 1001, 1009, 796, 799, 818, 84, + -1354, 786, 822, 833, -52, -1354, 1013, 1016, 1025, 835, + 1030, 821, 210, -1354, 210, -1354, 886, 834, 1032, 844, + 1033, 13, -1354, -1354, 343, 887, -1354, 906, -129, -1354, + -1354, 1064, 1081, 453, -1354, 888, 547, -1354, 891, -1354, + -1354, 867, 876, 904, 920, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, 280, -1354, -1354, 957, 958, + 962, 963, -1354, 358, -1354, 359, -1354, 1129, -1354, 1131, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + 361, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 964, + 965, -1354, -1354, -1354, 1136, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, 1134, 1140, -1354, -1354, + -1354, -1354, -1354, -1354, 1137, -1354, 367, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, 101, 966, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, 188, 970, 971, -1354, 1139, + -1354, -1354, 377, -1354, -1354, 974, -1354, 38, -1354, -1354, + 1144, -1354, -1354, -1354, -1354, -1354, 379, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, 977, 417, -1354, 419, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, 1105, -1354, -1354, -1354, + 1145, 1146, 936, -1354, 382, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 25, -1354, + -1354, -1354, 1147, 980, 1148, 343, -1354, -1354, -1354, -1354, + -1354, 988, 993, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, 420, -1354, -1354, -1354, -1354, -1354, 1162, -1354, + 994, -1354, -1354, -1354, 1164, 1165, 1177, 1182, 25, -1354, + 1180, -1354, 1018, 995, 996, 1194, -1354, -1354, 293, -1354, + -1354, -1354, -1354, -1354, 1193, -108, 1180, -1354, -1354, 1138, + 1199, -1354, -1354, 1201, 1203, 1220, -1354, 421, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, 68, -1354, 1193, 1221, 998, + 1002, 1004, 1222, -108, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, 435, -1354, -1354, -1354, -1354, 1006, -1354, -1354, + -1354, 1007, -1354, 1225, 1232, 68, -1354, -1354, -1354, 1010, + 1011, -1354, -1354, -1354 }; const short @@ -5565,17 +5587,17 @@ namespace isc { namespace dhcp { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 46, 38, 34, 33, 30, 31, 32, 37, 3, 35, 36, 61, 5, 67, 7, 199, 9, 385, 11, - 590, 13, 619, 15, 652, 17, 508, 19, 517, 21, - 556, 23, 347, 25, 845, 27, 877, 29, 48, 41, - 0, 0, 0, 0, 0, 0, 654, 0, 519, 558, + 593, 13, 622, 15, 655, 17, 508, 19, 517, 21, + 556, 23, 347, 25, 848, 27, 880, 29, 48, 41, + 0, 0, 0, 0, 0, 0, 657, 0, 519, 558, 0, 0, 0, 50, 0, 49, 0, 0, 42, 63, - 0, 65, 141, 875, 197, 218, 220, 222, 0, 0, + 0, 65, 141, 878, 197, 218, 220, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 160, 167, 169, 0, 0, 0, 0, 376, 506, 547, 0, 190, - 192, 173, 451, 606, 608, 0, 0, 0, 303, 322, - 312, 292, 690, 643, 338, 359, 722, 0, 324, 747, - 749, 826, 843, 180, 182, 0, 0, 0, 887, 929, + 192, 173, 451, 609, 611, 0, 0, 0, 303, 322, + 312, 292, 693, 646, 338, 359, 725, 0, 324, 750, + 752, 829, 846, 180, 182, 0, 0, 0, 890, 932, 0, 140, 0, 69, 72, 73, 74, 75, 76, 77, 78, 79, 80, 111, 112, 113, 114, 115, 81, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 117, @@ -5584,179 +5606,180 @@ namespace isc { namespace dhcp { 94, 95, 82, 108, 109, 110, 83, 92, 93, 102, 103, 105, 91, 96, 97, 98, 99, 100, 101, 106, 116, 136, 212, 0, 0, 0, 0, 211, 0, 201, - 204, 205, 206, 207, 208, 209, 210, 581, 610, 436, - 438, 440, 0, 0, 444, 442, 687, 435, 390, 391, + 204, 205, 206, 207, 208, 209, 210, 584, 613, 436, + 438, 440, 0, 0, 444, 442, 690, 435, 390, 391, 392, 393, 394, 395, 396, 397, 415, 416, 417, 418, 419, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 420, 421, 432, 433, 434, 0, 387, 401, 402, 403, 406, 407, 409, 410, 411, 404, 405, 398, 399, - 413, 414, 400, 408, 412, 603, 0, 602, 598, 599, - 597, 0, 592, 595, 596, 600, 601, 636, 0, 639, - 0, 0, 635, 629, 630, 628, 627, 633, 634, 0, - 621, 624, 625, 631, 632, 626, 685, 671, 673, 675, - 677, 679, 681, 683, 670, 667, 668, 669, 0, 655, - 656, 661, 662, 663, 659, 664, 665, 666, 660, 0, + 413, 414, 400, 408, 412, 606, 0, 605, 601, 602, + 600, 0, 595, 598, 599, 603, 604, 639, 0, 642, + 0, 0, 638, 632, 633, 631, 630, 636, 637, 0, + 624, 627, 628, 634, 635, 629, 688, 674, 676, 678, + 680, 682, 684, 686, 673, 670, 671, 672, 0, 658, + 659, 664, 665, 666, 662, 667, 668, 669, 663, 0, 537, 266, 0, 541, 539, 544, 0, 533, 534, 0, 520, 521, 524, 536, 525, 526, 527, 543, 528, 529, - 530, 531, 532, 574, 0, 0, 0, 572, 573, 576, - 577, 0, 559, 560, 563, 564, 565, 566, 567, 568, - 569, 570, 571, 355, 357, 352, 0, 349, 353, 354, - 0, 862, 0, 865, 0, 0, 869, 873, 860, 858, - 859, 0, 847, 850, 851, 852, 853, 854, 855, 856, - 857, 884, 0, 0, 879, 882, 883, 47, 52, 0, - 39, 45, 0, 66, 62, 0, 0, 0, 0, 0, + 530, 531, 532, 575, 0, 0, 0, 582, 573, 574, + 577, 578, 0, 559, 560, 563, 564, 565, 566, 567, + 568, 569, 572, 570, 571, 355, 357, 352, 0, 349, + 353, 354, 0, 865, 0, 868, 0, 0, 872, 876, + 863, 861, 862, 0, 850, 853, 854, 855, 856, 857, + 858, 859, 860, 887, 0, 0, 882, 885, 886, 47, + 52, 0, 39, 45, 0, 66, 62, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 60, 71, 68, 0, 0, + 0, 0, 0, 203, 200, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 389, 386, 0, 0, 597, + 594, 0, 0, 0, 0, 0, 626, 623, 0, 0, + 0, 0, 0, 0, 0, 0, 656, 661, 509, 0, + 0, 0, 0, 0, 0, 0, 518, 523, 0, 0, + 0, 0, 0, 557, 562, 0, 0, 351, 348, 0, + 0, 0, 0, 0, 0, 0, 0, 852, 849, 0, + 0, 884, 881, 51, 43, 0, 0, 0, 0, 0, + 0, 0, 0, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 0, 185, 186, + 157, 158, 159, 0, 0, 0, 171, 172, 179, 184, + 0, 0, 0, 189, 0, 0, 0, 0, 0, 0, + 446, 447, 448, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 749, 0, 0, 0, 0, 0, 0, 0, + 194, 195, 196, 0, 0, 70, 0, 214, 215, 216, + 217, 202, 0, 0, 0, 0, 0, 449, 450, 0, + 0, 0, 388, 0, 608, 596, 0, 641, 0, 644, + 645, 625, 0, 0, 0, 0, 0, 0, 0, 0, + 660, 0, 0, 535, 0, 0, 0, 546, 522, 0, + 579, 580, 581, 0, 561, 0, 0, 350, 864, 0, + 867, 0, 870, 871, 0, 0, 851, 0, 889, 883, + 0, 0, 142, 0, 0, 0, 0, 224, 188, 162, + 163, 164, 165, 166, 161, 168, 170, 378, 510, 549, + 191, 193, 175, 176, 177, 178, 174, 453, 40, 610, + 612, 0, 48, 0, 0, 0, 648, 340, 0, 0, + 0, 0, 754, 0, 0, 181, 183, 0, 0, 53, + 213, 586, 615, 437, 439, 441, 445, 443, 0, 607, + 640, 643, 689, 675, 677, 679, 681, 683, 685, 687, + 538, 267, 542, 540, 545, 576, 583, 356, 358, 866, + 869, 874, 875, 873, 877, 224, 44, 0, 0, 0, + 257, 259, 261, 263, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 276, 0, 0, 284, 286, 288, + 290, 256, 0, 231, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, + 251, 247, 252, 253, 254, 255, 0, 229, 0, 225, + 226, 383, 0, 379, 380, 515, 0, 511, 512, 554, + 0, 550, 551, 458, 0, 454, 455, 310, 311, 0, + 305, 308, 309, 0, 320, 321, 317, 0, 314, 318, + 319, 299, 301, 0, 294, 297, 298, 698, 0, 695, + 653, 0, 649, 650, 345, 0, 341, 342, 0, 0, + 0, 0, 0, 0, 0, 361, 364, 365, 366, 367, + 368, 369, 739, 745, 0, 0, 0, 738, 735, 736, + 737, 0, 727, 730, 733, 731, 732, 734, 0, 0, + 0, 334, 0, 326, 329, 330, 331, 332, 333, 776, + 781, 783, 0, 787, 0, 775, 769, 770, 771, 773, + 774, 0, 761, 764, 765, 766, 767, 772, 768, 759, + 0, 755, 756, 0, 841, 0, 844, 837, 838, 0, + 831, 834, 835, 836, 839, 0, 895, 0, 892, 0, + 938, 0, 934, 937, 55, 591, 0, 587, 588, 620, + 0, 616, 617, 692, 0, 0, 64, 879, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 60, 71, 68, 0, 0, 0, 0, - 0, 203, 200, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 389, 386, 0, 0, 594, 591, 0, - 0, 0, 0, 0, 623, 620, 0, 0, 0, 0, - 0, 0, 0, 0, 653, 658, 509, 0, 0, 0, - 0, 0, 0, 0, 518, 523, 0, 0, 0, 0, - 557, 562, 0, 0, 351, 348, 0, 0, 0, 0, - 0, 0, 0, 0, 849, 846, 0, 0, 881, 878, - 51, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 0, 185, 186, 157, 158, 159, - 0, 0, 0, 171, 172, 179, 184, 0, 0, 0, - 189, 0, 0, 0, 0, 0, 0, 446, 447, 448, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 746, - 0, 0, 0, 0, 0, 0, 0, 194, 195, 196, - 0, 0, 70, 0, 214, 215, 216, 217, 202, 0, - 0, 0, 0, 0, 449, 450, 0, 0, 0, 388, - 0, 605, 593, 0, 638, 0, 641, 642, 622, 0, - 0, 0, 0, 0, 0, 0, 0, 657, 0, 0, - 535, 0, 0, 0, 546, 522, 0, 578, 579, 580, - 561, 0, 0, 350, 861, 0, 864, 0, 867, 868, - 0, 0, 848, 0, 886, 880, 0, 0, 142, 0, - 0, 0, 0, 224, 188, 162, 163, 164, 165, 166, - 161, 168, 170, 378, 510, 549, 191, 193, 175, 176, - 177, 178, 174, 453, 40, 607, 609, 0, 48, 0, - 0, 0, 645, 340, 0, 0, 0, 0, 751, 0, - 0, 181, 183, 0, 0, 53, 213, 583, 612, 437, - 439, 441, 445, 443, 0, 604, 637, 640, 686, 672, - 674, 676, 678, 680, 682, 684, 538, 267, 542, 540, - 545, 575, 356, 358, 863, 866, 871, 872, 870, 874, - 224, 44, 0, 0, 0, 257, 259, 261, 263, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 276, - 0, 0, 284, 286, 288, 290, 256, 0, 231, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 248, 249, 250, 251, 247, 252, 253, 254, - 255, 0, 229, 0, 225, 226, 383, 0, 379, 380, - 515, 0, 511, 512, 554, 0, 550, 551, 458, 0, - 454, 455, 310, 311, 0, 305, 308, 309, 0, 320, - 321, 317, 0, 314, 318, 319, 299, 301, 0, 294, - 297, 298, 695, 0, 692, 650, 0, 646, 647, 345, - 0, 341, 342, 0, 0, 0, 0, 0, 0, 0, - 361, 364, 365, 366, 367, 368, 369, 736, 742, 0, - 0, 0, 735, 732, 733, 734, 0, 724, 727, 730, - 728, 729, 731, 0, 0, 0, 334, 0, 326, 329, - 330, 331, 332, 333, 773, 778, 780, 0, 784, 0, - 772, 766, 767, 768, 770, 771, 0, 758, 761, 762, - 763, 764, 769, 765, 756, 0, 752, 753, 0, 838, - 0, 841, 834, 835, 0, 828, 831, 832, 833, 836, - 0, 892, 0, 889, 0, 935, 0, 931, 934, 55, - 588, 0, 584, 585, 617, 0, 613, 614, 689, 0, - 0, 64, 876, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 233, 219, 221, 0, 223, - 228, 0, 377, 382, 519, 507, 514, 558, 548, 553, - 0, 452, 457, 307, 304, 323, 316, 313, 0, 0, - 296, 293, 697, 694, 691, 654, 644, 649, 0, 339, - 344, 0, 0, 0, 0, 0, 0, 363, 360, 0, - 0, 0, 0, 0, 726, 723, 0, 0, 0, 328, - 325, 0, 0, 0, 0, 0, 0, 760, 748, 0, - 750, 755, 0, 0, 0, 0, 830, 827, 844, 0, - 891, 888, 0, 933, 930, 57, 0, 56, 0, 582, - 587, 0, 611, 616, 688, 885, 0, 0, 0, 0, - 265, 268, 269, 270, 271, 272, 273, 274, 283, 275, - 0, 281, 282, 0, 0, 0, 0, 232, 0, 227, - 0, 381, 0, 513, 0, 552, 505, 476, 477, 478, - 480, 481, 482, 467, 468, 485, 486, 487, 488, 489, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 490, 491, 502, 503, 504, 463, 464, 465, 466, 474, - 475, 471, 472, 473, 479, 0, 460, 469, 483, 484, - 470, 456, 306, 315, 0, 0, 295, 717, 719, 0, - 715, 709, 710, 711, 712, 713, 714, 716, 706, 707, - 708, 0, 698, 699, 702, 703, 704, 705, 693, 0, - 648, 0, 343, 370, 371, 372, 373, 374, 375, 362, - 0, 0, 741, 744, 745, 725, 335, 336, 337, 327, - 0, 0, 0, 782, 0, 783, 759, 0, 754, 837, - 0, 840, 0, 829, 907, 0, 905, 903, 897, 901, - 902, 0, 894, 899, 900, 898, 890, 936, 932, 54, - 59, 0, 586, 0, 615, 258, 260, 262, 264, 278, - 279, 280, 277, 285, 287, 289, 291, 230, 384, 516, - 555, 462, 459, 300, 302, 0, 0, 0, 696, 701, - 651, 346, 738, 739, 740, 737, 743, 775, 776, 777, - 774, 779, 781, 0, 757, 839, 842, 0, 0, 0, - 896, 893, 58, 589, 618, 461, 0, 0, 721, 700, - 796, 799, 801, 803, 795, 794, 793, 0, 786, 789, - 790, 791, 792, 0, 904, 0, 895, 718, 720, 0, - 0, 0, 0, 788, 785, 0, 906, 0, 0, 0, - 0, 787, 912, 0, 909, 798, 797, 800, 802, 805, - 0, 911, 908, 810, 0, 806, 807, 922, 0, 0, - 0, 927, 0, 914, 917, 918, 919, 920, 921, 910, - 0, 804, 809, 0, 0, 0, 0, 0, 916, 913, - 822, 824, 821, 815, 817, 819, 820, 0, 812, 816, - 818, 808, 0, 924, 925, 926, 0, 915, 0, 0, - 814, 811, 923, 928, 0, 0, 813, 823, 825 + 233, 219, 221, 0, 223, 228, 0, 377, 382, 519, + 507, 514, 558, 548, 553, 0, 452, 457, 307, 304, + 323, 316, 313, 0, 0, 296, 293, 700, 697, 694, + 657, 647, 652, 0, 339, 344, 0, 0, 0, 0, + 0, 0, 363, 360, 0, 0, 0, 0, 0, 729, + 726, 0, 0, 0, 328, 325, 0, 0, 0, 0, + 0, 0, 763, 751, 0, 753, 758, 0, 0, 0, + 0, 833, 830, 847, 0, 894, 891, 0, 936, 933, + 57, 0, 56, 0, 585, 590, 0, 614, 619, 691, + 888, 0, 0, 0, 0, 265, 268, 269, 270, 271, + 272, 273, 274, 283, 275, 0, 281, 282, 0, 0, + 0, 0, 232, 0, 227, 0, 381, 0, 513, 0, + 552, 505, 476, 477, 478, 480, 481, 482, 467, 468, + 485, 486, 487, 488, 489, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 490, 491, 502, 503, 504, + 463, 464, 465, 466, 474, 475, 471, 472, 473, 479, + 0, 460, 469, 483, 484, 470, 456, 306, 315, 0, + 0, 295, 720, 722, 0, 718, 712, 713, 714, 715, + 716, 717, 719, 709, 710, 711, 0, 701, 702, 705, + 706, 707, 708, 696, 0, 651, 0, 343, 370, 371, + 372, 373, 374, 375, 362, 0, 0, 744, 747, 748, + 728, 335, 336, 337, 327, 0, 0, 0, 785, 0, + 786, 762, 0, 757, 840, 0, 843, 0, 832, 910, + 0, 908, 906, 900, 904, 905, 0, 897, 902, 903, + 901, 893, 939, 935, 54, 59, 0, 589, 0, 618, + 258, 260, 262, 264, 278, 279, 280, 277, 285, 287, + 289, 291, 230, 384, 516, 555, 462, 459, 300, 302, + 0, 0, 0, 699, 704, 654, 346, 741, 742, 743, + 740, 746, 778, 779, 780, 777, 782, 784, 0, 760, + 842, 845, 0, 0, 0, 899, 896, 58, 592, 621, + 461, 0, 0, 724, 703, 799, 802, 804, 806, 798, + 797, 796, 0, 789, 792, 793, 794, 795, 0, 907, + 0, 898, 721, 723, 0, 0, 0, 0, 791, 788, + 0, 909, 0, 0, 0, 0, 790, 915, 0, 912, + 801, 800, 803, 805, 808, 0, 914, 911, 813, 0, + 809, 810, 925, 0, 0, 0, 930, 0, 917, 920, + 921, 922, 923, 924, 913, 0, 807, 812, 0, 0, + 0, 0, 0, 919, 916, 825, 827, 824, 818, 820, + 822, 823, 0, 815, 819, 821, 811, 0, 927, 928, + 929, 0, 918, 0, 0, 817, 814, 926, 931, 0, + 0, 816, 826, 828 }; const short Dhcp6Parser::yypgoto_[] = { - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -5, -1344, -589, -1344, - 527, -1344, -1344, -1344, -1344, 486, -1344, -618, -1344, -1344, - -1344, -71, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 514, - 722, -1344, -1344, -61, -58, -35, -31, -4, 3, -34, - 20, 21, 25, 32, 33, 35, -1344, 37, 40, 43, - 47, -1344, -1344, 48, -1344, 51, -1344, 53, 59, 61, - -1344, -1344, 64, 67, -1344, 71, -1344, 74, -1344, -1344, - -1344, -1344, -1344, 77, -1344, 79, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, 505, 724, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 439, -1344, - 202, -1344, -703, 218, -1344, -1344, -1343, -1344, -1339, -1344, - -1344, -1344, -1344, -30, -1344, -737, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -761, - -1344, -744, -1344, -741, -1344, -1344, -1344, -1344, -1344, -1344, - 186, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 197, -729, - -1344, -1344, -1344, -1344, 200, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, 165, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - 192, -1344, -1344, -1344, 190, 687, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, 187, -1344, -1344, -1344, -1344, -1344, -1344, - -1019, -1344, -1344, -1344, 220, -1344, -1344, -1344, 224, 742, - -1344, -1344, -1014, -1344, -1013, -1344, -11, -1344, 86, -1344, - 81, 82, 85, -1344, -1010, -1344, -1344, -1344, -1344, 221, - -1344, -1344, -29, 1200, -1344, -1344, -1344, -1344, -1344, 234, - -1344, -1344, -1344, 237, -1344, 717, -1344, -65, -1344, -1344, - -1344, -1344, -1344, -63, -1344, -1344, -1344, -1344, -1344, -41, - -1344, -1344, -1344, 235, -1344, -1344, -1344, 236, -1344, 716, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, 166, -1344, -1344, -1344, 167, 751, -1344, -1344, - -62, -54, -1344, 7, -1344, -1344, -1344, -1344, -1344, 168, - -1344, -1344, -1344, 172, 745, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -56, -1344, -1344, -1344, 229, -1344, -1344, -1344, - 233, -1344, 746, 518, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1009, - -1344, -1344, -1344, -1344, -1344, 240, -1344, -1344, -1344, -10, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, 222, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, 206, -1344, 212, 226, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -53, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -89, -1344, -1344, -116, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, 209, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, 547, 735, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, 589, 743, -1344, -1344, -1344, -1344, - -1344, -1344, 210, -1344, -1344, -3, -1344, -1344, -1344, -1344, - -1344, -1344, -49, -1344, -1344, -83, -1344, -1344, -1344, -1344, - -1344, -1344, -1344, -1344, -1344, -1344, 227, -1344 + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, 0, -1354, -581, -1354, + 524, -1354, -1354, -1354, -1354, 119, -1354, -624, -1354, -1354, + -1354, -71, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 508, + 726, -1354, -1354, -61, -58, -27, -25, -7, 12, -1, + 19, 30, 31, 36, 37, 41, -1354, 43, 47, 49, + 53, -1354, -1354, 55, -1354, 59, -1354, 60, 61, 65, + -1354, -1354, 67, 71, -1354, 72, -1354, 73, -1354, -1354, + -1354, -1354, -1354, 75, -1354, 77, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, 512, 721, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 434, -1354, + 202, -1354, -712, 212, -1354, -1354, -1353, -1354, -1349, -1354, + -1354, -1354, -1354, -41, -1354, -746, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -765, + -1354, -758, -1354, -754, -1354, -1354, -1354, -1354, -1354, -1354, + 185, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 197, -737, + -1354, -1354, -1354, -1354, 193, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, 164, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + 187, -1354, -1354, -1354, 190, 689, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, 178, -1354, -1354, -1354, -1354, -1354, -1354, + -1023, -1354, -1354, -1354, 222, -1354, -1354, -1354, 225, 733, + -1354, -1354, -1020, -1354, -1016, -1354, 80, -1354, 86, -1354, + 78, 79, 83, -1354, -1015, -1354, -1354, -1354, -1354, 215, + -1354, -1354, -32, 1198, -1354, -1354, -1354, -1354, -1354, 226, + -1354, -1354, -1354, 227, -1354, 715, -1354, -57, -1354, -1354, + -1354, -1354, -1354, -54, -1354, -1354, -1354, -1354, -1354, -55, + -1354, -1354, -1354, 224, -1354, -1354, -1354, 228, -1354, 710, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, 161, -1354, -1354, -1354, 168, 746, + -1354, -1354, -64, -45, -1354, -14, -1354, -1354, -1354, -1354, + -1354, 167, -1354, -1354, -1354, 172, 747, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -59, -1354, -1354, -1354, 216, -1354, + -1354, -1354, 231, -1354, 751, 516, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1014, -1354, -1354, -1354, -1354, -1354, 238, -1354, -1354, + -1354, -18, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, 221, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, 203, -1354, 207, + 211, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -56, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -92, -1354, -1354, -119, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, 206, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, 545, 735, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, 587, 736, -1354, -1354, + -1354, -1354, -1354, -1354, 209, -1354, -1354, -6, -1354, -1354, + -1354, -1354, -1354, -1354, -53, -1354, -1354, -85, -1354, -1354, + -1354, -1354, -1354, -1354, -1354, -1354, -1354, -1354, 213, -1354 }; const short @@ -5764,350 +5787,348 @@ namespace isc { namespace dhcp { { 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 83, 39, 40, 69, - 755, 87, 88, 41, 68, 84, 85, 776, 999, 1116, - 1117, 836, 43, 70, 90, 442, 91, 45, 71, 162, - 163, 164, 445, 165, 166, 167, 168, 169, 170, 171, + 759, 87, 88, 41, 68, 84, 85, 780, 1004, 1121, + 1122, 841, 43, 70, 90, 444, 91, 45, 71, 162, + 163, 164, 447, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 471, 740, 183, 472, 184, 473, 185, 186, 187, - 484, 752, 188, 189, 506, 190, 507, 191, 192, 193, - 194, 465, 195, 196, 482, 197, 483, 198, 199, 200, - 201, 447, 47, 72, 238, 239, 240, 516, 241, 242, - 243, 244, 202, 448, 203, 449, 204, 450, 863, 864, - 865, 1038, 837, 838, 839, 1014, 840, 1015, 841, 1016, - 842, 1017, 843, 844, 558, 845, 846, 847, 848, 849, - 850, 851, 852, 853, 1028, 1292, 854, 855, 856, 857, - 1031, 858, 1032, 859, 1033, 860, 1034, 205, 494, 898, - 899, 900, 1058, 901, 1059, 206, 491, 884, 885, 886, - 887, 207, 493, 892, 893, 894, 895, 208, 492, 209, - 501, 947, 948, 949, 950, 951, 210, 497, 910, 911, - 912, 1068, 63, 80, 406, 407, 408, 572, 409, 573, - 211, 498, 919, 920, 921, 922, 923, 924, 925, 926, - 212, 478, 867, 868, 869, 1041, 49, 73, 286, 287, - 288, 525, 289, 526, 290, 527, 291, 531, 292, 530, - 213, 214, 215, 296, 297, 216, 485, 879, 880, 881, - 1050, 1195, 1196, 217, 479, 57, 77, 871, 872, 873, - 1044, 59, 78, 369, 370, 371, 372, 373, 374, 375, - 557, 376, 561, 377, 560, 378, 379, 562, 380, 218, - 480, 875, 876, 877, 1047, 61, 79, 391, 392, 393, - 394, 395, 566, 396, 397, 398, 399, 400, 299, 523, - 1001, 1002, 1003, 1118, 51, 74, 311, 312, 313, 535, - 314, 219, 486, 220, 487, 302, 524, 1005, 1006, 1007, - 1121, 53, 75, 329, 330, 331, 539, 332, 333, 541, - 334, 335, 221, 496, 906, 907, 908, 1065, 55, 76, - 348, 349, 350, 351, 547, 352, 548, 353, 549, 354, - 550, 355, 551, 356, 552, 357, 553, 358, 546, 304, - 532, 1009, 222, 495, 903, 904, 1062, 1221, 1222, 1223, - 1224, 1225, 1305, 1226, 1306, 1227, 223, 499, 936, 937, - 938, 1079, 1315, 939, 940, 1080, 941, 942, 224, 225, - 502, 226, 503, 975, 976, 977, 1099, 966, 967, 968, - 1091, 1320, 969, 1092, 970, 1093, 971, 972, 973, 1095, - 1347, 1348, 1349, 1359, 1376, 1350, 1360, 1351, 1361, 1352, - 1362, 1384, 1385, 1386, 1400, 1417, 1418, 1419, 1428, 1420, - 1429, 227, 504, 984, 985, 986, 987, 1103, 988, 989, - 1105, 228, 505, 65, 81, 421, 422, 423, 424, 577, - 425, 426, 579, 427, 428, 429, 582, 808, 430, 583, - 229, 446, 67, 82, 433, 434, 435, 586, 436, 230, - 511, 992, 993, 1109, 1271, 1272, 1273, 1274, 1329, 1275, - 1327, 1373, 1374, 1380, 1392, 1393, 1394, 1403, 1395, 1396, - 1397, 1398, 1407, 231, 512, 996, 997, 998 + 182, 473, 744, 183, 474, 184, 475, 185, 186, 187, + 486, 756, 188, 189, 508, 190, 509, 191, 192, 193, + 194, 467, 195, 196, 484, 197, 485, 198, 199, 200, + 201, 449, 47, 72, 238, 239, 240, 518, 241, 242, + 243, 244, 202, 450, 203, 451, 204, 452, 868, 869, + 870, 1043, 842, 843, 844, 1019, 845, 1020, 846, 1021, + 847, 1022, 848, 849, 560, 850, 851, 852, 853, 854, + 855, 856, 857, 858, 1033, 1297, 859, 860, 861, 862, + 1036, 863, 1037, 864, 1038, 865, 1039, 205, 496, 903, + 904, 905, 1063, 906, 1064, 206, 493, 889, 890, 891, + 892, 207, 495, 897, 898, 899, 900, 208, 494, 209, + 503, 952, 953, 954, 955, 956, 210, 499, 915, 916, + 917, 1073, 63, 80, 408, 409, 410, 575, 411, 576, + 211, 500, 924, 925, 926, 927, 928, 929, 930, 931, + 212, 480, 872, 873, 874, 1046, 49, 73, 286, 287, + 288, 527, 289, 528, 290, 529, 291, 533, 292, 532, + 213, 214, 215, 296, 297, 216, 487, 884, 885, 886, + 1055, 1200, 1201, 217, 481, 57, 77, 876, 877, 878, + 1049, 59, 78, 369, 370, 371, 372, 373, 374, 375, + 559, 376, 563, 377, 562, 378, 379, 564, 380, 218, + 482, 880, 881, 882, 1052, 61, 79, 392, 393, 394, + 395, 396, 568, 397, 398, 399, 400, 401, 402, 572, + 299, 525, 1006, 1007, 1008, 1123, 51, 74, 311, 312, + 313, 537, 314, 219, 488, 220, 489, 302, 526, 1010, + 1011, 1012, 1126, 53, 75, 329, 330, 331, 541, 332, + 333, 543, 334, 335, 221, 498, 911, 912, 913, 1070, + 55, 76, 348, 349, 350, 351, 549, 352, 550, 353, + 551, 354, 552, 355, 553, 356, 554, 357, 555, 358, + 548, 304, 534, 1014, 222, 497, 908, 909, 1067, 1226, + 1227, 1228, 1229, 1230, 1310, 1231, 1311, 1232, 223, 501, + 941, 942, 943, 1084, 1320, 944, 945, 1085, 946, 947, + 224, 225, 504, 226, 505, 980, 981, 982, 1104, 971, + 972, 973, 1096, 1325, 974, 1097, 975, 1098, 976, 977, + 978, 1100, 1352, 1353, 1354, 1364, 1381, 1355, 1365, 1356, + 1366, 1357, 1367, 1389, 1390, 1391, 1405, 1422, 1423, 1424, + 1433, 1425, 1434, 227, 506, 989, 990, 991, 992, 1108, + 993, 994, 1110, 228, 507, 65, 81, 423, 424, 425, + 426, 580, 427, 428, 582, 429, 430, 431, 585, 813, + 432, 586, 229, 448, 67, 82, 435, 436, 437, 589, + 438, 230, 513, 997, 998, 1114, 1276, 1277, 1278, 1279, + 1334, 1280, 1332, 1378, 1379, 1385, 1397, 1398, 1399, 1408, + 1400, 1401, 1402, 1403, 1412, 231, 514, 1001, 1002, 1003 }; const short Dhcp6Parser::yytable_[] = { - 161, 237, 257, 307, 322, 344, 961, 367, 387, 405, - 418, 38, 258, 326, 389, 259, 390, 303, 245, 300, - 315, 327, 346, 962, 381, 401, 963, 419, 933, 861, - 891, 1186, 298, 310, 325, 345, 1187, 1188, 260, 264, - 1194, 1200, 261, 31, 882, 32, 754, 33, 368, 388, - 806, 807, 232, 233, 234, 235, 236, 1413, 782, 403, - 404, 1414, 361, 308, 323, 735, 736, 737, 738, 262, - 30, 788, 789, 790, 791, 1053, 263, 994, 1054, 246, - 301, 316, 328, 347, 86, 382, 402, 1413, 420, 133, - 134, 1414, 160, 265, 266, 443, 514, 42, 267, 521, - 444, 515, 739, 126, 522, 268, 269, 533, 270, 537, - 271, 89, 534, 272, 538, 1056, 273, 544, 1057, 437, - 274, 275, 545, 754, 276, 44, 277, 46, 574, 438, - 584, 588, 278, 575, 279, 585, 589, 280, 514, 883, - 281, 133, 134, 1011, 282, 48, 1340, 283, 160, 50, - 284, 588, 285, 52, 293, 294, 1012, 521, 295, 54, - 309, 324, 1013, 815, 816, 817, 818, 819, 820, 821, - 822, 823, 824, 825, 826, 827, 828, 829, 1312, 1313, - 1314, 830, 831, 832, 833, 834, 835, 1264, 927, 1265, - 1266, 1063, 56, 820, 1064, 92, 93, 1387, 58, 94, - 1388, 1389, 1390, 1391, 1035, 95, 96, 97, 1035, 1036, - 1060, 160, 439, 1037, 1077, 1061, 1084, 361, 1089, 1078, - 1097, 1085, 360, 1090, 440, 1098, 1106, 133, 134, 816, - 817, 1107, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 441, 160, 60, 34, 35, 36, 37, 133, - 134, 62, 128, 129, 130, 131, 361, 64, 362, 363, - 132, 584, 1186, 364, 365, 366, 1108, 1187, 1188, 133, - 134, 1194, 1200, 1341, 1342, 1343, 135, 136, 137, 138, - 139, 140, 141, 133, 134, 142, 1113, 66, 1035, 133, - 134, 1114, 143, 1297, 533, 928, 929, 930, 931, 1298, - 1301, 144, 451, 574, 145, 1302, 452, 891, 1311, 1097, - 1110, 146, 1330, 1111, 1324, 1148, 961, 1331, 961, 147, - 148, 537, 554, 544, 149, 150, 1333, 933, 1334, 160, - 453, 1381, 1363, 962, 1382, 962, 963, 1364, 963, 127, - 454, 151, 1408, 1430, 555, 152, 160, 1409, 1431, 98, - 99, 100, 101, 102, 103, 1289, 1290, 1291, 1410, 1411, - 305, 153, 154, 155, 156, 157, 158, 133, 134, 431, - 432, 160, 127, 403, 404, 159, 133, 134, 127, 361, - 748, 749, 750, 751, 254, 1317, 1318, 1319, 255, 306, - 455, 160, 896, 897, 456, 317, 318, 319, 320, 321, - 133, 134, 457, 458, 459, 160, 133, 134, 460, 882, - 889, 160, 890, 590, 591, 133, 134, 254, 461, 462, - 463, 255, 306, 161, 1207, 1208, 1209, 464, 466, 467, - 237, 468, 469, 361, 383, 362, 363, 384, 385, 386, - 470, 474, 257, 475, 476, 477, 307, 245, 481, 978, - 979, 980, 258, 322, 488, 259, 489, 303, 490, 300, - 133, 134, 326, 315, 344, 500, 556, 943, 944, 945, - 327, 508, 298, 509, 367, 510, 310, 513, 260, 264, - 387, 346, 261, 325, 517, 518, 389, 519, 390, 160, - 520, 381, 528, 418, 345, 529, 536, 401, 981, 540, - 542, 832, 833, 834, 543, 559, 308, 563, 246, 262, - 419, 565, 564, 323, 567, 368, 263, 568, 569, 570, - 301, 388, 160, 571, 316, 576, 578, 580, 160, 581, - 587, 328, 592, 265, 266, 593, 594, 160, 267, 595, - 600, 596, 347, 597, 598, 268, 269, 599, 270, 601, - 271, 602, 382, 272, 608, 603, 273, 614, 402, 604, - 274, 275, 133, 134, 276, 605, 277, 133, 134, 620, - 606, 420, 278, 607, 279, 609, 610, 280, 611, 612, - 281, 613, 160, 621, 282, 615, 616, 283, 622, 617, - 284, 618, 285, 619, 293, 294, 623, 624, 295, 625, - 627, 626, 628, 309, 913, 914, 915, 916, 917, 918, - 324, 629, 630, 127, 631, 632, 633, 634, 635, 954, - 636, 637, 638, 955, 956, 957, 958, 639, 640, 641, - 642, 643, 644, 959, 645, 646, 161, 647, 648, 237, - 649, 133, 134, 650, 410, 411, 412, 413, 414, 415, - 416, 417, 651, 652, 653, 654, 245, 336, 655, 656, - 657, 658, 659, 660, 661, 337, 338, 339, 340, 341, - 342, 343, 663, 664, 932, 946, 960, 665, 669, 418, - 670, 666, 671, 995, 160, 672, 673, 667, 674, 160, - 676, 934, 952, 964, 675, 982, 419, 677, 678, 680, - 681, 811, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 683, 246, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 685, 689, 684, 686, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 687, 690, 127, 691, 692, - 693, 694, 935, 953, 965, 695, 983, 420, 696, 129, - 130, 131, 698, 160, 699, 701, 700, 247, 702, 248, - 703, 704, 706, 711, 707, 133, 134, 249, 250, 251, - 252, 253, 135, 136, 137, 708, 709, 712, 714, 715, - 716, 717, 254, 720, 718, 719, 255, 721, 143, 723, - 724, 726, 728, 727, 733, 729, 256, 730, 731, 732, - 734, 743, 741, 742, 744, 745, 746, 747, 753, 32, - 756, 757, 758, 759, 771, 761, 760, 762, 763, 772, - 779, 764, 765, 766, 767, 768, 769, 773, 770, 775, - 774, 777, 778, 810, 780, 781, 783, 784, 785, 786, - 787, 862, 866, 809, 870, 874, 792, 878, 902, 793, - 905, 909, 794, 795, 796, 797, 974, 153, 154, 798, - 799, 800, 801, 802, 804, 991, 1000, 1004, 337, 805, - 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, - 1029, 1030, 1040, 1115, 1039, 1043, 1042, 160, 1046, 1045, - 1048, 1049, 1051, 1052, 1285, 1055, 1067, 1066, 1069, 1070, - 1100, 1071, 1072, 1073, 1074, 1075, 1076, 1081, 1082, 1083, - 1086, 1087, 1088, 1094, 1096, 1101, 1130, 1102, 1104, 1112, - 1120, 1131, 1119, 1123, 1122, 1126, 1132, 1124, 1125, 1127, - 1128, 1129, 1134, 1133, 1135, 1136, 1137, 1138, 1139, 1140, - 257, 1141, 1142, 367, 1143, 1144, 387, 1145, 1146, 1156, - 258, 1204, 389, 259, 390, 303, 1205, 300, 1233, 1157, - 381, 1210, 1158, 401, 344, 1240, 1198, 405, 1234, 1241, - 298, 1211, 1246, 1235, 1212, 1236, 260, 264, 1219, 1197, - 261, 346, 1250, 932, 368, 1159, 1163, 388, 946, 1160, - 1185, 1218, 1237, 1238, 345, 1242, 960, 1213, 960, 1243, - 934, 1214, 1217, 1251, 1244, 952, 1247, 262, 1267, 1189, - 1248, 1252, 995, 964, 263, 964, 1161, 307, 301, 1254, - 322, 382, 982, 1162, 402, 1269, 1253, 1199, 1215, 326, - 1260, 265, 266, 1261, 315, 1216, 267, 327, 1262, 1220, - 1164, 1165, 347, 268, 269, 1166, 270, 310, 271, 1268, - 325, 272, 1167, 1168, 273, 1169, 1279, 1170, 274, 275, - 1171, 935, 276, 1172, 277, 1280, 953, 1173, 1174, 1255, - 278, 1175, 279, 1176, 965, 280, 965, 308, 281, 1177, - 323, 1178, 282, 983, 1179, 283, 1270, 1180, 284, 1286, - 285, 1181, 293, 294, 1182, 316, 295, 1183, 328, 1184, - 1299, 1191, 1192, 1300, 1307, 1193, 1190, 1308, 1309, 1310, - 1323, 1259, 1328, 1336, 1287, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 1337, 1353, - 1355, 1367, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 1365, 127, 361, 1368, 1369, 1370, 1375, - 1402, 1288, 1372, 1277, 1379, 1293, 129, 130, 131, 1294, - 1295, 1296, 1383, 1303, 1304, 1316, 1321, 1401, 1404, 1322, - 1405, 1406, 133, 134, 309, 250, 251, 324, 253, 135, - 136, 137, 1325, 1332, 1338, 1354, 1357, 1358, 1422, 254, - 1366, 1377, 1423, 255, 1378, 1426, 1424, 1425, 1432, 1433, - 1156, 1434, 1435, 256, 1437, 814, 662, 1438, 1210, 803, - 1157, 812, 1149, 1158, 888, 668, 1206, 1198, 1211, 1010, - 1202, 1212, 1344, 1147, 1249, 1219, 1203, 1326, 1231, 1267, - 1197, 713, 1232, 1151, 1239, 1150, 1159, 1163, 1218, 1345, - 1160, 1185, 1335, 1201, 1213, 679, 1269, 359, 1214, 1217, - 1153, 1152, 705, 1154, 1155, 1281, 1282, 710, 682, 688, - 1189, 1284, 1344, 1283, 153, 154, 1230, 1161, 1229, 1339, - 1268, 697, 1008, 1228, 1162, 1215, 1245, 1258, 1199, 1345, - 1371, 1257, 1216, 1421, 1436, 1263, 1220, 990, 813, 722, - 1276, 1164, 1165, 1256, 160, 1427, 1166, 1356, 0, 1412, - 1346, 725, 1399, 1167, 1168, 0, 1169, 1270, 1170, 0, - 1278, 1171, 0, 0, 1172, 0, 1415, 0, 1173, 1174, - 0, 0, 1175, 0, 1176, 0, 0, 0, 0, 1412, - 1177, 0, 1178, 0, 0, 1179, 0, 0, 1180, 0, - 1346, 0, 1181, 0, 0, 1182, 1415, 0, 1183, 0, - 1184, 0, 1191, 1192, 0, 0, 1193, 1190, 0, 0, + 161, 237, 257, 307, 322, 344, 966, 367, 388, 407, + 420, 326, 258, 967, 303, 259, 38, 968, 298, 310, + 325, 345, 390, 938, 866, 391, 896, 245, 300, 315, + 327, 346, 1191, 381, 403, 1192, 421, 368, 389, 1193, + 1199, 1205, 887, 31, 30, 32, 260, 33, 261, 1345, + 405, 406, 1418, 133, 134, 786, 1419, 758, 246, 301, + 316, 328, 347, 42, 382, 404, 262, 422, 792, 793, + 794, 795, 264, 232, 233, 234, 235, 236, 739, 740, + 741, 742, 1418, 999, 1058, 263, 1419, 1059, 1061, 806, + 445, 1062, 265, 821, 822, 446, 1392, 44, 160, 1393, + 1394, 1395, 1396, 266, 267, 948, 949, 950, 932, 268, + 269, 46, 516, 825, 270, 743, 271, 517, 133, 134, + 272, 48, 273, 50, 523, 52, 274, 54, 275, 524, + 133, 134, 276, 277, 278, 758, 535, 888, 279, 160, + 280, 536, 539, 56, 281, 282, 283, 540, 284, 86, + 285, 293, 294, 546, 308, 323, 295, 89, 547, 577, + 309, 324, 133, 134, 578, 587, 591, 58, 92, 93, + 588, 592, 94, 133, 134, 160, 60, 62, 95, 96, + 97, 918, 919, 920, 921, 922, 923, 433, 434, 133, + 134, 983, 984, 985, 516, 591, 1346, 1347, 1348, 1016, + 1017, 887, 894, 64, 895, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 933, 934, 935, 936, 66, + 986, 126, 1415, 1416, 360, 128, 129, 130, 131, 1317, + 1318, 1319, 160, 132, 837, 838, 839, 1068, 1115, 523, + 1069, 1116, 133, 134, 1018, 34, 35, 36, 37, 135, + 136, 137, 138, 139, 140, 141, 1040, 1040, 142, 405, + 406, 1041, 1042, 1191, 160, 143, 1192, 439, 1065, 440, + 1193, 1199, 1205, 1066, 144, 160, 1386, 145, 361, 1387, + 362, 363, 441, 1082, 146, 364, 365, 366, 1083, 1089, + 442, 160, 147, 148, 1090, 133, 134, 149, 150, 1294, + 1295, 1296, 1094, 1102, 896, 133, 134, 1095, 1103, 443, + 556, 1153, 811, 812, 151, 133, 134, 966, 152, 966, + 1111, 557, 587, 938, 967, 1112, 967, 1113, 968, 453, + 968, 1322, 1323, 1324, 153, 154, 155, 156, 157, 158, + 1118, 1040, 535, 558, 1306, 1119, 1302, 1303, 159, 1307, + 577, 566, 959, 454, 455, 1316, 960, 961, 962, 963, + 1102, 573, 1335, 567, 160, 1329, 964, 1336, 820, 821, + 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, + 832, 833, 834, 901, 902, 456, 835, 836, 837, 838, + 839, 840, 412, 413, 414, 415, 416, 417, 418, 419, + 539, 361, 546, 1368, 1413, 1338, 457, 1339, 1369, 1414, + 98, 99, 100, 101, 102, 103, 458, 160, 1435, 574, + 593, 594, 361, 1436, 459, 161, 460, 160, 133, 134, + 461, 462, 237, 463, 464, 465, 466, 160, 468, 127, + 361, 469, 470, 471, 257, 472, 476, 477, 307, 478, + 752, 753, 754, 755, 258, 322, 303, 259, 245, 479, + 298, 483, 326, 490, 310, 491, 344, 133, 134, 492, + 300, 325, 502, 510, 315, 511, 367, 512, 515, 519, + 520, 327, 345, 388, 521, 1212, 1213, 1214, 260, 246, + 261, 522, 346, 530, 595, 531, 420, 390, 538, 542, + 391, 301, 381, 544, 545, 316, 368, 561, 262, 403, + 127, 565, 328, 389, 264, 569, 570, 571, 579, 581, + 583, 584, 421, 347, 590, 596, 1269, 263, 1270, 1271, + 597, 305, 598, 382, 265, 599, 600, 601, 133, 134, + 404, 602, 603, 604, 605, 266, 267, 617, 606, 607, + 160, 268, 269, 422, 608, 254, 270, 609, 271, 255, + 306, 610, 272, 612, 273, 623, 611, 127, 274, 613, + 275, 160, 620, 615, 276, 277, 278, 614, 624, 616, + 279, 625, 280, 618, 619, 630, 281, 282, 283, 160, + 284, 621, 285, 293, 294, 133, 134, 622, 295, 308, + 626, 627, 628, 631, 127, 309, 323, 629, 632, 634, + 633, 336, 324, 635, 636, 637, 638, 639, 640, 337, + 338, 339, 340, 341, 342, 343, 641, 317, 318, 319, + 320, 321, 133, 134, 642, 643, 644, 645, 646, 647, + 161, 648, 649, 237, 650, 651, 652, 653, 654, 254, + 655, 656, 657, 255, 306, 658, 659, 663, 660, 664, + 160, 666, 672, 673, 674, 661, 662, 675, 676, 245, + 667, 361, 383, 362, 363, 384, 385, 386, 937, 951, + 965, 668, 669, 420, 670, 679, 677, 1000, 680, 681, + 678, 683, 684, 686, 687, 688, 692, 707, 133, 134, + 246, 693, 694, 695, 939, 957, 969, 689, 987, 421, + 816, 690, 696, 697, 387, 698, 699, 160, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 701, 702, 703, 940, 958, 970, 704, 988, + 422, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 160, 705, 706, 709, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 710, 711, + 127, 712, 713, 715, 716, 718, 719, 720, 721, 722, + 723, 724, 129, 130, 131, 725, 727, 728, 730, 732, + 247, 738, 248, 731, 733, 734, 735, 736, 133, 134, + 249, 250, 251, 252, 253, 135, 136, 137, 737, 745, + 746, 747, 748, 749, 750, 254, 751, 757, 32, 255, + 160, 143, 760, 761, 762, 763, 1045, 765, 764, 256, + 766, 767, 337, 775, 768, 769, 770, 771, 772, 773, + 777, 774, 776, 778, 779, 781, 782, 783, 784, 785, + 787, 788, 789, 790, 791, 796, 797, 798, 814, 815, + 867, 893, 871, 799, 875, 879, 800, 883, 907, 801, + 910, 914, 802, 979, 996, 1005, 803, 804, 1009, 1023, + 1024, 805, 1025, 807, 1026, 1027, 1028, 1029, 809, 810, + 153, 154, 1030, 1031, 1032, 1034, 1035, 1120, 1048, 1044, + 1047, 1051, 1050, 1053, 1054, 1056, 1057, 1135, 1060, 1072, + 1071, 1074, 1075, 1105, 1076, 1077, 1078, 1079, 1080, 1081, + 160, 1086, 1087, 1088, 1091, 1092, 1093, 1099, 1101, 1106, + 1136, 1107, 1109, 1117, 1125, 1137, 1124, 1128, 1127, 1131, + 1138, 1129, 1130, 1132, 1133, 1134, 1139, 1140, 1141, 1142, + 1143, 1144, 1145, 1147, 1146, 257, 1148, 1149, 367, 1150, + 1151, 388, 1209, 1210, 1161, 258, 1238, 303, 259, 1239, + 1240, 298, 1241, 1242, 1162, 390, 1215, 1163, 391, 344, + 1202, 300, 407, 1243, 381, 1245, 1216, 403, 368, 1217, + 1203, 389, 1223, 1246, 1190, 345, 1251, 1255, 937, 260, + 1256, 261, 1224, 951, 1247, 346, 1222, 1248, 1164, 1257, + 1165, 965, 301, 965, 1259, 382, 1265, 1267, 404, 262, + 1218, 1204, 1219, 1272, 939, 264, 1249, 1000, 1166, 957, + 1252, 1260, 307, 1225, 1168, 322, 347, 969, 263, 969, + 1220, 1253, 326, 1258, 1264, 265, 987, 1167, 310, 1274, + 1284, 325, 1266, 1273, 1169, 940, 266, 267, 315, 1221, + 958, 327, 268, 269, 1285, 1170, 1171, 270, 970, 271, + 970, 1172, 1173, 272, 1290, 273, 1174, 988, 1175, 274, + 1275, 275, 1176, 1291, 1177, 276, 277, 278, 1178, 316, + 1179, 279, 328, 280, 1180, 1181, 1182, 281, 282, 283, + 1183, 284, 1184, 285, 293, 294, 1185, 1186, 1187, 295, + 1188, 1292, 1189, 1196, 1197, 1194, 1282, 1304, 1198, 1305, + 1312, 1195, 1313, 1314, 1406, 1315, 1328, 1293, 1333, 1341, + 1342, 1358, 1360, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 1343, 1370, 1372, 1373, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 1374, 127, 361, 1298, 1299, 1375, 1377, 1380, 1300, + 1301, 1308, 1309, 1321, 129, 130, 131, 1326, 1327, 1384, + 1388, 1330, 1407, 308, 1337, 1409, 323, 1410, 1359, 309, + 133, 134, 324, 250, 251, 1362, 253, 135, 136, 137, + 1363, 1371, 1382, 1383, 1411, 1427, 1431, 254, 1428, 1439, + 1429, 255, 1430, 1437, 1438, 1161, 1440, 1442, 1443, 817, + 808, 256, 665, 1215, 671, 1162, 819, 1154, 1163, 1015, + 1211, 1202, 1152, 1216, 1208, 1207, 1217, 1349, 1254, 1223, + 1244, 1203, 1237, 1236, 1272, 1190, 717, 1331, 682, 1224, + 1156, 1155, 1206, 1222, 1340, 359, 1157, 1158, 1160, 1164, + 1159, 1165, 708, 1350, 714, 685, 1287, 1218, 1235, 1219, + 1274, 1286, 1204, 691, 1273, 1289, 1344, 1349, 1288, 1166, + 1225, 1234, 153, 154, 1013, 1168, 1233, 1220, 700, 1263, + 1250, 1262, 1376, 1261, 1351, 1426, 1441, 1268, 1167, 995, + 818, 1275, 726, 1350, 1281, 1169, 1221, 729, 1432, 1361, + 0, 1283, 160, 1404, 1417, 0, 1170, 1171, 0, 0, + 0, 0, 1172, 1173, 0, 0, 0, 1174, 0, 1175, + 0, 0, 0, 1176, 1351, 1177, 0, 0, 0, 1178, + 1420, 1179, 0, 0, 1417, 1180, 1181, 1182, 0, 0, + 0, 1183, 0, 1184, 0, 0, 0, 1185, 1186, 1187, + 0, 1188, 0, 1189, 1196, 1197, 1194, 0, 0, 1198, + 1420, 1421, 1195, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1416, 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, 1416 + 0, 1421 }; const short Dhcp6Parser::yycheck_[] = { - 71, 72, 73, 74, 75, 76, 767, 78, 79, 80, - 81, 16, 73, 75, 79, 73, 79, 73, 72, 73, - 74, 75, 76, 767, 78, 79, 767, 81, 765, 732, - 759, 1050, 73, 74, 75, 76, 1050, 1050, 73, 73, - 1050, 1050, 73, 5, 132, 7, 635, 9, 78, 79, - 190, 191, 16, 17, 18, 19, 20, 1400, 676, 138, - 139, 1400, 78, 74, 75, 193, 194, 195, 196, 73, - 0, 689, 690, 691, 692, 3, 73, 212, 6, 72, - 73, 74, 75, 76, 227, 78, 79, 1430, 81, 105, - 106, 1430, 227, 73, 73, 3, 3, 7, 73, 3, - 8, 8, 230, 76, 8, 73, 73, 3, 73, 3, - 73, 10, 8, 73, 8, 3, 73, 3, 6, 6, - 73, 73, 8, 712, 73, 7, 73, 7, 3, 3, - 3, 3, 73, 8, 73, 8, 8, 73, 3, 227, - 73, 105, 106, 8, 73, 7, 24, 73, 227, 7, - 73, 3, 73, 7, 73, 73, 8, 3, 73, 7, - 74, 75, 8, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 148, 149, - 150, 42, 43, 44, 45, 46, 47, 203, 24, 205, - 206, 3, 7, 29, 6, 11, 12, 204, 7, 15, - 207, 208, 209, 210, 3, 21, 22, 23, 3, 8, - 3, 227, 4, 8, 3, 8, 3, 78, 3, 8, - 3, 8, 24, 8, 8, 8, 3, 105, 106, 25, - 26, 8, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 3, 227, 7, 227, 228, 229, 230, 105, - 106, 7, 88, 89, 90, 91, 78, 7, 80, 81, - 96, 3, 1301, 85, 86, 87, 8, 1301, 1301, 105, - 106, 1301, 1301, 171, 172, 173, 112, 113, 114, 115, - 116, 117, 118, 105, 106, 121, 3, 7, 3, 105, - 106, 8, 128, 8, 3, 151, 152, 153, 154, 8, - 3, 137, 4, 3, 140, 8, 4, 1056, 8, 3, - 3, 147, 3, 6, 8, 1038, 1097, 8, 1099, 155, - 156, 3, 8, 3, 160, 161, 8, 1084, 8, 227, - 4, 3, 3, 1097, 6, 1099, 1097, 8, 1099, 77, - 4, 177, 3, 3, 3, 181, 227, 8, 8, 48, - 49, 50, 51, 52, 53, 39, 40, 41, 174, 175, - 98, 197, 198, 199, 200, 201, 202, 105, 106, 13, - 14, 227, 77, 138, 139, 211, 105, 106, 77, 78, - 92, 93, 94, 95, 122, 163, 164, 165, 126, 127, - 4, 227, 119, 120, 4, 100, 101, 102, 103, 104, - 105, 106, 4, 4, 4, 227, 105, 106, 4, 132, - 133, 227, 135, 438, 439, 105, 106, 122, 4, 4, - 4, 126, 127, 514, 123, 124, 125, 4, 4, 4, - 521, 4, 4, 78, 79, 80, 81, 82, 83, 84, - 4, 4, 533, 4, 4, 4, 537, 521, 4, 178, - 179, 180, 533, 544, 4, 533, 4, 533, 4, 533, - 105, 106, 544, 537, 555, 4, 8, 157, 158, 159, - 544, 4, 533, 4, 565, 4, 537, 4, 533, 533, - 571, 555, 533, 544, 4, 4, 571, 4, 571, 227, - 4, 565, 4, 584, 555, 4, 4, 571, 227, 4, - 4, 44, 45, 46, 4, 4, 537, 4, 521, 533, - 584, 3, 8, 544, 4, 565, 533, 4, 4, 8, - 533, 571, 227, 3, 537, 4, 4, 4, 227, 4, - 4, 544, 227, 533, 533, 4, 4, 227, 533, 4, - 228, 4, 555, 4, 4, 533, 533, 4, 533, 228, - 533, 228, 565, 533, 230, 228, 533, 4, 571, 228, - 533, 533, 105, 106, 533, 228, 533, 105, 106, 4, - 228, 584, 533, 228, 533, 229, 229, 533, 229, 228, - 533, 228, 227, 4, 533, 228, 228, 533, 4, 230, - 533, 230, 533, 230, 533, 533, 230, 230, 533, 229, - 4, 230, 4, 537, 141, 142, 143, 144, 145, 146, - 544, 4, 228, 77, 4, 4, 4, 4, 4, 162, - 4, 230, 230, 166, 167, 168, 169, 230, 4, 4, - 4, 4, 4, 176, 4, 4, 727, 4, 4, 730, - 228, 105, 106, 4, 182, 183, 184, 185, 186, 187, - 188, 189, 4, 4, 4, 4, 730, 121, 4, 4, - 230, 230, 230, 4, 4, 129, 130, 131, 132, 133, - 134, 135, 4, 230, 765, 766, 767, 230, 4, 770, - 4, 228, 4, 774, 227, 4, 4, 228, 228, 227, - 4, 765, 766, 767, 230, 769, 770, 4, 4, 4, - 228, 726, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 4, 730, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 4, 4, 228, 228, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 228, 4, 77, 4, 4, - 4, 4, 765, 766, 767, 4, 769, 770, 4, 89, - 90, 91, 4, 227, 4, 4, 228, 97, 4, 99, - 4, 230, 4, 4, 230, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 230, 230, 4, 230, 4, - 228, 4, 122, 4, 228, 228, 126, 4, 128, 4, - 228, 4, 227, 7, 5, 7, 136, 7, 7, 7, - 227, 5, 227, 227, 5, 5, 227, 227, 5, 7, - 227, 5, 5, 5, 227, 5, 7, 5, 5, 227, - 227, 7, 7, 7, 7, 5, 7, 5, 7, 5, - 7, 5, 5, 5, 227, 227, 227, 7, 227, 227, - 227, 7, 7, 192, 7, 7, 227, 7, 7, 227, - 7, 7, 227, 227, 227, 227, 7, 197, 198, 227, - 227, 227, 227, 227, 227, 7, 7, 7, 129, 227, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 3, 227, 6, 3, 6, 227, 3, 6, - 6, 3, 6, 3, 227, 6, 3, 6, 6, 3, - 6, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 3, 228, 4, 4, 4, - 3, 230, 6, 3, 6, 4, 228, 8, 6, 4, - 4, 4, 228, 230, 228, 228, 228, 228, 228, 4, - 1041, 230, 228, 1044, 4, 4, 1047, 4, 4, 1050, - 1041, 4, 1047, 1041, 1047, 1041, 4, 1041, 228, 1050, - 1044, 1062, 1050, 1047, 1065, 4, 1050, 1068, 228, 4, - 1041, 1062, 230, 228, 1062, 228, 1041, 1041, 1062, 1050, - 1041, 1065, 4, 1084, 1044, 1050, 1050, 1047, 1089, 1050, - 1050, 1062, 228, 228, 1065, 228, 1097, 1062, 1099, 228, - 1084, 1062, 1062, 4, 228, 1089, 228, 1041, 1109, 1050, - 228, 4, 1113, 1097, 1041, 1099, 1050, 1118, 1041, 4, - 1121, 1044, 1106, 1050, 1047, 1109, 228, 1050, 1062, 1121, - 4, 1041, 1041, 228, 1118, 1062, 1041, 1121, 4, 1062, - 1050, 1050, 1065, 1041, 1041, 1050, 1041, 1118, 1041, 1109, - 1121, 1041, 1050, 1050, 1041, 1050, 6, 1050, 1041, 1041, - 1050, 1084, 1041, 1050, 1041, 3, 1089, 1050, 1050, 230, - 1041, 1050, 1041, 1050, 1097, 1041, 1099, 1118, 1041, 1050, - 1121, 1050, 1041, 1106, 1050, 1041, 1109, 1050, 1041, 227, - 1041, 1050, 1041, 1041, 1050, 1118, 1041, 1050, 1121, 1050, - 8, 1050, 1050, 8, 4, 1050, 1050, 8, 3, 8, - 7, 230, 4, 4, 227, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 4, 4, - 4, 4, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 5, 77, 78, 4, 4, 4, 170, - 3, 227, 7, 230, 5, 227, 89, 90, 91, 227, - 227, 227, 7, 227, 227, 227, 227, 6, 4, 227, - 4, 4, 105, 106, 1118, 108, 109, 1121, 111, 112, - 113, 114, 227, 227, 230, 228, 227, 227, 4, 122, - 227, 227, 230, 126, 227, 4, 228, 228, 227, 227, - 1301, 4, 4, 136, 227, 730, 514, 227, 1309, 712, - 1301, 727, 1040, 1301, 758, 521, 1060, 1301, 1309, 810, - 1053, 1309, 1323, 1035, 1089, 1309, 1056, 1262, 1068, 1330, - 1301, 574, 1070, 1043, 1077, 1041, 1301, 1301, 1309, 1323, - 1301, 1301, 1301, 1052, 1309, 533, 1330, 77, 1309, 1309, - 1046, 1044, 565, 1047, 1049, 1118, 1120, 571, 537, 544, - 1301, 1123, 1363, 1121, 197, 198, 1067, 1301, 1065, 1309, - 1330, 555, 784, 1063, 1301, 1309, 1084, 1101, 1301, 1363, - 1363, 1099, 1309, 1402, 1430, 1106, 1309, 770, 729, 584, - 1110, 1301, 1301, 1097, 227, 1408, 1301, 1330, -1, 1400, - 1323, 588, 1381, 1301, 1301, -1, 1301, 1330, 1301, -1, - 1113, 1301, -1, -1, 1301, -1, 1400, -1, 1301, 1301, - -1, -1, 1301, -1, 1301, -1, -1, -1, -1, 1430, - 1301, -1, 1301, -1, -1, 1301, -1, -1, 1301, -1, - 1363, -1, 1301, -1, -1, 1301, 1430, -1, 1301, -1, - 1301, -1, 1301, 1301, -1, -1, 1301, 1301, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1400, -1, -1, + 71, 72, 73, 74, 75, 76, 771, 78, 79, 80, + 81, 75, 73, 771, 73, 73, 16, 771, 73, 74, + 75, 76, 79, 769, 736, 79, 763, 72, 73, 74, + 75, 76, 1055, 78, 79, 1055, 81, 78, 79, 1055, + 1055, 1055, 132, 5, 0, 7, 73, 9, 73, 24, + 138, 139, 1405, 105, 106, 679, 1405, 638, 72, 73, + 74, 75, 76, 7, 78, 79, 73, 81, 692, 693, + 694, 695, 73, 16, 17, 18, 19, 20, 193, 194, + 195, 196, 1435, 212, 3, 73, 1435, 6, 3, 713, + 3, 6, 73, 25, 26, 8, 204, 7, 227, 207, + 208, 209, 210, 73, 73, 157, 158, 159, 24, 73, + 73, 7, 3, 29, 73, 230, 73, 8, 105, 106, + 73, 7, 73, 7, 3, 7, 73, 7, 73, 8, + 105, 106, 73, 73, 73, 716, 3, 227, 73, 227, + 73, 8, 3, 7, 73, 73, 73, 8, 73, 227, + 73, 73, 73, 3, 74, 75, 73, 10, 8, 3, + 74, 75, 105, 106, 8, 3, 3, 7, 11, 12, + 8, 8, 15, 105, 106, 227, 7, 7, 21, 22, + 23, 141, 142, 143, 144, 145, 146, 13, 14, 105, + 106, 178, 179, 180, 3, 3, 171, 172, 173, 8, + 8, 132, 133, 7, 135, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 151, 152, 153, 154, 7, + 227, 76, 174, 175, 24, 88, 89, 90, 91, 148, + 149, 150, 227, 96, 44, 45, 46, 3, 3, 3, + 6, 6, 105, 106, 8, 227, 228, 229, 230, 112, + 113, 114, 115, 116, 117, 118, 3, 3, 121, 138, + 139, 8, 8, 1306, 227, 128, 1306, 6, 3, 3, + 1306, 1306, 1306, 8, 137, 227, 3, 140, 78, 6, + 80, 81, 4, 3, 147, 85, 86, 87, 8, 3, + 8, 227, 155, 156, 8, 105, 106, 160, 161, 39, + 40, 41, 3, 3, 1061, 105, 106, 8, 8, 3, + 8, 1043, 190, 191, 177, 105, 106, 1102, 181, 1104, + 3, 3, 3, 1089, 1102, 8, 1104, 8, 1102, 4, + 1104, 163, 164, 165, 197, 198, 199, 200, 201, 202, + 3, 3, 3, 8, 3, 8, 8, 8, 211, 8, + 3, 8, 162, 4, 4, 8, 166, 167, 168, 169, + 3, 8, 3, 3, 227, 8, 176, 8, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 119, 120, 4, 42, 43, 44, 45, + 46, 47, 182, 183, 184, 185, 186, 187, 188, 189, + 3, 78, 3, 3, 3, 8, 4, 8, 8, 8, + 48, 49, 50, 51, 52, 53, 4, 227, 3, 3, + 440, 441, 78, 8, 4, 516, 4, 227, 105, 106, + 4, 4, 523, 4, 4, 4, 4, 227, 4, 77, + 78, 4, 4, 4, 535, 4, 4, 4, 539, 4, + 92, 93, 94, 95, 535, 546, 535, 535, 523, 4, + 535, 4, 546, 4, 539, 4, 557, 105, 106, 4, + 535, 546, 4, 4, 539, 4, 567, 4, 4, 4, + 4, 546, 557, 574, 4, 123, 124, 125, 535, 523, + 535, 4, 557, 4, 227, 4, 587, 574, 4, 4, + 574, 535, 567, 4, 4, 539, 567, 4, 535, 574, + 77, 4, 546, 574, 535, 4, 4, 4, 4, 4, + 4, 4, 587, 557, 4, 4, 203, 535, 205, 206, + 4, 98, 4, 567, 535, 4, 4, 4, 105, 106, + 574, 4, 228, 228, 228, 535, 535, 4, 228, 228, + 227, 535, 535, 587, 228, 122, 535, 228, 535, 126, + 127, 228, 535, 229, 535, 4, 230, 77, 535, 229, + 535, 227, 230, 228, 535, 535, 535, 229, 4, 228, + 535, 4, 535, 228, 228, 4, 535, 535, 535, 227, + 535, 230, 535, 535, 535, 105, 106, 230, 535, 539, + 230, 230, 229, 4, 77, 539, 546, 230, 4, 4, + 228, 121, 546, 4, 4, 4, 4, 4, 230, 129, + 130, 131, 132, 133, 134, 135, 230, 100, 101, 102, + 103, 104, 105, 106, 230, 4, 4, 4, 4, 4, + 731, 4, 4, 734, 4, 4, 228, 4, 4, 122, + 4, 4, 4, 126, 127, 4, 4, 4, 230, 4, + 227, 4, 4, 4, 4, 230, 230, 4, 4, 734, + 230, 78, 79, 80, 81, 82, 83, 84, 769, 770, + 771, 230, 228, 774, 228, 4, 228, 778, 4, 4, + 230, 4, 228, 4, 228, 4, 4, 230, 105, 106, + 734, 4, 4, 4, 769, 770, 771, 228, 773, 774, + 730, 228, 4, 4, 121, 4, 4, 227, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 4, 4, 228, 769, 770, 771, 4, 773, + 774, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 227, 4, 4, 4, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 230, 230, + 77, 230, 4, 4, 4, 230, 4, 228, 4, 228, + 228, 4, 89, 90, 91, 4, 4, 228, 4, 227, + 97, 227, 99, 7, 7, 7, 7, 7, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 5, 227, + 227, 5, 5, 5, 227, 122, 227, 5, 7, 126, + 227, 128, 227, 5, 5, 5, 3, 5, 7, 136, + 5, 5, 129, 227, 7, 7, 7, 7, 5, 7, + 5, 7, 227, 7, 5, 5, 5, 227, 227, 227, + 227, 7, 227, 227, 227, 227, 227, 227, 192, 5, + 7, 762, 7, 227, 7, 7, 227, 7, 7, 227, + 7, 7, 227, 7, 7, 7, 227, 227, 7, 4, + 4, 227, 4, 227, 4, 4, 4, 4, 227, 227, + 197, 198, 4, 4, 4, 4, 4, 227, 3, 6, + 6, 3, 6, 6, 3, 6, 3, 228, 6, 3, + 6, 6, 3, 6, 4, 4, 4, 4, 4, 4, + 227, 4, 4, 4, 4, 4, 4, 4, 4, 3, + 230, 4, 4, 4, 3, 228, 6, 3, 6, 4, + 230, 8, 6, 4, 4, 4, 228, 228, 228, 228, + 228, 228, 4, 228, 230, 1046, 4, 4, 1049, 4, + 4, 1052, 4, 4, 1055, 1046, 228, 1046, 1046, 228, + 228, 1046, 228, 228, 1055, 1052, 1067, 1055, 1052, 1070, + 1055, 1046, 1073, 228, 1049, 4, 1067, 1052, 1049, 1067, + 1055, 1052, 1067, 4, 1055, 1070, 230, 4, 1089, 1046, + 4, 1046, 1067, 1094, 228, 1070, 1067, 228, 1055, 4, + 1055, 1102, 1046, 1104, 4, 1049, 4, 4, 1052, 1046, + 1067, 1055, 1067, 1114, 1089, 1046, 228, 1118, 1055, 1094, + 228, 230, 1123, 1067, 1055, 1126, 1070, 1102, 1046, 1104, + 1067, 228, 1126, 228, 230, 1046, 1111, 1055, 1123, 1114, + 6, 1126, 228, 1114, 1055, 1089, 1046, 1046, 1123, 1067, + 1094, 1126, 1046, 1046, 3, 1055, 1055, 1046, 1102, 1046, + 1104, 1055, 1055, 1046, 227, 1046, 1055, 1111, 1055, 1046, + 1114, 1046, 1055, 227, 1055, 1046, 1046, 1046, 1055, 1123, + 1055, 1046, 1126, 1046, 1055, 1055, 1055, 1046, 1046, 1046, + 1055, 1046, 1055, 1046, 1046, 1046, 1055, 1055, 1055, 1046, + 1055, 227, 1055, 1055, 1055, 1055, 230, 8, 1055, 8, + 4, 1055, 8, 3, 6, 8, 7, 227, 4, 4, + 4, 4, 4, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 230, 5, 4, 4, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 4, 77, 78, 227, 227, 4, 7, 170, 227, + 227, 227, 227, 227, 89, 90, 91, 227, 227, 5, + 7, 227, 3, 1123, 227, 4, 1126, 4, 228, 1123, + 105, 106, 1126, 108, 109, 227, 111, 112, 113, 114, + 227, 227, 227, 227, 4, 4, 4, 122, 230, 4, + 228, 126, 228, 227, 227, 1306, 4, 227, 227, 731, + 716, 136, 516, 1314, 523, 1306, 734, 1045, 1306, 815, + 1065, 1306, 1040, 1314, 1061, 1058, 1314, 1328, 1094, 1314, + 1082, 1306, 1075, 1073, 1335, 1306, 577, 1267, 535, 1314, + 1048, 1046, 1057, 1314, 1306, 77, 1049, 1051, 1054, 1306, + 1052, 1306, 567, 1328, 574, 539, 1125, 1314, 1072, 1314, + 1335, 1123, 1306, 546, 1335, 1128, 1314, 1368, 1126, 1306, + 1314, 1070, 197, 198, 788, 1306, 1068, 1314, 557, 1106, + 1089, 1104, 1368, 1102, 1328, 1407, 1435, 1111, 1306, 774, + 733, 1335, 587, 1368, 1115, 1306, 1314, 591, 1413, 1335, + -1, 1118, 227, 1386, 1405, -1, 1306, 1306, -1, -1, + -1, -1, 1306, 1306, -1, -1, -1, 1306, -1, 1306, + -1, -1, -1, 1306, 1368, 1306, -1, -1, -1, 1306, + 1405, 1306, -1, -1, 1435, 1306, 1306, 1306, -1, -1, + -1, 1306, -1, 1306, -1, -1, -1, 1306, 1306, 1306, + -1, 1306, -1, 1306, 1306, 1306, 1306, -1, -1, 1306, + 1435, 1405, 1306, -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, 1430 + -1, 1435 }; const short @@ -6118,10 +6139,10 @@ namespace isc { namespace dhcp { 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 0, 5, 7, 9, 227, 228, 229, 230, 247, 248, 249, 254, 7, 263, 7, 268, 7, 323, 7, 437, - 7, 515, 7, 532, 7, 549, 7, 466, 7, 472, - 7, 496, 7, 413, 7, 654, 7, 673, 255, 250, - 264, 269, 324, 438, 516, 533, 550, 467, 473, 497, - 414, 655, 674, 247, 256, 257, 227, 252, 253, 10, + 7, 517, 7, 534, 7, 551, 7, 466, 7, 472, + 7, 496, 7, 413, 7, 656, 7, 675, 255, 250, + 264, 269, 324, 438, 518, 535, 552, 467, 473, 497, + 414, 657, 676, 247, 256, 257, 227, 252, 253, 10, 265, 267, 11, 12, 15, 21, 22, 23, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, @@ -6134,129 +6155,130 @@ namespace isc { namespace dhcp { 289, 290, 291, 294, 296, 298, 299, 300, 303, 304, 306, 308, 309, 310, 311, 313, 314, 316, 318, 319, 320, 321, 333, 335, 337, 378, 386, 392, 398, 400, - 407, 421, 431, 451, 452, 453, 456, 464, 490, 522, - 524, 543, 573, 587, 599, 600, 602, 642, 652, 671, - 680, 704, 16, 17, 18, 19, 20, 262, 325, 326, - 327, 329, 330, 331, 332, 522, 524, 97, 99, 107, + 407, 421, 431, 451, 452, 453, 456, 464, 490, 524, + 526, 545, 575, 589, 601, 602, 604, 644, 654, 673, + 682, 706, 16, 17, 18, 19, 20, 262, 325, 326, + 327, 329, 330, 331, 332, 524, 526, 97, 99, 107, 108, 109, 110, 111, 122, 126, 136, 262, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 288, 289, 290, 291, 294, 296, 298, 299, 300, 303, 304, 306, 308, 314, 316, 439, 440, 441, 443, - 445, 447, 449, 451, 452, 453, 454, 455, 490, 509, - 522, 524, 526, 543, 570, 98, 127, 262, 447, 449, - 490, 517, 518, 519, 521, 522, 524, 100, 101, 102, - 103, 104, 262, 447, 449, 490, 521, 522, 524, 534, - 535, 536, 538, 539, 541, 542, 121, 129, 130, 131, - 132, 133, 134, 135, 262, 490, 522, 524, 551, 552, - 553, 554, 556, 558, 560, 562, 564, 566, 568, 464, + 445, 447, 449, 451, 452, 453, 454, 455, 490, 511, + 524, 526, 528, 545, 572, 98, 127, 262, 447, 449, + 490, 519, 520, 521, 523, 524, 526, 100, 101, 102, + 103, 104, 262, 447, 449, 490, 523, 524, 526, 536, + 537, 538, 540, 541, 543, 544, 121, 129, 130, 131, + 132, 133, 134, 135, 262, 490, 524, 526, 553, 554, + 555, 556, 558, 560, 562, 564, 566, 568, 570, 464, 24, 78, 80, 81, 85, 86, 87, 262, 354, 474, 475, 476, 477, 478, 479, 480, 482, 484, 486, 487, - 489, 522, 524, 79, 82, 83, 84, 262, 354, 478, - 484, 498, 499, 500, 501, 502, 504, 505, 506, 507, - 508, 522, 524, 138, 139, 262, 415, 416, 417, 419, - 182, 183, 184, 185, 186, 187, 188, 189, 262, 522, - 524, 656, 657, 658, 659, 661, 662, 664, 665, 666, - 669, 13, 14, 675, 676, 677, 679, 6, 3, 4, - 8, 3, 266, 3, 8, 273, 672, 322, 334, 336, - 338, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 312, 4, 4, 4, 4, - 4, 292, 295, 297, 4, 4, 4, 4, 432, 465, - 491, 4, 315, 317, 301, 457, 523, 525, 4, 4, - 4, 387, 399, 393, 379, 574, 544, 408, 422, 588, - 4, 401, 601, 603, 643, 653, 305, 307, 4, 4, - 4, 681, 705, 4, 3, 8, 328, 4, 4, 4, - 4, 3, 8, 510, 527, 442, 444, 446, 4, 4, - 450, 448, 571, 3, 8, 520, 4, 3, 8, 537, - 4, 540, 4, 4, 3, 8, 569, 555, 557, 559, - 561, 563, 565, 567, 8, 3, 8, 481, 355, 4, - 485, 483, 488, 4, 8, 3, 503, 4, 4, 4, - 8, 3, 418, 420, 3, 8, 4, 660, 4, 663, - 4, 4, 667, 670, 3, 8, 678, 4, 3, 8, - 247, 247, 227, 4, 4, 4, 4, 4, 4, 4, - 228, 228, 228, 228, 228, 228, 228, 228, 230, 229, - 229, 229, 228, 228, 4, 228, 228, 230, 230, 230, - 4, 4, 4, 230, 230, 229, 230, 4, 4, 4, - 228, 4, 4, 4, 4, 4, 4, 230, 230, 230, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 228, - 4, 4, 4, 4, 4, 4, 4, 230, 230, 230, - 4, 4, 271, 4, 230, 230, 228, 228, 326, 4, - 4, 4, 4, 4, 228, 230, 4, 4, 4, 440, - 4, 228, 518, 4, 228, 4, 228, 228, 535, 4, - 4, 4, 4, 4, 4, 4, 4, 553, 4, 4, - 228, 4, 4, 4, 230, 476, 4, 230, 230, 230, - 500, 4, 4, 416, 230, 4, 228, 4, 228, 228, - 4, 4, 657, 4, 228, 676, 4, 7, 227, 7, - 7, 7, 7, 5, 227, 193, 194, 195, 196, 230, - 293, 227, 227, 5, 5, 5, 227, 227, 92, 93, - 94, 95, 302, 5, 249, 251, 227, 5, 5, 5, - 7, 5, 5, 5, 7, 7, 7, 7, 5, 7, - 7, 227, 227, 5, 7, 5, 258, 5, 5, 227, - 227, 227, 258, 227, 7, 227, 227, 227, 258, 258, - 258, 258, 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 251, 227, 227, 190, 191, 668, 192, - 5, 247, 270, 675, 325, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 42, 43, 44, 45, 46, 47, 262, 343, 344, 345, - 347, 349, 351, 353, 354, 356, 357, 358, 359, 360, - 361, 362, 363, 364, 367, 368, 369, 370, 372, 374, - 376, 343, 7, 339, 340, 341, 7, 433, 434, 435, - 7, 468, 469, 470, 7, 492, 493, 494, 7, 458, - 459, 460, 132, 227, 388, 389, 390, 391, 256, 133, - 135, 390, 394, 395, 396, 397, 119, 120, 380, 381, - 382, 384, 7, 575, 576, 7, 545, 546, 547, 7, - 409, 410, 411, 141, 142, 143, 144, 145, 146, 423, - 424, 425, 426, 427, 428, 429, 430, 24, 151, 152, - 153, 154, 262, 356, 522, 524, 589, 590, 591, 594, - 595, 597, 598, 157, 158, 159, 262, 402, 403, 404, - 405, 406, 522, 524, 162, 166, 167, 168, 169, 176, - 262, 370, 372, 374, 522, 524, 608, 609, 610, 613, - 615, 617, 618, 619, 7, 604, 605, 606, 178, 179, - 180, 227, 522, 524, 644, 645, 646, 647, 649, 650, - 656, 7, 682, 683, 212, 262, 706, 707, 708, 259, - 7, 511, 512, 513, 7, 528, 529, 530, 554, 572, - 339, 8, 8, 8, 346, 348, 350, 352, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 365, 4, - 4, 371, 373, 375, 377, 3, 8, 8, 342, 6, - 3, 436, 6, 3, 471, 6, 3, 495, 6, 3, - 461, 6, 3, 3, 6, 6, 3, 6, 383, 385, - 3, 8, 577, 3, 6, 548, 6, 3, 412, 6, - 3, 4, 4, 4, 4, 4, 4, 3, 8, 592, - 596, 4, 4, 4, 3, 8, 4, 4, 4, 3, - 8, 611, 614, 616, 4, 620, 4, 3, 8, 607, - 6, 3, 4, 648, 4, 651, 3, 8, 8, 684, - 3, 6, 4, 3, 8, 227, 260, 261, 514, 6, - 3, 531, 6, 3, 8, 6, 4, 4, 4, 4, - 228, 230, 228, 230, 228, 228, 228, 228, 228, 228, - 4, 230, 228, 4, 4, 4, 4, 344, 343, 341, - 439, 435, 474, 470, 498, 494, 262, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 288, 289, 290, 291, 294, 296, 298, 299, 300, 303, - 304, 306, 308, 314, 316, 354, 431, 443, 445, 447, - 449, 451, 452, 453, 455, 462, 463, 490, 522, 524, - 570, 460, 389, 395, 4, 4, 381, 123, 124, 125, - 262, 274, 275, 276, 277, 278, 279, 354, 490, 522, - 524, 578, 579, 580, 581, 582, 584, 586, 576, 551, - 547, 415, 411, 228, 228, 228, 228, 228, 228, 424, - 4, 4, 228, 228, 228, 590, 230, 228, 228, 403, - 4, 4, 4, 228, 4, 230, 609, 608, 606, 230, - 4, 228, 4, 645, 203, 205, 206, 262, 354, 522, - 524, 685, 686, 687, 688, 690, 683, 230, 707, 6, - 3, 517, 513, 534, 530, 227, 227, 227, 227, 39, - 40, 41, 366, 227, 227, 227, 227, 8, 8, 8, - 8, 3, 8, 227, 227, 583, 585, 4, 8, 3, - 8, 8, 148, 149, 150, 593, 227, 163, 164, 165, - 612, 227, 227, 7, 8, 227, 247, 691, 4, 689, - 3, 8, 227, 8, 8, 463, 4, 4, 230, 580, - 24, 171, 172, 173, 262, 522, 524, 621, 622, 623, - 626, 628, 630, 4, 228, 4, 686, 227, 227, 624, - 627, 629, 631, 3, 8, 5, 227, 4, 4, 4, - 4, 622, 7, 692, 693, 170, 625, 227, 227, 5, - 694, 3, 6, 7, 632, 633, 634, 204, 207, 208, - 209, 210, 695, 696, 697, 699, 700, 701, 702, 693, - 635, 6, 3, 698, 4, 4, 4, 703, 3, 8, - 174, 175, 262, 347, 349, 522, 524, 636, 637, 638, - 640, 634, 4, 230, 228, 228, 4, 696, 639, 641, - 3, 8, 227, 227, 4, 4, 637, 227, 227 + 489, 524, 526, 79, 82, 83, 84, 121, 262, 354, + 478, 484, 498, 499, 500, 501, 502, 504, 505, 506, + 507, 508, 509, 524, 526, 138, 139, 262, 415, 416, + 417, 419, 182, 183, 184, 185, 186, 187, 188, 189, + 262, 524, 526, 658, 659, 660, 661, 663, 664, 666, + 667, 668, 671, 13, 14, 677, 678, 679, 681, 6, + 3, 4, 8, 3, 266, 3, 8, 273, 674, 322, + 334, 336, 338, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 312, 4, 4, + 4, 4, 4, 292, 295, 297, 4, 4, 4, 4, + 432, 465, 491, 4, 315, 317, 301, 457, 525, 527, + 4, 4, 4, 387, 399, 393, 379, 576, 546, 408, + 422, 590, 4, 401, 603, 605, 645, 655, 305, 307, + 4, 4, 4, 683, 707, 4, 3, 8, 328, 4, + 4, 4, 4, 3, 8, 512, 529, 442, 444, 446, + 4, 4, 450, 448, 573, 3, 8, 522, 4, 3, + 8, 539, 4, 542, 4, 4, 3, 8, 571, 557, + 559, 561, 563, 565, 567, 569, 8, 3, 8, 481, + 355, 4, 485, 483, 488, 4, 8, 3, 503, 4, + 4, 4, 510, 8, 3, 418, 420, 3, 8, 4, + 662, 4, 665, 4, 4, 669, 672, 3, 8, 680, + 4, 3, 8, 247, 247, 227, 4, 4, 4, 4, + 4, 4, 4, 228, 228, 228, 228, 228, 228, 228, + 228, 230, 229, 229, 229, 228, 228, 4, 228, 228, + 230, 230, 230, 4, 4, 4, 230, 230, 229, 230, + 4, 4, 4, 228, 4, 4, 4, 4, 4, 4, + 230, 230, 230, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 228, 4, 4, 4, 4, 4, 4, 4, + 230, 230, 230, 4, 4, 271, 4, 230, 230, 228, + 228, 326, 4, 4, 4, 4, 4, 228, 230, 4, + 4, 4, 440, 4, 228, 520, 4, 228, 4, 228, + 228, 537, 4, 4, 4, 4, 4, 4, 4, 4, + 555, 4, 4, 228, 4, 4, 4, 230, 476, 4, + 230, 230, 230, 4, 500, 4, 4, 416, 230, 4, + 228, 4, 228, 228, 4, 4, 659, 4, 228, 678, + 4, 7, 227, 7, 7, 7, 7, 5, 227, 193, + 194, 195, 196, 230, 293, 227, 227, 5, 5, 5, + 227, 227, 92, 93, 94, 95, 302, 5, 249, 251, + 227, 5, 5, 5, 7, 5, 5, 5, 7, 7, + 7, 7, 5, 7, 7, 227, 227, 5, 7, 5, + 258, 5, 5, 227, 227, 227, 258, 227, 7, 227, + 227, 227, 258, 258, 258, 258, 227, 227, 227, 227, + 227, 227, 227, 227, 227, 227, 258, 227, 251, 227, + 227, 190, 191, 670, 192, 5, 247, 270, 677, 325, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 42, 43, 44, 45, 46, + 47, 262, 343, 344, 345, 347, 349, 351, 353, 354, + 356, 357, 358, 359, 360, 361, 362, 363, 364, 367, + 368, 369, 370, 372, 374, 376, 343, 7, 339, 340, + 341, 7, 433, 434, 435, 7, 468, 469, 470, 7, + 492, 493, 494, 7, 458, 459, 460, 132, 227, 388, + 389, 390, 391, 256, 133, 135, 390, 394, 395, 396, + 397, 119, 120, 380, 381, 382, 384, 7, 577, 578, + 7, 547, 548, 549, 7, 409, 410, 411, 141, 142, + 143, 144, 145, 146, 423, 424, 425, 426, 427, 428, + 429, 430, 24, 151, 152, 153, 154, 262, 356, 524, + 526, 591, 592, 593, 596, 597, 599, 600, 157, 158, + 159, 262, 402, 403, 404, 405, 406, 524, 526, 162, + 166, 167, 168, 169, 176, 262, 370, 372, 374, 524, + 526, 610, 611, 612, 615, 617, 619, 620, 621, 7, + 606, 607, 608, 178, 179, 180, 227, 524, 526, 646, + 647, 648, 649, 651, 652, 658, 7, 684, 685, 212, + 262, 708, 709, 710, 259, 7, 513, 514, 515, 7, + 530, 531, 532, 556, 574, 339, 8, 8, 8, 346, + 348, 350, 352, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 365, 4, 4, 371, 373, 375, 377, + 3, 8, 8, 342, 6, 3, 436, 6, 3, 471, + 6, 3, 495, 6, 3, 461, 6, 3, 3, 6, + 6, 3, 6, 383, 385, 3, 8, 579, 3, 6, + 550, 6, 3, 412, 6, 3, 4, 4, 4, 4, + 4, 4, 3, 8, 594, 598, 4, 4, 4, 3, + 8, 4, 4, 4, 3, 8, 613, 616, 618, 4, + 622, 4, 3, 8, 609, 6, 3, 4, 650, 4, + 653, 3, 8, 8, 686, 3, 6, 4, 3, 8, + 227, 260, 261, 516, 6, 3, 533, 6, 3, 8, + 6, 4, 4, 4, 4, 228, 230, 228, 230, 228, + 228, 228, 228, 228, 228, 4, 230, 228, 4, 4, + 4, 4, 344, 343, 341, 439, 435, 474, 470, 498, + 494, 262, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 288, 289, 290, 291, 294, + 296, 298, 299, 300, 303, 304, 306, 308, 314, 316, + 354, 431, 443, 445, 447, 449, 451, 452, 453, 455, + 462, 463, 490, 524, 526, 572, 460, 389, 395, 4, + 4, 381, 123, 124, 125, 262, 274, 275, 276, 277, + 278, 279, 354, 490, 524, 526, 580, 581, 582, 583, + 584, 586, 588, 578, 553, 549, 415, 411, 228, 228, + 228, 228, 228, 228, 424, 4, 4, 228, 228, 228, + 592, 230, 228, 228, 403, 4, 4, 4, 228, 4, + 230, 611, 610, 608, 230, 4, 228, 4, 647, 203, + 205, 206, 262, 354, 524, 526, 687, 688, 689, 690, + 692, 685, 230, 709, 6, 3, 519, 515, 536, 532, + 227, 227, 227, 227, 39, 40, 41, 366, 227, 227, + 227, 227, 8, 8, 8, 8, 3, 8, 227, 227, + 585, 587, 4, 8, 3, 8, 8, 148, 149, 150, + 595, 227, 163, 164, 165, 614, 227, 227, 7, 8, + 227, 247, 693, 4, 691, 3, 8, 227, 8, 8, + 463, 4, 4, 230, 582, 24, 171, 172, 173, 262, + 524, 526, 623, 624, 625, 628, 630, 632, 4, 228, + 4, 688, 227, 227, 626, 629, 631, 633, 3, 8, + 5, 227, 4, 4, 4, 4, 624, 7, 694, 695, + 170, 627, 227, 227, 5, 696, 3, 6, 7, 634, + 635, 636, 204, 207, 208, 209, 210, 697, 698, 699, + 701, 702, 703, 704, 695, 637, 6, 3, 700, 4, + 4, 4, 705, 3, 8, 174, 175, 262, 347, 349, + 524, 526, 638, 639, 640, 642, 636, 4, 230, 228, + 228, 4, 698, 641, 643, 3, 8, 227, 227, 4, + 4, 639, 227, 227 }; const short @@ -6319,43 +6341,43 @@ namespace isc { namespace dhcp { 482, 485, 484, 486, 488, 487, 489, 491, 490, 492, 492, 493, 493, 493, 495, 494, 497, 496, 498, 498, 499, 499, 499, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 500, 501, 503, 502, 504, 505, 506, 507, - 508, 510, 509, 511, 511, 512, 512, 512, 514, 513, - 516, 515, 517, 517, 517, 518, 518, 518, 518, 518, - 518, 518, 518, 520, 519, 521, 523, 522, 525, 524, - 527, 526, 528, 528, 529, 529, 529, 531, 530, 533, - 532, 534, 534, 534, 535, 535, 535, 535, 535, 535, - 535, 535, 535, 535, 535, 535, 537, 536, 538, 540, - 539, 541, 542, 544, 543, 545, 545, 546, 546, 546, - 548, 547, 550, 549, 551, 551, 552, 552, 552, 553, - 553, 553, 553, 553, 553, 553, 553, 553, 553, 553, - 553, 555, 554, 557, 556, 559, 558, 561, 560, 563, - 562, 565, 564, 567, 566, 569, 568, 571, 570, 572, - 574, 573, 575, 575, 575, 577, 576, 578, 578, 579, - 579, 579, 580, 580, 580, 580, 580, 580, 580, 580, - 580, 580, 580, 580, 580, 580, 581, 583, 582, 585, - 584, 586, 588, 587, 589, 589, 589, 590, 590, 590, - 590, 590, 590, 590, 590, 590, 592, 591, 593, 593, - 593, 594, 596, 595, 597, 598, 599, 601, 600, 603, - 602, 604, 604, 605, 605, 605, 607, 606, 608, 608, - 608, 609, 609, 609, 609, 609, 609, 609, 609, 609, - 609, 609, 609, 611, 610, 612, 612, 612, 614, 613, - 616, 615, 617, 618, 620, 619, 621, 621, 621, 622, - 622, 622, 622, 622, 622, 622, 624, 623, 625, 627, - 626, 629, 628, 631, 630, 632, 632, 633, 633, 633, - 635, 634, 636, 636, 636, 637, 637, 637, 637, 637, - 637, 637, 639, 638, 641, 640, 643, 642, 644, 644, - 644, 645, 645, 645, 645, 645, 645, 646, 648, 647, - 649, 651, 650, 653, 652, 655, 654, 656, 656, 656, - 657, 657, 657, 657, 657, 657, 657, 657, 657, 657, - 657, 658, 660, 659, 661, 663, 662, 664, 665, 667, - 666, 668, 668, 670, 669, 672, 671, 674, 673, 675, - 675, 675, 676, 676, 678, 677, 679, 681, 680, 682, - 682, 682, 684, 683, 685, 685, 685, 686, 686, 686, - 686, 686, 686, 686, 687, 689, 688, 691, 690, 692, - 692, 692, 694, 693, 695, 695, 695, 696, 696, 696, - 696, 696, 698, 697, 699, 700, 701, 703, 702, 705, - 704, 706, 706, 706, 707, 707, 708 + 500, 500, 500, 500, 501, 503, 502, 504, 505, 506, + 507, 508, 510, 509, 512, 511, 513, 513, 514, 514, + 514, 516, 515, 518, 517, 519, 519, 519, 520, 520, + 520, 520, 520, 520, 520, 520, 522, 521, 523, 525, + 524, 527, 526, 529, 528, 530, 530, 531, 531, 531, + 533, 532, 535, 534, 536, 536, 536, 537, 537, 537, + 537, 537, 537, 537, 537, 537, 537, 537, 537, 539, + 538, 540, 542, 541, 543, 544, 546, 545, 547, 547, + 548, 548, 548, 550, 549, 552, 551, 553, 553, 554, + 554, 554, 555, 555, 555, 555, 555, 555, 555, 555, + 555, 555, 555, 555, 557, 556, 559, 558, 561, 560, + 563, 562, 565, 564, 567, 566, 569, 568, 571, 570, + 573, 572, 574, 576, 575, 577, 577, 577, 579, 578, + 580, 580, 581, 581, 581, 582, 582, 582, 582, 582, + 582, 582, 582, 582, 582, 582, 582, 582, 582, 583, + 585, 584, 587, 586, 588, 590, 589, 591, 591, 591, + 592, 592, 592, 592, 592, 592, 592, 592, 592, 594, + 593, 595, 595, 595, 596, 598, 597, 599, 600, 601, + 603, 602, 605, 604, 606, 606, 607, 607, 607, 609, + 608, 610, 610, 610, 611, 611, 611, 611, 611, 611, + 611, 611, 611, 611, 611, 611, 613, 612, 614, 614, + 614, 616, 615, 618, 617, 619, 620, 622, 621, 623, + 623, 623, 624, 624, 624, 624, 624, 624, 624, 626, + 625, 627, 629, 628, 631, 630, 633, 632, 634, 634, + 635, 635, 635, 637, 636, 638, 638, 638, 639, 639, + 639, 639, 639, 639, 639, 641, 640, 643, 642, 645, + 644, 646, 646, 646, 647, 647, 647, 647, 647, 647, + 648, 650, 649, 651, 653, 652, 655, 654, 657, 656, + 658, 658, 658, 659, 659, 659, 659, 659, 659, 659, + 659, 659, 659, 659, 660, 662, 661, 663, 665, 664, + 666, 667, 669, 668, 670, 670, 672, 671, 674, 673, + 676, 675, 677, 677, 677, 678, 678, 680, 679, 681, + 683, 682, 684, 684, 684, 686, 685, 687, 687, 687, + 688, 688, 688, 688, 688, 688, 688, 689, 691, 690, + 693, 692, 694, 694, 694, 696, 695, 697, 697, 697, + 698, 698, 698, 698, 698, 700, 699, 701, 702, 703, + 705, 704, 707, 706, 708, 708, 708, 709, 709, 710 }; const signed char @@ -6418,43 +6440,43 @@ namespace isc { namespace dhcp { 4, 0, 4, 1, 0, 4, 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 1, 1, 3, 3, - 3, 0, 6, 0, 1, 1, 3, 2, 0, 4, - 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 3, 0, 4, 0, 4, - 0, 6, 0, 1, 1, 3, 2, 0, 4, 0, - 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 1, 1, 3, + 3, 3, 0, 4, 0, 6, 0, 1, 1, 3, + 2, 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 3, 0, - 4, 3, 3, 0, 6, 0, 1, 1, 3, 2, - 0, 4, 0, 4, 0, 1, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 4, 0, 4, 0, 4, 0, 4, 0, - 4, 0, 4, 0, 4, 0, 4, 0, 6, 1, - 0, 6, 1, 3, 2, 0, 4, 0, 1, 1, - 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 4, 0, - 4, 3, 0, 6, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, - 1, 3, 0, 4, 3, 3, 3, 0, 6, 0, - 6, 0, 1, 1, 3, 2, 0, 4, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 1, 1, 1, 0, 4, - 0, 4, 3, 3, 0, 6, 1, 3, 2, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 1, 0, 4, 0, 4, 0, 6, 0, 1, 1, 3, 2, - 0, 4, 1, 3, 2, 1, 1, 1, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 6, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 3, 0, 4, - 3, 0, 4, 0, 6, 0, 4, 1, 3, 2, + 0, 4, 0, 4, 1, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 3, 0, 4, 3, 3, 0, 6, 0, 1, + 1, 3, 2, 0, 4, 0, 4, 0, 1, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 6, 1, 0, 6, 1, 3, 2, 0, 4, + 0, 1, 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 0, 4, 3, 0, 4, 3, 3, 0, - 4, 1, 1, 0, 4, 0, 6, 0, 4, 1, - 3, 2, 1, 1, 0, 6, 3, 0, 6, 1, - 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, - 1, 1, 1, 1, 3, 0, 4, 0, 6, 1, - 3, 2, 0, 4, 1, 3, 2, 1, 1, 1, - 1, 1, 0, 4, 3, 3, 3, 0, 4, 0, - 6, 1, 3, 2, 1, 1, 3 + 0, 4, 0, 4, 3, 0, 6, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 1, 1, 1, 3, 0, 4, 3, 3, 3, + 0, 6, 0, 6, 0, 1, 1, 3, 2, 0, + 4, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, + 1, 0, 4, 0, 4, 3, 3, 0, 6, 1, + 3, 2, 1, 1, 1, 1, 1, 1, 1, 0, + 4, 1, 0, 4, 0, 4, 0, 6, 0, 1, + 1, 3, 2, 0, 4, 1, 3, 2, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 0, 4, 0, + 6, 1, 3, 2, 1, 1, 1, 1, 1, 1, + 3, 0, 4, 3, 0, 4, 0, 6, 0, 4, + 1, 3, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 0, 4, 3, 0, 4, + 3, 3, 0, 4, 1, 1, 0, 4, 0, 6, + 0, 4, 1, 3, 2, 1, 1, 0, 6, 3, + 0, 6, 1, 3, 2, 0, 4, 1, 3, 2, + 1, 1, 1, 1, 1, 1, 1, 3, 0, 4, + 0, 6, 1, 3, 2, 0, 4, 1, 3, 2, + 1, 1, 1, 1, 1, 0, 4, 3, 3, 3, + 0, 4, 0, 6, 1, 3, 2, 1, 1, 3 }; @@ -6611,52 +6633,53 @@ namespace isc { namespace dhcp { "option_data_params", "not_empty_option_data_params", "option_data_param", "option_data_name", "option_data_data", "$@82", "option_data_code", "option_data_space", "option_data_csv_format", - "option_data_always_send", "option_data_never_send", "pools_list", - "$@83", "pools_list_content", "not_empty_pools_list", "pool_list_entry", - "$@84", "sub_pool6", "$@85", "pool_params", "pool_param", "pool_entry", - "$@86", "pool_id", "user_context", "$@87", "comment", "$@88", - "pd_pools_list", "$@89", "pd_pools_list_content", - "not_empty_pd_pools_list", "pd_pool_entry", "$@90", "sub_pd_pool", - "$@91", "pd_pool_params", "pd_pool_param", "pd_prefix", "$@92", - "pd_prefix_len", "excluded_prefix", "$@93", "excluded_prefix_len", - "pd_delegated_len", "reservations", "$@94", "reservations_list", - "not_empty_reservations_list", "reservation", "$@95", "sub_reservation", - "$@96", "reservation_params", "not_empty_reservation_params", - "reservation_param", "ip_addresses", "$@97", "prefixes", "$@98", - "excluded_prefixes", "$@99", "duid", "$@100", "hw_address", "$@101", - "hostname", "$@102", "flex_id_value", "$@103", - "reservation_client_classes", "$@104", "relay", "$@105", "relay_map", - "client_classes", "$@106", "client_classes_list", "client_class_entry", - "$@107", "client_class_params", "not_empty_client_class_params", - "client_class_param", "client_class_name", "client_class_test", "$@108", - "client_class_template_test", "$@109", "only_if_required", "server_id", - "$@110", "server_id_params", "server_id_param", "server_id_type", - "$@111", "duid_type", "htype", "identifier", "$@112", "time", - "enterprise_id", "dhcp4o6_port", "control_socket", "$@113", - "control_sockets", "$@114", "control_socket_list", - "not_empty_control_socket_list", "control_socket_entry", "$@115", + "option_data_always_send", "option_data_never_send", + "option_data_client_classes", "$@83", "pools_list", "$@84", + "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@85", + "sub_pool6", "$@86", "pool_params", "pool_param", "pool_entry", "$@87", + "pool_id", "user_context", "$@88", "comment", "$@89", "pd_pools_list", + "$@90", "pd_pools_list_content", "not_empty_pd_pools_list", + "pd_pool_entry", "$@91", "sub_pd_pool", "$@92", "pd_pool_params", + "pd_pool_param", "pd_prefix", "$@93", "pd_prefix_len", "excluded_prefix", + "$@94", "excluded_prefix_len", "pd_delegated_len", "reservations", + "$@95", "reservations_list", "not_empty_reservations_list", + "reservation", "$@96", "sub_reservation", "$@97", "reservation_params", + "not_empty_reservation_params", "reservation_param", "ip_addresses", + "$@98", "prefixes", "$@99", "excluded_prefixes", "$@100", "duid", + "$@101", "hw_address", "$@102", "hostname", "$@103", "flex_id_value", + "$@104", "reservation_client_classes", "$@105", "relay", "$@106", + "relay_map", "client_classes", "$@107", "client_classes_list", + "client_class_entry", "$@108", "client_class_params", + "not_empty_client_class_params", "client_class_param", + "client_class_name", "client_class_test", "$@109", + "client_class_template_test", "$@110", "only_if_required", "server_id", + "$@111", "server_id_params", "server_id_param", "server_id_type", + "$@112", "duid_type", "htype", "identifier", "$@113", "time", + "enterprise_id", "dhcp4o6_port", "control_socket", "$@114", + "control_sockets", "$@115", "control_socket_list", + "not_empty_control_socket_list", "control_socket_entry", "$@116", "control_socket_params", "control_socket_param", "control_socket_type", - "$@116", "control_socket_type_value", "control_socket_name", "$@117", - "control_socket_address", "$@118", "control_socket_port", - "cert_required", "authentication", "$@119", "auth_params", "auth_param", - "auth_type", "$@120", "auth_type_value", "realm", "$@121", "directory", - "$@122", "clients", "$@123", "clients_list", "not_empty_clients_list", - "basic_auth", "$@124", "clients_params", "clients_param", "user_file", - "$@125", "password_file", "$@126", "dhcp_queue_control", "$@127", + "$@117", "control_socket_type_value", "control_socket_name", "$@118", + "control_socket_address", "$@119", "control_socket_port", + "cert_required", "authentication", "$@120", "auth_params", "auth_param", + "auth_type", "$@121", "auth_type_value", "realm", "$@122", "directory", + "$@123", "clients", "$@124", "clients_list", "not_empty_clients_list", + "basic_auth", "$@125", "clients_params", "clients_param", "user_file", + "$@126", "password_file", "$@127", "dhcp_queue_control", "$@128", "queue_control_params", "queue_control_param", "enable_queue", - "queue_type", "$@128", "capacity", "arbitrary_map_entry", "$@129", - "dhcp_ddns", "$@130", "sub_dhcp_ddns", "$@131", "dhcp_ddns_params", - "dhcp_ddns_param", "enable_updates", "server_ip", "$@132", "server_port", - "sender_ip", "$@133", "sender_port", "max_queue_size", "ncr_protocol", - "$@134", "ncr_protocol_value", "ncr_format", "$@135", "config_control", - "$@136", "sub_config_control", "$@137", "config_control_params", - "config_control_param", "config_databases", "$@138", - "config_fetch_wait_time", "loggers", "$@139", "loggers_entries", - "logger_entry", "$@140", "logger_params", "logger_param", "debuglevel", - "severity", "$@141", "output_options_list", "$@142", - "output_options_list_content", "output_entry", "$@143", - "output_params_list", "output_params", "output", "$@144", "flush", - "maxsize", "maxver", "pattern", "$@145", "compatibility", "$@146", + "queue_type", "$@129", "capacity", "arbitrary_map_entry", "$@130", + "dhcp_ddns", "$@131", "sub_dhcp_ddns", "$@132", "dhcp_ddns_params", + "dhcp_ddns_param", "enable_updates", "server_ip", "$@133", "server_port", + "sender_ip", "$@134", "sender_port", "max_queue_size", "ncr_protocol", + "$@135", "ncr_protocol_value", "ncr_format", "$@136", "config_control", + "$@137", "sub_config_control", "$@138", "config_control_params", + "config_control_param", "config_databases", "$@139", + "config_fetch_wait_time", "loggers", "$@140", "loggers_entries", + "logger_entry", "$@141", "logger_params", "logger_param", "debuglevel", + "severity", "$@142", "output_options_list", "$@143", + "output_options_list_content", "output_entry", "$@144", + "output_params_list", "output_params", "output", "$@145", "flush", + "maxsize", "maxver", "pattern", "$@146", "compatibility", "$@147", "compatibility_params", "compatibility_param", "lenient_option_parsing", YY_NULLPTR }; #endif @@ -6723,43 +6746,43 @@ namespace isc { namespace dhcp { 1924, 1933, 1933, 1942, 1944, 1944, 1953, 1963, 1963, 1976, 1977, 1982, 1983, 1984, 1991, 1991, 2003, 2003, 2015, 2016, 2021, 2022, 2023, 2030, 2031, 2032, 2033, 2034, 2035, 2036, - 2037, 2038, 2039, 2042, 2044, 2044, 2053, 2055, 2057, 2063, - 2069, 2078, 2078, 2091, 2092, 2095, 2096, 2097, 2102, 2102, - 2112, 2112, 2122, 2123, 2124, 2129, 2130, 2131, 2132, 2133, - 2134, 2135, 2136, 2139, 2139, 2148, 2154, 2154, 2179, 2179, - 2209, 2209, 2222, 2223, 2226, 2227, 2228, 2233, 2233, 2245, - 2245, 2257, 2258, 2259, 2264, 2265, 2266, 2267, 2268, 2269, - 2270, 2271, 2272, 2273, 2274, 2275, 2278, 2278, 2287, 2293, - 2293, 2302, 2308, 2317, 2317, 2328, 2329, 2332, 2333, 2334, - 2339, 2339, 2348, 2348, 2357, 2358, 2361, 2362, 2363, 2369, - 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, - 2380, 2383, 2383, 2394, 2394, 2405, 2405, 2416, 2416, 2425, - 2425, 2434, 2434, 2443, 2443, 2452, 2452, 2466, 2466, 2477, - 2483, 2483, 2494, 2495, 2496, 2501, 2501, 2511, 2512, 2515, - 2516, 2517, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, - 2530, 2531, 2532, 2533, 2534, 2535, 2538, 2540, 2540, 2549, - 2549, 2558, 2567, 2567, 2580, 2581, 2582, 2587, 2588, 2589, - 2590, 2591, 2592, 2593, 2594, 2595, 2598, 2598, 2606, 2607, - 2608, 2611, 2617, 2617, 2626, 2632, 2640, 2648, 2648, 2660, - 2660, 2672, 2673, 2676, 2677, 2678, 2683, 2683, 2691, 2692, - 2693, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, - 2707, 2708, 2709, 2712, 2712, 2721, 2722, 2723, 2726, 2726, - 2736, 2736, 2746, 2752, 2760, 2760, 2773, 2774, 2775, 2780, - 2781, 2782, 2783, 2784, 2785, 2786, 2789, 2789, 2797, 2800, - 2800, 2809, 2809, 2818, 2818, 2829, 2830, 2833, 2834, 2835, - 2840, 2840, 2848, 2849, 2850, 2855, 2856, 2857, 2858, 2859, - 2860, 2861, 2864, 2864, 2873, 2873, 2884, 2884, 2897, 2898, - 2899, 2904, 2905, 2906, 2907, 2908, 2909, 2912, 2918, 2918, - 2927, 2933, 2933, 2943, 2943, 2956, 2956, 2966, 2967, 2968, - 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, - 2983, 2986, 2992, 2992, 3001, 3007, 3007, 3016, 3022, 3028, - 3028, 3037, 3038, 3041, 3041, 3052, 3052, 3064, 3064, 3074, - 3075, 3076, 3082, 3083, 3086, 3086, 3097, 3105, 3105, 3118, - 3119, 3120, 3126, 3126, 3134, 3135, 3136, 3141, 3142, 3143, - 3144, 3145, 3146, 3147, 3150, 3156, 3156, 3165, 3165, 3176, - 3177, 3178, 3183, 3183, 3191, 3192, 3193, 3198, 3199, 3200, - 3201, 3202, 3205, 3205, 3214, 3220, 3226, 3232, 3232, 3241, - 3241, 3252, 3253, 3254, 3259, 3260, 3263 + 2037, 2038, 2039, 2040, 2043, 2045, 2045, 2054, 2056, 2058, + 2064, 2070, 2076, 2076, 2090, 2090, 2103, 2104, 2107, 2108, + 2109, 2114, 2114, 2124, 2124, 2134, 2135, 2136, 2141, 2142, + 2143, 2144, 2145, 2146, 2147, 2148, 2151, 2151, 2160, 2166, + 2166, 2191, 2191, 2221, 2221, 2234, 2235, 2238, 2239, 2240, + 2245, 2245, 2257, 2257, 2269, 2270, 2271, 2276, 2277, 2278, + 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2290, + 2290, 2299, 2305, 2305, 2314, 2320, 2329, 2329, 2340, 2341, + 2344, 2345, 2346, 2351, 2351, 2360, 2360, 2369, 2370, 2373, + 2374, 2375, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, + 2389, 2390, 2391, 2392, 2395, 2395, 2406, 2406, 2417, 2417, + 2428, 2428, 2437, 2437, 2446, 2446, 2455, 2455, 2464, 2464, + 2478, 2478, 2489, 2495, 2495, 2506, 2507, 2508, 2513, 2513, + 2523, 2524, 2527, 2528, 2529, 2534, 2535, 2536, 2537, 2538, + 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2550, + 2552, 2552, 2561, 2561, 2570, 2579, 2579, 2592, 2593, 2594, + 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2610, + 2610, 2618, 2619, 2620, 2623, 2629, 2629, 2638, 2644, 2652, + 2660, 2660, 2672, 2672, 2684, 2685, 2688, 2689, 2690, 2695, + 2695, 2703, 2704, 2705, 2710, 2711, 2712, 2713, 2714, 2715, + 2716, 2717, 2718, 2719, 2720, 2721, 2724, 2724, 2733, 2734, + 2735, 2738, 2738, 2748, 2748, 2758, 2764, 2772, 2772, 2785, + 2786, 2787, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2801, + 2801, 2809, 2812, 2812, 2821, 2821, 2830, 2830, 2841, 2842, + 2845, 2846, 2847, 2852, 2852, 2860, 2861, 2862, 2867, 2868, + 2869, 2870, 2871, 2872, 2873, 2876, 2876, 2885, 2885, 2896, + 2896, 2909, 2910, 2911, 2916, 2917, 2918, 2919, 2920, 2921, + 2924, 2930, 2930, 2939, 2945, 2945, 2955, 2955, 2968, 2968, + 2978, 2979, 2980, 2985, 2986, 2987, 2988, 2989, 2990, 2991, + 2992, 2993, 2994, 2995, 2998, 3004, 3004, 3013, 3019, 3019, + 3028, 3034, 3040, 3040, 3049, 3050, 3053, 3053, 3064, 3064, + 3076, 3076, 3086, 3087, 3088, 3094, 3095, 3098, 3098, 3109, + 3117, 3117, 3130, 3131, 3132, 3138, 3138, 3146, 3147, 3148, + 3153, 3154, 3155, 3156, 3157, 3158, 3159, 3162, 3168, 3168, + 3177, 3177, 3188, 3189, 3190, 3195, 3195, 3203, 3204, 3205, + 3210, 3211, 3212, 3213, 3214, 3217, 3217, 3226, 3232, 3238, + 3244, 3244, 3253, 3253, 3264, 3265, 3266, 3271, 3272, 3275 }; void @@ -6792,9 +6815,9 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 6796 "dhcp6_parser.cc" +#line 6819 "dhcp6_parser.cc" -#line 3269 "dhcp6_parser.yy" +#line 3281 "dhcp6_parser.yy" void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index 92c05a81d2..01a83767d5 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -1254,206 +1254,208 @@ namespace isc { namespace dhcp { S_option_data_csv_format = 506, // option_data_csv_format S_option_data_always_send = 507, // option_data_always_send S_option_data_never_send = 508, // option_data_never_send - S_pools_list = 509, // pools_list + S_option_data_client_classes = 509, // option_data_client_classes S_510_83 = 510, // $@83 - S_pools_list_content = 511, // pools_list_content - S_not_empty_pools_list = 512, // not_empty_pools_list - S_pool_list_entry = 513, // pool_list_entry - S_514_84 = 514, // $@84 - S_sub_pool6 = 515, // sub_pool6 + S_pools_list = 511, // pools_list + S_512_84 = 512, // $@84 + S_pools_list_content = 513, // pools_list_content + S_not_empty_pools_list = 514, // not_empty_pools_list + S_pool_list_entry = 515, // pool_list_entry S_516_85 = 516, // $@85 - S_pool_params = 517, // pool_params - S_pool_param = 518, // pool_param - S_pool_entry = 519, // pool_entry - S_520_86 = 520, // $@86 - S_pool_id = 521, // pool_id - S_user_context = 522, // user_context - S_523_87 = 523, // $@87 - S_comment = 524, // comment + S_sub_pool6 = 517, // sub_pool6 + S_518_86 = 518, // $@86 + S_pool_params = 519, // pool_params + S_pool_param = 520, // pool_param + S_pool_entry = 521, // pool_entry + S_522_87 = 522, // $@87 + S_pool_id = 523, // pool_id + S_user_context = 524, // user_context S_525_88 = 525, // $@88 - S_pd_pools_list = 526, // pd_pools_list + S_comment = 526, // comment S_527_89 = 527, // $@89 - S_pd_pools_list_content = 528, // pd_pools_list_content - S_not_empty_pd_pools_list = 529, // not_empty_pd_pools_list - S_pd_pool_entry = 530, // pd_pool_entry - S_531_90 = 531, // $@90 - S_sub_pd_pool = 532, // sub_pd_pool + S_pd_pools_list = 528, // pd_pools_list + S_529_90 = 529, // $@90 + S_pd_pools_list_content = 530, // pd_pools_list_content + S_not_empty_pd_pools_list = 531, // not_empty_pd_pools_list + S_pd_pool_entry = 532, // pd_pool_entry S_533_91 = 533, // $@91 - S_pd_pool_params = 534, // pd_pool_params - S_pd_pool_param = 535, // pd_pool_param - S_pd_prefix = 536, // pd_prefix - S_537_92 = 537, // $@92 - S_pd_prefix_len = 538, // pd_prefix_len - S_excluded_prefix = 539, // excluded_prefix - S_540_93 = 540, // $@93 - S_excluded_prefix_len = 541, // excluded_prefix_len - S_pd_delegated_len = 542, // pd_delegated_len - S_reservations = 543, // reservations - S_544_94 = 544, // $@94 - S_reservations_list = 545, // reservations_list - S_not_empty_reservations_list = 546, // not_empty_reservations_list - S_reservation = 547, // reservation - S_548_95 = 548, // $@95 - S_sub_reservation = 549, // sub_reservation + S_sub_pd_pool = 534, // sub_pd_pool + S_535_92 = 535, // $@92 + S_pd_pool_params = 536, // pd_pool_params + S_pd_pool_param = 537, // pd_pool_param + S_pd_prefix = 538, // pd_prefix + S_539_93 = 539, // $@93 + S_pd_prefix_len = 540, // pd_prefix_len + S_excluded_prefix = 541, // excluded_prefix + S_542_94 = 542, // $@94 + S_excluded_prefix_len = 543, // excluded_prefix_len + S_pd_delegated_len = 544, // pd_delegated_len + S_reservations = 545, // reservations + S_546_95 = 546, // $@95 + S_reservations_list = 547, // reservations_list + S_not_empty_reservations_list = 548, // not_empty_reservations_list + S_reservation = 549, // reservation S_550_96 = 550, // $@96 - S_reservation_params = 551, // reservation_params - S_not_empty_reservation_params = 552, // not_empty_reservation_params - S_reservation_param = 553, // reservation_param - S_ip_addresses = 554, // ip_addresses - S_555_97 = 555, // $@97 - S_prefixes = 556, // prefixes + S_sub_reservation = 551, // sub_reservation + S_552_97 = 552, // $@97 + S_reservation_params = 553, // reservation_params + S_not_empty_reservation_params = 554, // not_empty_reservation_params + S_reservation_param = 555, // reservation_param + S_ip_addresses = 556, // ip_addresses S_557_98 = 557, // $@98 - S_excluded_prefixes = 558, // excluded_prefixes + S_prefixes = 558, // prefixes S_559_99 = 559, // $@99 - S_duid = 560, // duid + S_excluded_prefixes = 560, // excluded_prefixes S_561_100 = 561, // $@100 - S_hw_address = 562, // hw_address + S_duid = 562, // duid S_563_101 = 563, // $@101 - S_hostname = 564, // hostname + S_hw_address = 564, // hw_address S_565_102 = 565, // $@102 - S_flex_id_value = 566, // flex_id_value + S_hostname = 566, // hostname S_567_103 = 567, // $@103 - S_reservation_client_classes = 568, // reservation_client_classes + S_flex_id_value = 568, // flex_id_value S_569_104 = 569, // $@104 - S_relay = 570, // relay + S_reservation_client_classes = 570, // reservation_client_classes S_571_105 = 571, // $@105 - S_relay_map = 572, // relay_map - S_client_classes = 573, // client_classes - S_574_106 = 574, // $@106 - S_client_classes_list = 575, // client_classes_list - S_client_class_entry = 576, // client_class_entry - S_577_107 = 577, // $@107 - S_client_class_params = 578, // client_class_params - S_not_empty_client_class_params = 579, // not_empty_client_class_params - S_client_class_param = 580, // client_class_param - S_client_class_name = 581, // client_class_name - S_client_class_test = 582, // client_class_test - S_583_108 = 583, // $@108 - S_client_class_template_test = 584, // client_class_template_test + S_relay = 572, // relay + S_573_106 = 573, // $@106 + S_relay_map = 574, // relay_map + S_client_classes = 575, // client_classes + S_576_107 = 576, // $@107 + S_client_classes_list = 577, // client_classes_list + S_client_class_entry = 578, // client_class_entry + S_579_108 = 579, // $@108 + S_client_class_params = 580, // client_class_params + S_not_empty_client_class_params = 581, // not_empty_client_class_params + S_client_class_param = 582, // client_class_param + S_client_class_name = 583, // client_class_name + S_client_class_test = 584, // client_class_test S_585_109 = 585, // $@109 - S_only_if_required = 586, // only_if_required - S_server_id = 587, // server_id - S_588_110 = 588, // $@110 - S_server_id_params = 589, // server_id_params - S_server_id_param = 590, // server_id_param - S_server_id_type = 591, // server_id_type - S_592_111 = 592, // $@111 - S_duid_type = 593, // duid_type - S_htype = 594, // htype - S_identifier = 595, // identifier - S_596_112 = 596, // $@112 - S_time = 597, // time - S_enterprise_id = 598, // enterprise_id - S_dhcp4o6_port = 599, // dhcp4o6_port - S_control_socket = 600, // control_socket - S_601_113 = 601, // $@113 - S_control_sockets = 602, // control_sockets + S_client_class_template_test = 586, // client_class_template_test + S_587_110 = 587, // $@110 + S_only_if_required = 588, // only_if_required + S_server_id = 589, // server_id + S_590_111 = 590, // $@111 + S_server_id_params = 591, // server_id_params + S_server_id_param = 592, // server_id_param + S_server_id_type = 593, // server_id_type + S_594_112 = 594, // $@112 + S_duid_type = 595, // duid_type + S_htype = 596, // htype + S_identifier = 597, // identifier + S_598_113 = 598, // $@113 + S_time = 599, // time + S_enterprise_id = 600, // enterprise_id + S_dhcp4o6_port = 601, // dhcp4o6_port + S_control_socket = 602, // control_socket S_603_114 = 603, // $@114 - S_control_socket_list = 604, // control_socket_list - S_not_empty_control_socket_list = 605, // not_empty_control_socket_list - S_control_socket_entry = 606, // control_socket_entry - S_607_115 = 607, // $@115 - S_control_socket_params = 608, // control_socket_params - S_control_socket_param = 609, // control_socket_param - S_control_socket_type = 610, // control_socket_type - S_611_116 = 611, // $@116 - S_control_socket_type_value = 612, // control_socket_type_value - S_control_socket_name = 613, // control_socket_name - S_614_117 = 614, // $@117 - S_control_socket_address = 615, // control_socket_address + S_control_sockets = 604, // control_sockets + S_605_115 = 605, // $@115 + S_control_socket_list = 606, // control_socket_list + S_not_empty_control_socket_list = 607, // not_empty_control_socket_list + S_control_socket_entry = 608, // control_socket_entry + S_609_116 = 609, // $@116 + S_control_socket_params = 610, // control_socket_params + S_control_socket_param = 611, // control_socket_param + S_control_socket_type = 612, // control_socket_type + S_613_117 = 613, // $@117 + S_control_socket_type_value = 614, // control_socket_type_value + S_control_socket_name = 615, // control_socket_name S_616_118 = 616, // $@118 - S_control_socket_port = 617, // control_socket_port - S_cert_required = 618, // cert_required - S_authentication = 619, // authentication - S_620_119 = 620, // $@119 - S_auth_params = 621, // auth_params - S_auth_param = 622, // auth_param - S_auth_type = 623, // auth_type - S_624_120 = 624, // $@120 - S_auth_type_value = 625, // auth_type_value - S_realm = 626, // realm - S_627_121 = 627, // $@121 - S_directory = 628, // directory + S_control_socket_address = 617, // control_socket_address + S_618_119 = 618, // $@119 + S_control_socket_port = 619, // control_socket_port + S_cert_required = 620, // cert_required + S_authentication = 621, // authentication + S_622_120 = 622, // $@120 + S_auth_params = 623, // auth_params + S_auth_param = 624, // auth_param + S_auth_type = 625, // auth_type + S_626_121 = 626, // $@121 + S_auth_type_value = 627, // auth_type_value + S_realm = 628, // realm S_629_122 = 629, // $@122 - S_clients = 630, // clients + S_directory = 630, // directory S_631_123 = 631, // $@123 - S_clients_list = 632, // clients_list - S_not_empty_clients_list = 633, // not_empty_clients_list - S_basic_auth = 634, // basic_auth - S_635_124 = 635, // $@124 - S_clients_params = 636, // clients_params - S_clients_param = 637, // clients_param - S_user_file = 638, // user_file - S_639_125 = 639, // $@125 - S_password_file = 640, // password_file + S_clients = 632, // clients + S_633_124 = 633, // $@124 + S_clients_list = 634, // clients_list + S_not_empty_clients_list = 635, // not_empty_clients_list + S_basic_auth = 636, // basic_auth + S_637_125 = 637, // $@125 + S_clients_params = 638, // clients_params + S_clients_param = 639, // clients_param + S_user_file = 640, // user_file S_641_126 = 641, // $@126 - S_dhcp_queue_control = 642, // dhcp_queue_control + S_password_file = 642, // password_file S_643_127 = 643, // $@127 - S_queue_control_params = 644, // queue_control_params - S_queue_control_param = 645, // queue_control_param - S_enable_queue = 646, // enable_queue - S_queue_type = 647, // queue_type - S_648_128 = 648, // $@128 - S_capacity = 649, // capacity - S_arbitrary_map_entry = 650, // arbitrary_map_entry - S_651_129 = 651, // $@129 - S_dhcp_ddns = 652, // dhcp_ddns + S_dhcp_queue_control = 644, // dhcp_queue_control + S_645_128 = 645, // $@128 + S_queue_control_params = 646, // queue_control_params + S_queue_control_param = 647, // queue_control_param + S_enable_queue = 648, // enable_queue + S_queue_type = 649, // queue_type + S_650_129 = 650, // $@129 + S_capacity = 651, // capacity + S_arbitrary_map_entry = 652, // arbitrary_map_entry S_653_130 = 653, // $@130 - S_sub_dhcp_ddns = 654, // sub_dhcp_ddns + S_dhcp_ddns = 654, // dhcp_ddns S_655_131 = 655, // $@131 - S_dhcp_ddns_params = 656, // dhcp_ddns_params - S_dhcp_ddns_param = 657, // dhcp_ddns_param - S_enable_updates = 658, // enable_updates - S_server_ip = 659, // server_ip - S_660_132 = 660, // $@132 - S_server_port = 661, // server_port - S_sender_ip = 662, // sender_ip - S_663_133 = 663, // $@133 - S_sender_port = 664, // sender_port - S_max_queue_size = 665, // max_queue_size - S_ncr_protocol = 666, // ncr_protocol - S_667_134 = 667, // $@134 - S_ncr_protocol_value = 668, // ncr_protocol_value - S_ncr_format = 669, // ncr_format - S_670_135 = 670, // $@135 - S_config_control = 671, // config_control + S_sub_dhcp_ddns = 656, // sub_dhcp_ddns + S_657_132 = 657, // $@132 + S_dhcp_ddns_params = 658, // dhcp_ddns_params + S_dhcp_ddns_param = 659, // dhcp_ddns_param + S_enable_updates = 660, // enable_updates + S_server_ip = 661, // server_ip + S_662_133 = 662, // $@133 + S_server_port = 663, // server_port + S_sender_ip = 664, // sender_ip + S_665_134 = 665, // $@134 + S_sender_port = 666, // sender_port + S_max_queue_size = 667, // max_queue_size + S_ncr_protocol = 668, // ncr_protocol + S_669_135 = 669, // $@135 + S_ncr_protocol_value = 670, // ncr_protocol_value + S_ncr_format = 671, // ncr_format S_672_136 = 672, // $@136 - S_sub_config_control = 673, // sub_config_control + S_config_control = 673, // config_control S_674_137 = 674, // $@137 - S_config_control_params = 675, // config_control_params - S_config_control_param = 676, // config_control_param - S_config_databases = 677, // config_databases - S_678_138 = 678, // $@138 - S_config_fetch_wait_time = 679, // config_fetch_wait_time - S_loggers = 680, // loggers - S_681_139 = 681, // $@139 - S_loggers_entries = 682, // loggers_entries - S_logger_entry = 683, // logger_entry - S_684_140 = 684, // $@140 - S_logger_params = 685, // logger_params - S_logger_param = 686, // logger_param - S_debuglevel = 687, // debuglevel - S_severity = 688, // severity - S_689_141 = 689, // $@141 - S_output_options_list = 690, // output_options_list + S_sub_config_control = 675, // sub_config_control + S_676_138 = 676, // $@138 + S_config_control_params = 677, // config_control_params + S_config_control_param = 678, // config_control_param + S_config_databases = 679, // config_databases + S_680_139 = 680, // $@139 + S_config_fetch_wait_time = 681, // config_fetch_wait_time + S_loggers = 682, // loggers + S_683_140 = 683, // $@140 + S_loggers_entries = 684, // loggers_entries + S_logger_entry = 685, // logger_entry + S_686_141 = 686, // $@141 + S_logger_params = 687, // logger_params + S_logger_param = 688, // logger_param + S_debuglevel = 689, // debuglevel + S_severity = 690, // severity S_691_142 = 691, // $@142 - S_output_options_list_content = 692, // output_options_list_content - S_output_entry = 693, // output_entry - S_694_143 = 694, // $@143 - S_output_params_list = 695, // output_params_list - S_output_params = 696, // output_params - S_output = 697, // output - S_698_144 = 698, // $@144 - S_flush = 699, // flush - S_maxsize = 700, // maxsize - S_maxver = 701, // maxver - S_pattern = 702, // pattern - S_703_145 = 703, // $@145 - S_compatibility = 704, // compatibility + S_output_options_list = 692, // output_options_list + S_693_143 = 693, // $@143 + S_output_options_list_content = 694, // output_options_list_content + S_output_entry = 695, // output_entry + S_696_144 = 696, // $@144 + S_output_params_list = 697, // output_params_list + S_output_params = 698, // output_params + S_output = 699, // output + S_700_145 = 700, // $@145 + S_flush = 701, // flush + S_maxsize = 702, // maxsize + S_maxver = 703, // maxver + S_pattern = 704, // pattern S_705_146 = 705, // $@146 - S_compatibility_params = 706, // compatibility_params - S_compatibility_param = 707, // compatibility_param - S_lenient_option_parsing = 708 // lenient_option_parsing + S_compatibility = 706, // compatibility + S_707_147 = 707, // $@147 + S_compatibility_params = 708, // compatibility_params + S_compatibility_param = 709, // compatibility_param + S_lenient_option_parsing = 710 // lenient_option_parsing }; }; @@ -5655,8 +5657,8 @@ switch (yykind) /// Constants. enum { - yylast_ = 1437, ///< Last index in yytable_. - yynnts_ = 478, ///< Number of nonterminal symbols. + yylast_ = 1421, ///< Last index in yytable_. + yynnts_ = 480, ///< Number of nonterminal symbols. yyfinal_ = 30 ///< Termination state number. }; @@ -5900,7 +5902,7 @@ switch (yykind) #line 14 "dhcp6_parser.yy" } } // isc::dhcp -#line 5904 "dhcp6_parser.h" +#line 5906 "dhcp6_parser.h" diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 295f0173d2..0a8d3b5931 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -2036,6 +2036,7 @@ option_data_param: option_data_name | option_data_never_send | user_context | comment + | option_data_client_classes | unknown_map_entry ; @@ -2072,6 +2073,17 @@ option_data_never_send: NEVER_SEND COLON BOOLEAN { ctx.stack_.back()->set("never-send", cancel); }; +option_data_client_classes: CLIENT_CLASSES { + ctx.unique("client-classes", ctx.loc2pos(@1)); + ElementPtr c(new ListElement(ctx.loc2pos(@1))); + ctx.stack_.back()->set("client-classes", c); + ctx.stack_.push_back(c); + ctx.enter(ctx.NO_KEYWORD); +} COLON list_strings { + ctx.stack_.pop_back(); + ctx.leave(); +}; + // ---- pools ------------------------------------ // This defines the "pools": [ ... ] entry that may appear in subnet6. diff --git a/src/lib/dhcp/classify.cc b/src/lib/dhcp/classify.cc index f42a9e3710..784cc4a895 100644 --- a/src/lib/dhcp/classify.cc +++ b/src/lib/dhcp/classify.cc @@ -36,6 +36,12 @@ ClientClasses::ClientClasses(const std::string& class_names) } } +ClientClasses::ClientClasses(const ClientClasses& other) { + for (auto const& cclass : other) { + insert(cclass); + } +} + void ClientClasses::erase(const ClientClass& class_name) { auto& idx = container_.get(); @@ -75,5 +81,20 @@ ClientClasses::toElement() const { return (result); } +bool +ClientClasses::equals(const ClientClasses& other) const { + return ((size() == other.size()) && std::equal(cbegin(), cend(), other.cbegin())); +} + +ClientClasses& +ClientClasses::operator=(const ClientClasses& other) { + clear(); + for (auto const& cclass : other) { + insert(cclass); + } + + return (*this); +} + } // end of namespace isc::dhcp } // end of namespace isc diff --git a/src/lib/dhcp/classify.h b/src/lib/dhcp/classify.h index 34977a5989..cb5340dfe5 100644 --- a/src/lib/dhcp/classify.h +++ b/src/lib/dhcp/classify.h @@ -122,6 +122,33 @@ namespace dhcp { /// with commas. The class names are trimmed before insertion to the set. ClientClasses(const std::string& class_names); + /// @brief Copy constructor. + /// + /// @param ClientClasses object to be copied. + ClientClasses(const ClientClasses& other); + + /// @brief Assigns the contents of on container to another + ClientClasses& operator=(const ClientClasses& other); + + /// @brief Compares two ClientClasses container for equality + /// + /// @return True if the two containers are equal, false otherwise. + bool equals(const ClientClasses& other) const; + + /// @brief Compares two ClientClasses container for equality + /// + /// @return True if the two containers are equal, false otherwise. + bool operator==(const ClientClasses& other) const { + return(equals(other)); + } + + /// @brief Compares two ClientClasses container for inequality + /// + /// @return True if the two containers are not equal, false otherwise. + bool operator!=(const ClientClasses& other) const { + return(!equals(other)); + } + /// @brief Insert an element. /// /// @param class_name The name of the class to insert diff --git a/src/lib/dhcp/tests/classify_unittest.cc b/src/lib/dhcp/tests/classify_unittest.cc index 4cf7037e36..49bfc9c48f 100644 --- a/src/lib/dhcp/tests/classify_unittest.cc +++ b/src/lib/dhcp/tests/classify_unittest.cc @@ -28,7 +28,7 @@ TEST(ClassifyTest, ClientClasses) { EXPECT_FALSE(classes.contains("")); EXPECT_FALSE(classes.contains("alpha")); EXPECT_FALSE(classes.contains("beta")); - EXPECT_FALSE(classes.contains("gamma")); + EXPECT_FALSE(classes.contains("gamma")); classes.insert("beta"); EXPECT_FALSE(classes.contains("")); EXPECT_FALSE(classes.contains("alpha")); @@ -40,6 +40,31 @@ TEST(ClassifyTest, ClientClasses) { EXPECT_TRUE (classes.contains("alpha")); EXPECT_TRUE (classes.contains("beta")); EXPECT_TRUE (classes.contains("gamma")); + + // Copy Constructor and equality operators. + ClientClasses classes2(classes); + EXPECT_EQ(classes, classes2); + + // A bigger than B + classes.insert("zeta"); + EXPECT_NE(classes, classes2); + + // A and B equal again. + classes2.insert("zeta"); + EXPECT_EQ(classes, classes2); + + // B bigger than A. + classes2.insert("chi"); + EXPECT_NE(classes, classes2); + + // Order matters. + ClientClasses classes3; + classes3.insert("alpha"); + classes3.insert("gamma"); + classes3.insert("beta"); + classes3.insert("zeta"); + EXPECT_EQ(classes3.size(), classes.size()); + EXPECT_NE(classes3, classes); } // Check if ClientClasses object can be created from the string of comma diff --git a/src/lib/dhcpsrv/cfg_option.cc b/src/lib/dhcpsrv/cfg_option.cc index 61137ed5eb..a25341ec8b 100644 --- a/src/lib/dhcpsrv/cfg_option.cc +++ b/src/lib/dhcpsrv/cfg_option.cc @@ -51,6 +51,14 @@ OptionDescriptor::equals(const OptionDescriptor& other) const { option_->equals(other.option_)); } +void +OptionDescriptor::addClientClass(const std::string& class_name) { + std::string trimmed = util::str::trim(class_name); + if (!trimmed.empty()) { + client_classes_.insert(ClientClass(trimmed)); + } +} + CfgOption::CfgOption() : encapsulated_(false) { } @@ -502,6 +510,11 @@ CfgOption::toElementWithMetadata(const bool include_metadata) const { map->set("metadata", opt.getMetadata()); } + // Include client-classes if not empty. + if (!opt.client_classes_.empty()) { + map->set("client-classes", opt.client_classes_.toElement()); + } + // Push on the list result->add(map); } @@ -557,10 +570,17 @@ CfgOption::toElementWithMetadata(const bool include_metadata) const { map->set("always-send", Element::create(opt.persistent_)); // Set the cancellation flag map->set("never-send", Element::create(opt.cancelled_)); + + // Include client-classes if not empty. + if (!opt.client_classes_.empty()) { + map->set("client-classes", opt.client_classes_.toElement()); + } + // Push on the list result->add(map); } } + return (result); } diff --git a/src/lib/dhcpsrv/cfg_option.h b/src/lib/dhcpsrv/cfg_option.h index 884e679c14..e3e9b52bb9 100644 --- a/src/lib/dhcpsrv/cfg_option.h +++ b/src/lib/dhcpsrv/cfg_option.h @@ -8,6 +8,7 @@ #define CFG_OPTION_H #include +#include #include #include #include @@ -89,6 +90,10 @@ public: /// won't be set. std::string space_name_; + /// @brief Collection of classes for the which option is allowed. + /// An empty list means no class restrictions. + ClientClasses client_classes_; + /// @brief Constructor. /// /// @param opt option instance. @@ -122,7 +127,8 @@ public: persistent_(desc.persistent_), cancelled_(desc.cancelled_), formatted_value_(desc.formatted_value_), - space_name_(desc.space_name_) { + space_name_(desc.space_name_), + client_classes_(desc.client_classes_) { setContext(desc.getContext()); }; @@ -138,6 +144,7 @@ public: cancelled_ = other.cancelled_; formatted_value_ = other.formatted_value_; space_name_ = other.space_name_; + client_classes_ = other.client_classes_; setContext(other.getContext()); } return (*this); @@ -198,6 +205,11 @@ public: bool operator!=(const OptionDescriptor& other) const { return (!equals(other)); } + + /// @brief Adds new client class for which the option is allowed. + /// + /// @param class_name Class name. + void addClientClass(const std::string& class_name); }; /// @brief Multi index container for DHCP option descriptors. diff --git a/src/lib/dhcpsrv/parsers/option_data_parser.cc b/src/lib/dhcpsrv/parsers/option_data_parser.cc index cd544d5833..2710ffe624 100644 --- a/src/lib/dhcpsrv/parsers/option_data_parser.cc +++ b/src/lib/dhcpsrv/parsers/option_data_parser.cc @@ -278,6 +278,7 @@ OptionDataParser::createOption(ConstElementPtr option_data) { Optional data_param = extractData(option_data); std::string space_param = extractSpace(option_data); ConstElementPtr user_context = option_data->get("user-context"); + ConstElementPtr client_classes = option_data->get("client-classes"); // Require that option code or option name is specified. if (code_param.unspecified() && name_param.unspecified()) { @@ -440,6 +441,12 @@ OptionDataParser::createOption(ConstElementPtr option_data) { desc.setContext(user_context); } + if (client_classes) { + for (auto const& class_element : client_classes->listValue()) { + desc.addClientClass(class_element->stringValue()); + } + } + // All went good, so we can set the option space name. return (make_pair(desc, space_param)); } diff --git a/src/lib/dhcpsrv/parsers/simple_parser4.cc b/src/lib/dhcpsrv/parsers/simple_parser4.cc index 1666419441..de0f7a63ba 100644 --- a/src/lib/dhcpsrv/parsers/simple_parser4.cc +++ b/src/lib/dhcpsrv/parsers/simple_parser4.cc @@ -181,16 +181,17 @@ const SimpleDefaults SimpleParser4::OPTION4_DEF_DEFAULTS = { /// list and map types for entries. /// Order follows option_param rules in bison grammar. const SimpleKeywords SimpleParser4::OPTION4_PARAMETERS = { - { "name", Element::string }, - { "data", Element::string }, - { "code", Element::integer }, - { "space", Element::string }, - { "csv-format", Element::boolean }, - { "always-send", Element::boolean }, - { "never-send", Element::boolean }, - { "user-context", Element::map }, - { "comment", Element::string }, - { "metadata", Element::map } + { "name", Element::string }, + { "data", Element::string }, + { "code", Element::integer }, + { "space", Element::string }, + { "csv-format", Element::boolean }, + { "always-send", Element::boolean }, + { "never-send", Element::boolean }, + { "user-context", Element::map }, + { "comment", Element::string }, + { "metadata", Element::map }, + { "client-classes", Element::list } }; /// @brief This table defines default values for options in DHCPv4. diff --git a/src/lib/dhcpsrv/parsers/simple_parser6.cc b/src/lib/dhcpsrv/parsers/simple_parser6.cc index c0a2d349ec..f58ceecb31 100644 --- a/src/lib/dhcpsrv/parsers/simple_parser6.cc +++ b/src/lib/dhcpsrv/parsers/simple_parser6.cc @@ -175,16 +175,17 @@ const SimpleDefaults SimpleParser6::OPTION6_DEF_DEFAULTS = { /// list and map types for entries. /// Order follows option_param rules in bison grammar. const SimpleKeywords SimpleParser6::OPTION6_PARAMETERS = { - { "name", Element::string }, - { "data", Element::string }, - { "code", Element::integer }, - { "space", Element::string }, - { "csv-format", Element::boolean }, - { "always-send", Element::boolean }, - { "never-send", Element::boolean }, - { "user-context", Element::map }, - { "comment", Element::string }, - { "metadata", Element::map } + { "name", Element::string }, + { "data", Element::string }, + { "code", Element::integer }, + { "space", Element::string }, + { "csv-format", Element::boolean }, + { "always-send", Element::boolean }, + { "never-send", Element::boolean }, + { "user-context", Element::map }, + { "comment", Element::string }, + { "metadata", Element::map }, + { "client-classes", Element::list } }; /// @brief This table defines default values for options in DHCPv6. diff --git a/src/lib/dhcpsrv/tests/cfg_option_unittest.cc b/src/lib/dhcpsrv/tests/cfg_option_unittest.cc index 2fa42ae065..09b43c9f29 100644 --- a/src/lib/dhcpsrv/tests/cfg_option_unittest.cc +++ b/src/lib/dhcpsrv/tests/cfg_option_unittest.cc @@ -1256,6 +1256,8 @@ TEST_F(CfgOptionTest, unparse) { OptionDescriptor desc2(opt2, false, true, "12, 12, 12, 12"); std::string ctx = "{ \"comment\": \"foo\", \"bar\": 1 }"; desc2.setContext(data::Element::fromJSON(ctx)); + desc2.addClientClass("water"); + desc2.addClientClass("melon"); cfg.add(desc2, "dns"); OptionPtr opt3(new Option(Option::V6, D6O_STATUS_CODE, OptionBuffer(2, 0))); cfg.add(opt3, false, false, DHCP6_OPTION_SPACE); @@ -1264,9 +1266,23 @@ TEST_F(CfgOptionTest, unparse) { OptionPtr opt5(new Option(Option::V6, 111)); cfg.add(opt5, false, true, "vendor-5678"); + OptionPtr opt6(new Option(Option::V6, 112)); + OptionDescriptor desc6(opt6, false, false); + desc6.addClientClass("foo"); + desc6.addClientClass("bar"); + cfg.add(desc6, "vendor-9999"); + // Unparse std::string expected = "[\n" "{\n" + " \"code\": 13,\n" + " \"name\": \"status-code\",\n" + " \"space\": \"dhcp6\",\n" + " \"csv-format\": false,\n" + " \"data\": \"0000\",\n" + " \"always-send\": false,\n" + " \"never-send\": false\n" + "},{\n" " \"code\": 100,\n" " \"space\": \"dns\",\n" " \"csv-format\": false,\n" @@ -1274,6 +1290,7 @@ TEST_F(CfgOptionTest, unparse) { " \"always-send\": false,\n" " \"never-send\": true\n" "},{\n" + " \"client-classes\": [ \"water\", \"melon\" ],\n" " \"code\": 101,\n" " \"space\": \"dns\",\n" " \"csv-format\": true,\n" @@ -1282,14 +1299,6 @@ TEST_F(CfgOptionTest, unparse) { " \"never-send\": true,\n" " \"user-context\": { \"comment\": \"foo\", \"bar\": 1 }\n" "},{\n" - " \"code\": 13,\n" - " \"name\": \"status-code\",\n" - " \"space\": \"dhcp6\",\n" - " \"csv-format\": false,\n" - " \"data\": \"0000\",\n" - " \"always-send\": false,\n" - " \"never-send\": false\n" - "},{\n" " \"code\": 100,\n" " \"space\": \"vendor-1234\",\n" " \"csv-format\": false,\n" @@ -1301,6 +1310,14 @@ TEST_F(CfgOptionTest, unparse) { " \"space\": \"vendor-5678\",\n" " \"always-send\": false,\n" " \"never-send\": true\n" + "},{\n" + " \"always-send\": false,\n" + " \"client-classes\": [ \"foo\", \"bar\" ],\n" + " \"code\": 112,\n" + " \"csv-format\": false,\n" + " \"data\": \"\",\n" + " \"never-send\": false\n," + " \"space\": \"vendor-9999\"\n" "}]\n"; isc::test::runToElementTest(expected, cfg); } diff --git a/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc b/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc index a715ae93f5..6af3945a31 100644 --- a/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc +++ b/src/lib/dhcpsrv/tests/dhcp_parsers_unittest.cc @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -461,6 +462,22 @@ public: return (option_ptr); } + /// @brief Find the OptionDescriptor for a given space and code within the parser + /// context. + /// @param space is the space name of the desired option. + /// @param code is the numeric "type" of the desired option. + /// @return an OptionDecriptorPtr to the descriptor found or an empty ptr + OptionDescriptorPtr getOptionDescriptor(std::string space, uint32_t code) { + OptionDescriptorPtr od_ptr; + const auto &cfg_options = CfgMgr::instance().getStagingCfg()->getCfgOption(); + auto od = cfg_options->get(space, code); + if (od.option_) { + od_ptr = OptionDescriptor::create(od); + } + + return (od_ptr); + } + /// @brief Wipes the contents of the context to allowing another parsing /// during a given test if needed. /// @param family protocol family to use during the test, defaults @@ -1881,6 +1898,164 @@ setHooksLibrariesConfig(const char* lib1 = NULL, const char* lib2 = NULL, return (config); } +/// @brief Check parsing of a v4 option with a client-class list. +TEST_F(ParseConfigTest, optionDataClientClasses4) { + family_ = AF_INET; + // Configuration string. + std::string config = + "{ \"option-def\": [ {" + " \"name\": \"foo\"," + " \"code\": 0," + " \"type\": \"ipv4-address\"," + " \"space\": \"isc\"" + " } ], " + " \"option-data\": [ {" + " \"name\": \"foo\"," + " \"space\": \"isc\"," + " \"code\": 0," + " \"data\": \"192.0.2.0\"," + " \"csv-format\": true," + " \"always-send\": false," + " \"client-classes\": [ \"water\", \"melon\" ]" + " } ]" + "}"; + + // Verify that the configuration string parses. + int rcode = parseConfiguration(config); + ASSERT_EQ(0, rcode); + + // Verify that the option can be retrieved. + OptionPtr opt_ptr = getOptionPtr("isc", 0); + ASSERT_TRUE(opt_ptr); + + // Verify the option descriptor's client-classes lists is correct. + ClientClasses exp_cc("water, melon"); + OptionDescriptorPtr od = getOptionDescriptor("isc", 0); + ASSERT_TRUE(od); + EXPECT_EQ(od->client_classes_, exp_cc); + + // Check if it can be unparsed. + CfgOptionsTest cfg(CfgMgr::instance().getStagingCfg()); + cfg.runCfgOptionsTest(family_, config); +} + +/// @brief Check parsing of a v4 option with a client-class list. +TEST_F(ParseConfigTest, optionDataClientClassesEmpty4) { + family_ = AF_INET; + // Configuration string. + std::string config = + "{ \"option-def\": [ {" + " \"name\": \"foo\"," + " \"code\": 0," + " \"type\": \"ipv4-address\"," + " \"space\": \"isc\"" + " } ], " + " \"option-data\": [ {" + " \"name\": \"foo\"," + " \"space\": \"isc\"," + " \"code\": 0," + " \"data\": \"192.0.2.0\"," + " \"csv-format\": true," + " \"always-send\": false," + " \"client-classes\": []" + " } ]" + "}"; + + // Verify that the configuration string parses. + int rcode = parseConfiguration(config); + ASSERT_EQ(0, rcode); + + // Verify that the option can be retrieved. + OptionPtr opt_ptr = getOptionPtr("isc", 0); + ASSERT_TRUE(opt_ptr); + + // Verify the option descriptor's client-classes list is empty. + OptionDescriptorPtr od = getOptionDescriptor("isc", 0); + ASSERT_TRUE(od); + EXPECT_TRUE(od->client_classes_.empty()); + + // We skip unparse test because client-classes is only emitited if not empty. +} + +/// @brief Check parsing of a v6 option with a client-class list. +TEST_F(ParseConfigTest, optionDataClientClasses6) { + family_ = AF_INET6; + // Configuration string. + std::string config = + "{ \"option-def\": [ {" + " \"name\": \"foo\"," + " \"code\": 0," + " \"type\": \"ipv4-address\"," + " \"space\": \"isc\"" + " } ], " + " \"option-data\": [ {" + " \"name\": \"foo\"," + " \"space\": \"isc\"," + " \"code\": 0," + " \"data\": \"192.0.2.0\"," + " \"csv-format\": true," + " \"always-send\": false," + " \"client-classes\": [ \"water\", \"melon\" ]" + " } ]" + "}"; + + // Verify that the configuration string parses. + int rcode = parseConfiguration(config); + ASSERT_EQ(0, rcode); + + // Verify that the option can be retrieved. + OptionPtr opt_ptr = getOptionPtr("isc", 0); + ASSERT_TRUE(opt_ptr); + + // Verify the option descriptor's client-classes lists is correct. + ClientClasses exp_cc("water, melon"); + OptionDescriptorPtr od = getOptionDescriptor("isc", 0); + ASSERT_TRUE(od); + EXPECT_EQ(od->client_classes_, exp_cc); + + // Check if it can be unparsed. + CfgOptionsTest cfg(CfgMgr::instance().getStagingCfg()); + cfg.runCfgOptionsTest(family_, config); +} + +/// @brief Check parsing of a v4 option with a client-class list. +TEST_F(ParseConfigTest, optionDataClientClassesEmpty6) { + family_ = AF_INET6; + // Configuration string. + std::string config = + "{ \"option-def\": [ {" + " \"name\": \"foo\"," + " \"code\": 0," + " \"type\": \"ipv4-address\"," + " \"space\": \"isc\"" + " } ], " + " \"option-data\": [ {" + " \"name\": \"foo\"," + " \"space\": \"isc\"," + " \"code\": 0," + " \"data\": \"192.0.2.0\"," + " \"csv-format\": true," + " \"always-send\": false," + " \"client-classes\": []" + " } ]" + "}"; + + // Verify that the configuration string parses. + int rcode = parseConfiguration(config); + ASSERT_EQ(0, rcode); + + // Verify that the option can be retrieved. + OptionPtr opt_ptr = getOptionPtr("isc", 0); + ASSERT_TRUE(opt_ptr); + + // Verify the option descriptor's client-classes list is empty. + OptionDescriptorPtr od = getOptionDescriptor("isc", 0); + ASSERT_TRUE(od); + EXPECT_TRUE(od->client_classes_.empty()); + + // We skip unparse test because client-classes is only emitited if not empty. +} + // hooks-libraries element that does not contain anything. TEST_F(ParseConfigTest, noHooksLibraries) { // Check that no libraries are currently loaded