summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas Markwalder <tmark@isc.org>2024-10-31 16:04:40 +0100
committerThomas Markwalder <tmark@isc.org>2024-11-26 18:19:56 +0100
commit24a2bbe16495675b135504809ca8881347d8ee3f (patch)
tree7025c1e0020c161c2908250fef3bb230b538b208 /src
parent[#3592] modified in lib dhcp and dhcpsrv (diff)
downloadkea-24a2bbe16495675b135504809ca8881347d8ee3f.tar.xz
kea-24a2bbe16495675b135504809ca8881347d8ee3f.zip
[#3592] Update kea-dhcp4 parsing and UTs
/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll /src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy Add "client-classes" to SUBNET4, POOLS, and SHARED_NETWORK /src/bin/dhcp4/tests/classify_unittest.cc Update tests TEST_F(ClassifyTest, networkScopeClientClasses) - new test /src/bin/dhcp4/tests/config_parser_unittest.cc Update tests TEST_F(Dhcp4ParserTest, sharedNetworksDeriveClientClass) - delete obsolete test /src/bin/dhcp4/tests/get_config_unittest.cc /src/bin/dhcp6/tests/config_parser_unittest.cc Updated tests
Diffstat (limited to 'src')
-rw-r--r--src/bin/dhcp4/dhcp4_lexer.cc283
-rw-r--r--src/bin/dhcp4/dhcp4_lexer.ll3
-rw-r--r--src/bin/dhcp4/dhcp4_parser.cc3389
-rw-r--r--src/bin/dhcp4/dhcp4_parser.h444
-rw-r--r--src/bin/dhcp4/dhcp4_parser.yy15
-rw-r--r--src/bin/dhcp4/location.hh1
-rw-r--r--src/bin/dhcp4/tests/classify_unittest.cc129
-rw-r--r--src/bin/dhcp4/tests/config_parser_unittest.cc97
-rw-r--r--src/bin/dhcp4/tests/get_config_unittest.cc20
-rw-r--r--src/bin/dhcp6/tests/config_parser_unittest.cc2
10 files changed, 2228 insertions, 2155 deletions
diff --git a/src/bin/dhcp4/dhcp4_lexer.cc b/src/bin/dhcp4/dhcp4_lexer.cc
index f684e6a36c..97ae42c8f5 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
@@ -2205,19 +2205,19 @@ static const flex_int16_t yy_rule_linenum[239] =
1123, 1134, 1145, 1155, 1164, 1175, 1186, 1197, 1208, 1219,
1228, 1237, 1246, 1255, 1264, 1273, 1282, 1291, 1300, 1309,
- 1320, 1331, 1342, 1354, 1363, 1372, 1381, 1390, 1400, 1410,
- 1420, 1430, 1440, 1450, 1459, 1469, 1478, 1487, 1496, 1505,
- 1515, 1524, 1533, 1542, 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, 1956,
- 1967, 1978, 1988, 1998, 2008, 2018, 2028, 2038, 2048, 2058,
-
- 2068, 2077, 2086, 2095, 2104, 2115, 2126, 2139, 2152, 2165,
- 2174, 2183, 2192, 2201, 2210, 2219, 2228, 2237, 2249, 2258,
- 2359, 2375, 2424, 2432, 2447, 2448, 2449, 2450, 2451, 2452,
- 2454, 2472, 2485, 2490, 2494, 2496, 2498, 2500
+ 1323, 1334, 1345, 1357, 1366, 1375, 1384, 1393, 1403, 1413,
+ 1423, 1433, 1443, 1453, 1462, 1472, 1481, 1490, 1499, 1508,
+ 1518, 1527, 1536, 1545, 1554, 1563, 1572, 1581, 1590, 1599,
+ 1608, 1617, 1626, 1635, 1644, 1653, 1662, 1671, 1680, 1689,
+ 1698, 1707, 1716, 1725, 1734, 1743, 1752, 1761, 1770, 1779,
+ 1788, 1797, 1806, 1815, 1824, 1833, 1842, 1851, 1860, 1869,
+ 1878, 1887, 1896, 1905, 1914, 1923, 1932, 1941, 1950, 1959,
+ 1970, 1981, 1991, 2001, 2011, 2021, 2031, 2041, 2051, 2061,
+
+ 2071, 2080, 2089, 2098, 2107, 2118, 2129, 2142, 2155, 2168,
+ 2177, 2186, 2195, 2204, 2213, 2222, 2231, 2240, 2252, 2261,
+ 2362, 2378, 2427, 2435, 2450, 2451, 2452, 2453, 2454, 2455,
+ 2457, 2475, 2488, 2493, 2497, 2499, 2501, 2503
} ;
/* The intent behind this definition is that it'll catch
@@ -2272,7 +2272,7 @@ using namespace isc::dhcp;
/* To avoid the call to exit... oops! */
#define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
-#line 2275 "dhcp4_lexer.cc"
+#line 2276 "dhcp4_lexer.cc"
/* 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
@@ -2298,8 +2298,8 @@ 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);
-#line 2301 "dhcp4_lexer.cc"
#line 2302 "dhcp4_lexer.cc"
+#line 2303 "dhcp4_lexer.cc"
#define INITIAL 0
#define COMMENT 1
@@ -2627,7 +2627,7 @@ YY_DECL
}
-#line 2630 "dhcp4_lexer.cc"
+#line 2631 "dhcp4_lexer.cc"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -4243,6 +4243,9 @@ YY_RULE_SETUP
case isc::dhcp::Parser4Context::DHCP4:
case isc::dhcp::Parser4Context::RESERVATIONS:
case isc::dhcp::Parser4Context::OPTION_DATA:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::POOLS:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASSES(driver.loc_);
default:
return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_);
@@ -4251,7 +4254,7 @@ YY_RULE_SETUP
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 1320 "dhcp4_lexer.ll"
+#line 1323 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
@@ -4265,7 +4268,7 @@ YY_RULE_SETUP
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 1331 "dhcp4_lexer.ll"
+#line 1334 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
@@ -4279,7 +4282,7 @@ YY_RULE_SETUP
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 1342 "dhcp4_lexer.ll"
+#line 1345 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
@@ -4294,7 +4297,7 @@ YY_RULE_SETUP
YY_BREAK
case 124:
YY_RULE_SETUP
-#line 1354 "dhcp4_lexer.ll"
+#line 1357 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -4306,7 +4309,7 @@ YY_RULE_SETUP
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 1363 "dhcp4_lexer.ll"
+#line 1366 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -4318,7 +4321,7 @@ YY_RULE_SETUP
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 1372 "dhcp4_lexer.ll"
+#line 1375 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -4330,7 +4333,7 @@ YY_RULE_SETUP
YY_BREAK
case 127:
YY_RULE_SETUP
-#line 1381 "dhcp4_lexer.ll"
+#line 1384 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CLIENT_CLASSES:
@@ -4342,7 +4345,7 @@ YY_RULE_SETUP
YY_BREAK
case 128:
YY_RULE_SETUP
-#line 1390 "dhcp4_lexer.ll"
+#line 1393 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4355,7 +4358,7 @@ YY_RULE_SETUP
YY_BREAK
case 129:
YY_RULE_SETUP
-#line 1400 "dhcp4_lexer.ll"
+#line 1403 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4368,7 +4371,7 @@ YY_RULE_SETUP
YY_BREAK
case 130:
YY_RULE_SETUP
-#line 1410 "dhcp4_lexer.ll"
+#line 1413 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4381,7 +4384,7 @@ YY_RULE_SETUP
YY_BREAK
case 131:
YY_RULE_SETUP
-#line 1420 "dhcp4_lexer.ll"
+#line 1423 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4394,7 +4397,7 @@ YY_RULE_SETUP
YY_BREAK
case 132:
YY_RULE_SETUP
-#line 1430 "dhcp4_lexer.ll"
+#line 1433 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4407,7 +4410,7 @@ YY_RULE_SETUP
YY_BREAK
case 133:
YY_RULE_SETUP
-#line 1440 "dhcp4_lexer.ll"
+#line 1443 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
@@ -4420,7 +4423,7 @@ YY_RULE_SETUP
YY_BREAK
case 134:
YY_RULE_SETUP
-#line 1450 "dhcp4_lexer.ll"
+#line 1453 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -4432,7 +4435,7 @@ YY_RULE_SETUP
YY_BREAK
case 135:
YY_RULE_SETUP
-#line 1459 "dhcp4_lexer.ll"
+#line 1462 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -4445,7 +4448,7 @@ YY_RULE_SETUP
YY_BREAK
case 136:
YY_RULE_SETUP
-#line 1469 "dhcp4_lexer.ll"
+#line 1472 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DATA:
@@ -4457,7 +4460,7 @@ YY_RULE_SETUP
YY_BREAK
case 137:
YY_RULE_SETUP
-#line 1478 "dhcp4_lexer.ll"
+#line 1481 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -4469,7 +4472,7 @@ YY_RULE_SETUP
YY_BREAK
case 138:
YY_RULE_SETUP
-#line 1487 "dhcp4_lexer.ll"
+#line 1490 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -4481,7 +4484,7 @@ YY_RULE_SETUP
YY_BREAK
case 139:
YY_RULE_SETUP
-#line 1496 "dhcp4_lexer.ll"
+#line 1499 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::OPTION_DEF:
@@ -4493,7 +4496,7 @@ YY_RULE_SETUP
YY_BREAK
case 140:
YY_RULE_SETUP
-#line 1505 "dhcp4_lexer.ll"
+#line 1508 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
@@ -4506,7 +4509,7 @@ YY_RULE_SETUP
YY_BREAK
case 141:
YY_RULE_SETUP
-#line 1515 "dhcp4_lexer.ll"
+#line 1518 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RESERVATIONS:
@@ -4518,7 +4521,7 @@ YY_RULE_SETUP
YY_BREAK
case 142:
YY_RULE_SETUP
-#line 1524 "dhcp4_lexer.ll"
+#line 1527 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::RELAY:
@@ -4530,7 +4533,7 @@ YY_RULE_SETUP
YY_BREAK
case 143:
YY_RULE_SETUP
-#line 1533 "dhcp4_lexer.ll"
+#line 1536 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4542,7 +4545,7 @@ YY_RULE_SETUP
YY_BREAK
case 144:
YY_RULE_SETUP
-#line 1542 "dhcp4_lexer.ll"
+#line 1545 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -4554,7 +4557,7 @@ YY_RULE_SETUP
YY_BREAK
case 145:
YY_RULE_SETUP
-#line 1551 "dhcp4_lexer.ll"
+#line 1554 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
@@ -4566,7 +4569,7 @@ YY_RULE_SETUP
YY_BREAK
case 146:
YY_RULE_SETUP
-#line 1560 "dhcp4_lexer.ll"
+#line 1563 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4578,7 +4581,7 @@ YY_RULE_SETUP
YY_BREAK
case 147:
YY_RULE_SETUP
-#line 1569 "dhcp4_lexer.ll"
+#line 1572 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4590,7 +4593,7 @@ YY_RULE_SETUP
YY_BREAK
case 148:
YY_RULE_SETUP
-#line 1578 "dhcp4_lexer.ll"
+#line 1581 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4602,7 +4605,7 @@ YY_RULE_SETUP
YY_BREAK
case 149:
YY_RULE_SETUP
-#line 1587 "dhcp4_lexer.ll"
+#line 1590 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4614,7 +4617,7 @@ YY_RULE_SETUP
YY_BREAK
case 150:
YY_RULE_SETUP
-#line 1596 "dhcp4_lexer.ll"
+#line 1599 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4626,7 +4629,7 @@ YY_RULE_SETUP
YY_BREAK
case 151:
YY_RULE_SETUP
-#line 1605 "dhcp4_lexer.ll"
+#line 1608 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4638,7 +4641,7 @@ YY_RULE_SETUP
YY_BREAK
case 152:
YY_RULE_SETUP
-#line 1614 "dhcp4_lexer.ll"
+#line 1617 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
@@ -4650,7 +4653,7 @@ YY_RULE_SETUP
YY_BREAK
case 153:
YY_RULE_SETUP
-#line 1623 "dhcp4_lexer.ll"
+#line 1626 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4662,7 +4665,7 @@ YY_RULE_SETUP
YY_BREAK
case 154:
YY_RULE_SETUP
-#line 1632 "dhcp4_lexer.ll"
+#line 1635 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4674,7 +4677,7 @@ YY_RULE_SETUP
YY_BREAK
case 155:
YY_RULE_SETUP
-#line 1641 "dhcp4_lexer.ll"
+#line 1644 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4686,7 +4689,7 @@ YY_RULE_SETUP
YY_BREAK
case 156:
YY_RULE_SETUP
-#line 1650 "dhcp4_lexer.ll"
+#line 1653 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4698,7 +4701,7 @@ YY_RULE_SETUP
YY_BREAK
case 157:
YY_RULE_SETUP
-#line 1659 "dhcp4_lexer.ll"
+#line 1662 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_MULTI_THREADING:
@@ -4710,7 +4713,7 @@ YY_RULE_SETUP
YY_BREAK
case 158:
YY_RULE_SETUP
-#line 1668 "dhcp4_lexer.ll"
+#line 1671 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4722,7 +4725,7 @@ YY_RULE_SETUP
YY_BREAK
case 159:
YY_RULE_SETUP
-#line 1677 "dhcp4_lexer.ll"
+#line 1680 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4734,7 +4737,7 @@ YY_RULE_SETUP
YY_BREAK
case 160:
YY_RULE_SETUP
-#line 1686 "dhcp4_lexer.ll"
+#line 1689 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4746,7 +4749,7 @@ YY_RULE_SETUP
YY_BREAK
case 161:
YY_RULE_SETUP
-#line 1695 "dhcp4_lexer.ll"
+#line 1698 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE:
@@ -4758,7 +4761,7 @@ YY_RULE_SETUP
YY_BREAK
case 162:
YY_RULE_SETUP
-#line 1704 "dhcp4_lexer.ll"
+#line 1707 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE:
@@ -4770,7 +4773,7 @@ YY_RULE_SETUP
YY_BREAK
case 163:
YY_RULE_SETUP
-#line 1713 "dhcp4_lexer.ll"
+#line 1716 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET_TYPE:
@@ -4782,7 +4785,7 @@ YY_RULE_SETUP
YY_BREAK
case 164:
YY_RULE_SETUP
-#line 1722 "dhcp4_lexer.ll"
+#line 1725 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4794,7 +4797,7 @@ YY_RULE_SETUP
YY_BREAK
case 165:
YY_RULE_SETUP
-#line 1731 "dhcp4_lexer.ll"
+#line 1734 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4806,7 +4809,7 @@ YY_RULE_SETUP
YY_BREAK
case 166:
YY_RULE_SETUP
-#line 1740 "dhcp4_lexer.ll"
+#line 1743 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4818,7 +4821,7 @@ YY_RULE_SETUP
YY_BREAK
case 167:
YY_RULE_SETUP
-#line 1749 "dhcp4_lexer.ll"
+#line 1752 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4830,7 +4833,7 @@ YY_RULE_SETUP
YY_BREAK
case 168:
YY_RULE_SETUP
-#line 1758 "dhcp4_lexer.ll"
+#line 1761 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::AUTH_TYPE:
@@ -4842,7 +4845,7 @@ YY_RULE_SETUP
YY_BREAK
case 169:
YY_RULE_SETUP
-#line 1767 "dhcp4_lexer.ll"
+#line 1770 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::AUTHENTICATION:
@@ -4854,7 +4857,7 @@ YY_RULE_SETUP
YY_BREAK
case 170:
YY_RULE_SETUP
-#line 1776 "dhcp4_lexer.ll"
+#line 1779 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::AUTHENTICATION:
@@ -4866,7 +4869,7 @@ YY_RULE_SETUP
YY_BREAK
case 171:
YY_RULE_SETUP
-#line 1785 "dhcp4_lexer.ll"
+#line 1788 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::AUTHENTICATION:
@@ -4878,7 +4881,7 @@ YY_RULE_SETUP
YY_BREAK
case 172:
YY_RULE_SETUP
-#line 1794 "dhcp4_lexer.ll"
+#line 1797 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CLIENTS:
@@ -4890,7 +4893,7 @@ YY_RULE_SETUP
YY_BREAK
case 173:
YY_RULE_SETUP
-#line 1803 "dhcp4_lexer.ll"
+#line 1806 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CLIENTS:
@@ -4902,7 +4905,7 @@ YY_RULE_SETUP
YY_BREAK
case 174:
YY_RULE_SETUP
-#line 1812 "dhcp4_lexer.ll"
+#line 1815 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4914,7 +4917,7 @@ YY_RULE_SETUP
YY_BREAK
case 175:
YY_RULE_SETUP
-#line 1821 "dhcp4_lexer.ll"
+#line 1824 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::CONTROL_SOCKET:
@@ -4926,7 +4929,7 @@ YY_RULE_SETUP
YY_BREAK
case 176:
YY_RULE_SETUP
-#line 1830 "dhcp4_lexer.ll"
+#line 1833 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::HTTP_HEADERS:
@@ -4938,7 +4941,7 @@ YY_RULE_SETUP
YY_BREAK
case 177:
YY_RULE_SETUP
-#line 1839 "dhcp4_lexer.ll"
+#line 1842 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4950,7 +4953,7 @@ YY_RULE_SETUP
YY_BREAK
case 178:
YY_RULE_SETUP
-#line 1848 "dhcp4_lexer.ll"
+#line 1851 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4962,7 +4965,7 @@ YY_RULE_SETUP
YY_BREAK
case 179:
YY_RULE_SETUP
-#line 1857 "dhcp4_lexer.ll"
+#line 1860 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4974,7 +4977,7 @@ YY_RULE_SETUP
YY_BREAK
case 180:
YY_RULE_SETUP
-#line 1866 "dhcp4_lexer.ll"
+#line 1869 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_QUEUE_CONTROL:
@@ -4986,7 +4989,7 @@ YY_RULE_SETUP
YY_BREAK
case 181:
YY_RULE_SETUP
-#line 1875 "dhcp4_lexer.ll"
+#line 1878 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -4998,7 +5001,7 @@ YY_RULE_SETUP
YY_BREAK
case 182:
YY_RULE_SETUP
-#line 1884 "dhcp4_lexer.ll"
+#line 1887 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5010,7 +5013,7 @@ YY_RULE_SETUP
YY_BREAK
case 183:
YY_RULE_SETUP
-#line 1893 "dhcp4_lexer.ll"
+#line 1896 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5022,7 +5025,7 @@ YY_RULE_SETUP
YY_BREAK
case 184:
YY_RULE_SETUP
-#line 1902 "dhcp4_lexer.ll"
+#line 1905 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5034,7 +5037,7 @@ YY_RULE_SETUP
YY_BREAK
case 185:
YY_RULE_SETUP
-#line 1911 "dhcp4_lexer.ll"
+#line 1914 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5046,7 +5049,7 @@ YY_RULE_SETUP
YY_BREAK
case 186:
YY_RULE_SETUP
-#line 1920 "dhcp4_lexer.ll"
+#line 1923 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5058,7 +5061,7 @@ YY_RULE_SETUP
YY_BREAK
case 187:
YY_RULE_SETUP
-#line 1929 "dhcp4_lexer.ll"
+#line 1932 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5070,7 +5073,7 @@ YY_RULE_SETUP
YY_BREAK
case 188:
YY_RULE_SETUP
-#line 1938 "dhcp4_lexer.ll"
+#line 1941 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5082,7 +5085,7 @@ YY_RULE_SETUP
YY_BREAK
case 189:
YY_RULE_SETUP
-#line 1947 "dhcp4_lexer.ll"
+#line 1950 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP_DDNS:
@@ -5094,7 +5097,7 @@ YY_RULE_SETUP
YY_BREAK
case 190:
YY_RULE_SETUP
-#line 1956 "dhcp4_lexer.ll"
+#line 1959 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5108,7 +5111,7 @@ YY_RULE_SETUP
YY_BREAK
case 191:
YY_RULE_SETUP
-#line 1967 "dhcp4_lexer.ll"
+#line 1970 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5122,7 +5125,7 @@ YY_RULE_SETUP
YY_BREAK
case 192:
YY_RULE_SETUP
-#line 1978 "dhcp4_lexer.ll"
+#line 1981 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -5135,7 +5138,7 @@ YY_RULE_SETUP
YY_BREAK
case 193:
YY_RULE_SETUP
-#line 1988 "dhcp4_lexer.ll"
+#line 1991 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
@@ -5148,7 +5151,7 @@ YY_RULE_SETUP
YY_BREAK
case 194:
YY_RULE_SETUP
-#line 1998 "dhcp4_lexer.ll"
+#line 2001 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
@@ -5161,7 +5164,7 @@ YY_RULE_SETUP
YY_BREAK
case 195:
YY_RULE_SETUP
-#line 2008 "dhcp4_lexer.ll"
+#line 2011 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5174,7 +5177,7 @@ YY_RULE_SETUP
YY_BREAK
case 196:
YY_RULE_SETUP
-#line 2018 "dhcp4_lexer.ll"
+#line 2021 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5187,7 +5190,7 @@ YY_RULE_SETUP
YY_BREAK
case 197:
YY_RULE_SETUP
-#line 2028 "dhcp4_lexer.ll"
+#line 2031 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5200,7 +5203,7 @@ YY_RULE_SETUP
YY_BREAK
case 198:
YY_RULE_SETUP
-#line 2038 "dhcp4_lexer.ll"
+#line 2041 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5213,7 +5216,7 @@ YY_RULE_SETUP
YY_BREAK
case 199:
YY_RULE_SETUP
-#line 2048 "dhcp4_lexer.ll"
+#line 2051 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5226,7 +5229,7 @@ YY_RULE_SETUP
YY_BREAK
case 200:
YY_RULE_SETUP
-#line 2058 "dhcp4_lexer.ll"
+#line 2061 "dhcp4_lexer.ll"
{
/* dhcp-ddns value keywords are case insensitive */
if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
@@ -5239,7 +5242,7 @@ YY_RULE_SETUP
YY_BREAK
case 201:
YY_RULE_SETUP
-#line 2068 "dhcp4_lexer.ll"
+#line 2071 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
@@ -5251,7 +5254,7 @@ YY_RULE_SETUP
YY_BREAK
case 202:
YY_RULE_SETUP
-#line 2077 "dhcp4_lexer.ll"
+#line 2080 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
@@ -5263,7 +5266,7 @@ YY_RULE_SETUP
YY_BREAK
case 203:
YY_RULE_SETUP
-#line 2086 "dhcp4_lexer.ll"
+#line 2089 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::SUBNET4:
@@ -5275,7 +5278,7 @@ YY_RULE_SETUP
YY_BREAK
case 204:
YY_RULE_SETUP
-#line 2095 "dhcp4_lexer.ll"
+#line 2098 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5287,7 +5290,7 @@ YY_RULE_SETUP
YY_BREAK
case 205:
YY_RULE_SETUP
-#line 2104 "dhcp4_lexer.ll"
+#line 2107 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5301,7 +5304,7 @@ YY_RULE_SETUP
YY_BREAK
case 206:
YY_RULE_SETUP
-#line 2115 "dhcp4_lexer.ll"
+#line 2118 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5315,7 +5318,7 @@ YY_RULE_SETUP
YY_BREAK
case 207:
YY_RULE_SETUP
-#line 2126 "dhcp4_lexer.ll"
+#line 2129 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5331,7 +5334,7 @@ YY_RULE_SETUP
YY_BREAK
case 208:
YY_RULE_SETUP
-#line 2139 "dhcp4_lexer.ll"
+#line 2142 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5347,7 +5350,7 @@ YY_RULE_SETUP
YY_BREAK
case 209:
YY_RULE_SETUP
-#line 2152 "dhcp4_lexer.ll"
+#line 2155 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5363,7 +5366,7 @@ YY_RULE_SETUP
YY_BREAK
case 210:
YY_RULE_SETUP
-#line 2165 "dhcp4_lexer.ll"
+#line 2168 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5375,7 +5378,7 @@ YY_RULE_SETUP
YY_BREAK
case 211:
YY_RULE_SETUP
-#line 2174 "dhcp4_lexer.ll"
+#line 2177 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5387,7 +5390,7 @@ YY_RULE_SETUP
YY_BREAK
case 212:
YY_RULE_SETUP
-#line 2183 "dhcp4_lexer.ll"
+#line 2186 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5399,7 +5402,7 @@ YY_RULE_SETUP
YY_BREAK
case 213:
YY_RULE_SETUP
-#line 2192 "dhcp4_lexer.ll"
+#line 2195 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5411,7 +5414,7 @@ YY_RULE_SETUP
YY_BREAK
case 214:
YY_RULE_SETUP
-#line 2201 "dhcp4_lexer.ll"
+#line 2204 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5423,7 +5426,7 @@ YY_RULE_SETUP
YY_BREAK
case 215:
YY_RULE_SETUP
-#line 2210 "dhcp4_lexer.ll"
+#line 2213 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5435,7 +5438,7 @@ YY_RULE_SETUP
YY_BREAK
case 216:
YY_RULE_SETUP
-#line 2219 "dhcp4_lexer.ll"
+#line 2222 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5447,7 +5450,7 @@ YY_RULE_SETUP
YY_BREAK
case 217:
YY_RULE_SETUP
-#line 2228 "dhcp4_lexer.ll"
+#line 2231 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::COMPATIBILITY:
@@ -5459,7 +5462,7 @@ YY_RULE_SETUP
YY_BREAK
case 218:
YY_RULE_SETUP
-#line 2237 "dhcp4_lexer.ll"
+#line 2240 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5474,7 +5477,7 @@ YY_RULE_SETUP
YY_BREAK
case 219:
YY_RULE_SETUP
-#line 2249 "dhcp4_lexer.ll"
+#line 2252 "dhcp4_lexer.ll"
{
switch(driver.ctx_) {
case isc::dhcp::Parser4Context::DHCP4:
@@ -5486,7 +5489,7 @@ YY_RULE_SETUP
YY_BREAK
case 220:
YY_RULE_SETUP
-#line 2258 "dhcp4_lexer.ll"
+#line 2261 "dhcp4_lexer.ll"
{
/* A string has been matched. It contains the actual string and single quotes.
We need to get those quotes out of the way and just use its content, e.g.
@@ -5591,7 +5594,7 @@ YY_RULE_SETUP
case 221:
/* rule 221 can match eol */
YY_RULE_SETUP
-#line 2359 "dhcp4_lexer.ll"
+#line 2362 "dhcp4_lexer.ll"
{
/* Bad string with a forbidden control character inside */
std::string raw(yytext+1);
@@ -5611,7 +5614,7 @@ YY_RULE_SETUP
case 222:
/* rule 222 can match eol */
YY_RULE_SETUP
-#line 2375 "dhcp4_lexer.ll"
+#line 2378 "dhcp4_lexer.ll"
{
/* Bad string with a bad escape inside */
std::string raw(yytext+1);
@@ -5663,7 +5666,7 @@ YY_RULE_SETUP
YY_BREAK
case 223:
YY_RULE_SETUP
-#line 2424 "dhcp4_lexer.ll"
+#line 2427 "dhcp4_lexer.ll"
{
/* Bad string with an open escape at the end */
std::string raw(yytext+1);
@@ -5674,7 +5677,7 @@ YY_RULE_SETUP
YY_BREAK
case 224:
YY_RULE_SETUP
-#line 2432 "dhcp4_lexer.ll"
+#line 2435 "dhcp4_lexer.ll"
{
/* Bad string with an open unicode escape at the end */
std::string raw(yytext+1);
@@ -5692,37 +5695,37 @@ YY_RULE_SETUP
YY_BREAK
case 225:
YY_RULE_SETUP
-#line 2447 "dhcp4_lexer.ll"
+#line 2450 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
YY_BREAK
case 226:
YY_RULE_SETUP
-#line 2448 "dhcp4_lexer.ll"
+#line 2451 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
YY_BREAK
case 227:
YY_RULE_SETUP
-#line 2449 "dhcp4_lexer.ll"
+#line 2452 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
YY_BREAK
case 228:
YY_RULE_SETUP
-#line 2450 "dhcp4_lexer.ll"
+#line 2453 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
YY_BREAK
case 229:
YY_RULE_SETUP
-#line 2451 "dhcp4_lexer.ll"
+#line 2454 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
YY_BREAK
case 230:
YY_RULE_SETUP
-#line 2452 "dhcp4_lexer.ll"
+#line 2455 "dhcp4_lexer.ll"
{ return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
YY_BREAK
case 231:
YY_RULE_SETUP
-#line 2454 "dhcp4_lexer.ll"
+#line 2457 "dhcp4_lexer.ll"
{
/* An integer was found. */
std::string tmp(yytext);
@@ -5743,7 +5746,7 @@ YY_RULE_SETUP
YY_BREAK
case 232:
YY_RULE_SETUP
-#line 2472 "dhcp4_lexer.ll"
+#line 2475 "dhcp4_lexer.ll"
{
/* A floating point was found. */
std::string tmp(yytext);
@@ -5759,7 +5762,7 @@ YY_RULE_SETUP
YY_BREAK
case 233:
YY_RULE_SETUP
-#line 2485 "dhcp4_lexer.ll"
+#line 2488 "dhcp4_lexer.ll"
{
string tmp(yytext);
return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -5767,33 +5770,33 @@ YY_RULE_SETUP
YY_BREAK
case 234:
YY_RULE_SETUP
-#line 2490 "dhcp4_lexer.ll"
+#line 2493 "dhcp4_lexer.ll"
{
return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
}
YY_BREAK
case 235:
YY_RULE_SETUP
-#line 2494 "dhcp4_lexer.ll"
+#line 2497 "dhcp4_lexer.ll"
driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
YY_BREAK
case 236:
YY_RULE_SETUP
-#line 2496 "dhcp4_lexer.ll"
+#line 2499 "dhcp4_lexer.ll"
driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
YY_BREAK
case 237:
YY_RULE_SETUP
-#line 2498 "dhcp4_lexer.ll"
+#line 2501 "dhcp4_lexer.ll"
driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
YY_BREAK
case 238:
YY_RULE_SETUP
-#line 2500 "dhcp4_lexer.ll"
+#line 2503 "dhcp4_lexer.ll"
driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 2502 "dhcp4_lexer.ll"
+#line 2505 "dhcp4_lexer.ll"
{
if (driver.states_.empty()) {
return isc::dhcp::Dhcp4Parser::make_END(driver.loc_);
@@ -5819,10 +5822,10 @@ case YY_STATE_EOF(INITIAL):
YY_BREAK
case 239:
YY_RULE_SETUP
-#line 2525 "dhcp4_lexer.ll"
+#line 2528 "dhcp4_lexer.ll"
ECHO;
YY_BREAK
-#line 5825 "dhcp4_lexer.cc"
+#line 5829 "dhcp4_lexer.cc"
case YY_END_OF_BUFFER:
{
@@ -6927,7 +6930,7 @@ void yyfree (void * ptr )
/* %ok-for-header */
-#line 2525 "dhcp4_lexer.ll"
+#line 2528 "dhcp4_lexer.ll"
using namespace isc::dhcp;
diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll
index 4d342f6294..4ead586811 100644
--- a/src/bin/dhcp4/dhcp4_lexer.ll
+++ b/src/bin/dhcp4/dhcp4_lexer.ll
@@ -1310,6 +1310,9 @@ ControlCharacterFill [^"\\]|\\["\\/bfnrtu]
case isc::dhcp::Parser4Context::DHCP4:
case isc::dhcp::Parser4Context::RESERVATIONS:
case isc::dhcp::Parser4Context::OPTION_DATA:
+ case isc::dhcp::Parser4Context::SUBNET4:
+ case isc::dhcp::Parser4Context::POOLS:
+ case isc::dhcp::Parser4Context::SHARED_NETWORK:
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 10d87d0bc0..990e3193c0 100644
--- a/src/bin/dhcp4/dhcp4_parser.cc
+++ b/src/bin/dhcp4/dhcp4_parser.cc
@@ -2775,8 +2775,8 @@ namespace isc { namespace dhcp {
#line 2776 "dhcp4_parser.cc"
break;
- case 439: // $@61: %empty
-#line 1646 "dhcp4_parser.yy"
+ case 440: // $@61: %empty
+#line 1647 "dhcp4_parser.yy"
{
ctx.unique("subnet", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
@@ -2784,8 +2784,8 @@ namespace isc { namespace dhcp {
#line 2785 "dhcp4_parser.cc"
break;
- case 440: // subnet: "subnet" $@61 ":" "constant string"
-#line 1649 "dhcp4_parser.yy"
+ case 441: // subnet: "subnet" $@61 ":" "constant string"
+#line 1650 "dhcp4_parser.yy"
{
ElementPtr subnet(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("subnet", subnet);
@@ -2794,8 +2794,8 @@ namespace isc { namespace dhcp {
#line 2795 "dhcp4_parser.cc"
break;
- case 441: // $@62: %empty
-#line 1655 "dhcp4_parser.yy"
+ case 442: // $@62: %empty
+#line 1656 "dhcp4_parser.yy"
{
ctx.unique("4o6-interface", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
@@ -2803,8 +2803,8 @@ namespace isc { namespace dhcp {
#line 2804 "dhcp4_parser.cc"
break;
- case 442: // subnet_4o6_interface: "4o6-interface" $@62 ":" "constant string"
-#line 1658 "dhcp4_parser.yy"
+ case 443: // subnet_4o6_interface: "4o6-interface" $@62 ":" "constant string"
+#line 1659 "dhcp4_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-interface", iface);
@@ -2813,8 +2813,8 @@ namespace isc { namespace dhcp {
#line 2814 "dhcp4_parser.cc"
break;
- case 443: // $@63: %empty
-#line 1664 "dhcp4_parser.yy"
+ case 444: // $@63: %empty
+#line 1665 "dhcp4_parser.yy"
{
ctx.unique("4o6-interface-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
@@ -2822,8 +2822,8 @@ namespace isc { namespace dhcp {
#line 2823 "dhcp4_parser.cc"
break;
- case 444: // subnet_4o6_interface_id: "4o6-interface-id" $@63 ":" "constant string"
-#line 1667 "dhcp4_parser.yy"
+ case 445: // subnet_4o6_interface_id: "4o6-interface-id" $@63 ":" "constant string"
+#line 1668 "dhcp4_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-interface-id", iface);
@@ -2832,8 +2832,8 @@ namespace isc { namespace dhcp {
#line 2833 "dhcp4_parser.cc"
break;
- case 445: // $@64: %empty
-#line 1673 "dhcp4_parser.yy"
+ case 446: // $@64: %empty
+#line 1674 "dhcp4_parser.yy"
{
ctx.unique("4o6-subnet", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
@@ -2841,8 +2841,8 @@ namespace isc { namespace dhcp {
#line 2842 "dhcp4_parser.cc"
break;
- case 446: // subnet_4o6_subnet: "4o6-subnet" $@64 ":" "constant string"
-#line 1676 "dhcp4_parser.yy"
+ case 447: // subnet_4o6_subnet: "4o6-subnet" $@64 ":" "constant string"
+#line 1677 "dhcp4_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("4o6-subnet", iface);
@@ -2851,8 +2851,8 @@ namespace isc { namespace dhcp {
#line 2852 "dhcp4_parser.cc"
break;
- case 447: // $@65: %empty
-#line 1682 "dhcp4_parser.yy"
+ case 448: // $@65: %empty
+#line 1683 "dhcp4_parser.yy"
{
ctx.unique("interface", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
@@ -2860,8 +2860,8 @@ namespace isc { namespace dhcp {
#line 2861 "dhcp4_parser.cc"
break;
- case 448: // interface: "interface" $@65 ":" "constant string"
-#line 1685 "dhcp4_parser.yy"
+ case 449: // interface: "interface" $@65 ":" "constant string"
+#line 1686 "dhcp4_parser.yy"
{
ElementPtr iface(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("interface", iface);
@@ -2870,8 +2870,8 @@ namespace isc { namespace dhcp {
#line 2871 "dhcp4_parser.cc"
break;
- case 449: // $@66: %empty
-#line 1691 "dhcp4_parser.yy"
+ case 450: // $@66: %empty
+#line 1692 "dhcp4_parser.yy"
{
ctx.unique("client-class", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
@@ -2879,8 +2879,8 @@ namespace isc { namespace dhcp {
#line 2880 "dhcp4_parser.cc"
break;
- case 450: // client_class: "client-class" $@66 ":" "constant string"
-#line 1694 "dhcp4_parser.yy"
+ case 451: // client_class: "client-class" $@66 ":" "constant string"
+#line 1695 "dhcp4_parser.yy"
{
ElementPtr cls(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("client-class", cls);
@@ -2889,8 +2889,29 @@ namespace isc { namespace dhcp {
#line 2890 "dhcp4_parser.cc"
break;
- case 451: // $@67: %empty
-#line 1701 "dhcp4_parser.yy"
+ case 452: // $@67: %empty
+#line 1702 "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 2902 "dhcp4_parser.cc"
+ break;
+
+ case 453: // network_client_classes: "client-classes" $@67 ":" list_strings
+#line 1708 "dhcp4_parser.yy"
+ {
+ ctx.stack_.pop_back();
+ ctx.leave();
+}
+#line 2911 "dhcp4_parser.cc"
+ break;
+
+ case 454: // $@68: %empty
+#line 1714 "dhcp4_parser.yy"
{
ctx.unique("require-client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2898,20 +2919,20 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2902 "dhcp4_parser.cc"
+#line 2923 "dhcp4_parser.cc"
break;
- case 452: // require_client_classes: "require-client-classes" $@67 ":" list_strings
-#line 1707 "dhcp4_parser.yy"
+ case 455: // require_client_classes: "require-client-classes" $@68 ":" list_strings
+#line 1720 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2911 "dhcp4_parser.cc"
+#line 2932 "dhcp4_parser.cc"
break;
- case 453: // $@68: %empty
-#line 1712 "dhcp4_parser.yy"
+ case 456: // $@69: %empty
+#line 1725 "dhcp4_parser.yy"
{
ctx.unique("evaluate-additional-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2919,60 +2940,60 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 2923 "dhcp4_parser.cc"
+#line 2944 "dhcp4_parser.cc"
break;
- case 454: // evaluate_additional_classes: "evaluate-additional-classes" $@68 ":" list_strings
-#line 1718 "dhcp4_parser.yy"
+ case 457: // evaluate_additional_classes: "evaluate-additional-classes" $@69 ":" list_strings
+#line 1731 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2932 "dhcp4_parser.cc"
+#line 2953 "dhcp4_parser.cc"
break;
- case 455: // reservations_global: "reservations-global" ":" "boolean"
-#line 1723 "dhcp4_parser.yy"
+ case 458: // reservations_global: "reservations-global" ":" "boolean"
+#line 1736 "dhcp4_parser.yy"
{
ctx.unique("reservations-global", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-global", b);
}
-#line 2942 "dhcp4_parser.cc"
+#line 2963 "dhcp4_parser.cc"
break;
- case 456: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean"
-#line 1729 "dhcp4_parser.yy"
+ case 459: // reservations_in_subnet: "reservations-in-subnet" ":" "boolean"
+#line 1742 "dhcp4_parser.yy"
{
ctx.unique("reservations-in-subnet", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-in-subnet", b);
}
-#line 2952 "dhcp4_parser.cc"
+#line 2973 "dhcp4_parser.cc"
break;
- case 457: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean"
-#line 1735 "dhcp4_parser.yy"
+ case 460: // reservations_out_of_pool: "reservations-out-of-pool" ":" "boolean"
+#line 1748 "dhcp4_parser.yy"
{
ctx.unique("reservations-out-of-pool", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("reservations-out-of-pool", b);
}
-#line 2962 "dhcp4_parser.cc"
+#line 2983 "dhcp4_parser.cc"
break;
- case 458: // id: "id" ":" "integer"
-#line 1741 "dhcp4_parser.yy"
+ case 461: // id: "id" ":" "integer"
+#line 1754 "dhcp4_parser.yy"
{
ctx.unique("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("id", id);
}
-#line 2972 "dhcp4_parser.cc"
+#line 2993 "dhcp4_parser.cc"
break;
- case 459: // $@69: %empty
-#line 1749 "dhcp4_parser.yy"
+ case 462: // $@70: %empty
+#line 1762 "dhcp4_parser.yy"
{
ctx.unique("shared-networks", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -2980,54 +3001,54 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.SHARED_NETWORK);
}
-#line 2984 "dhcp4_parser.cc"
+#line 3005 "dhcp4_parser.cc"
break;
- case 460: // shared_networks: "shared-networks" $@69 ":" "[" shared_networks_content "]"
-#line 1755 "dhcp4_parser.yy"
+ case 463: // shared_networks: "shared-networks" $@70 ":" "[" shared_networks_content "]"
+#line 1768 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 2993 "dhcp4_parser.cc"
+#line 3014 "dhcp4_parser.cc"
break;
- case 465: // shared_networks_list: shared_networks_list ","
-#line 1768 "dhcp4_parser.yy"
+ case 468: // shared_networks_list: shared_networks_list ","
+#line 1781 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3001 "dhcp4_parser.cc"
+#line 3022 "dhcp4_parser.cc"
break;
- case 466: // $@70: %empty
-#line 1773 "dhcp4_parser.yy"
+ case 469: // $@71: %empty
+#line 1786 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3011 "dhcp4_parser.cc"
+#line 3032 "dhcp4_parser.cc"
break;
- case 467: // shared_network: "{" $@70 shared_network_params "}"
-#line 1777 "dhcp4_parser.yy"
+ case 470: // shared_network: "{" $@71 shared_network_params "}"
+#line 1790 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 3019 "dhcp4_parser.cc"
+#line 3040 "dhcp4_parser.cc"
break;
- case 470: // shared_network_params: shared_network_params ","
-#line 1783 "dhcp4_parser.yy"
+ case 473: // shared_network_params: shared_network_params ","
+#line 1796 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3027 "dhcp4_parser.cc"
+#line 3048 "dhcp4_parser.cc"
break;
- case 515: // $@71: %empty
-#line 1838 "dhcp4_parser.yy"
+ case 519: // $@72: %empty
+#line 1852 "dhcp4_parser.yy"
{
ctx.unique("option-def", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3035,55 +3056,55 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DEF);
}
-#line 3039 "dhcp4_parser.cc"
+#line 3060 "dhcp4_parser.cc"
break;
- case 516: // option_def_list: "option-def" $@71 ":" "[" option_def_list_content "]"
-#line 1844 "dhcp4_parser.yy"
+ case 520: // option_def_list: "option-def" $@72 ":" "[" option_def_list_content "]"
+#line 1858 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3048 "dhcp4_parser.cc"
+#line 3069 "dhcp4_parser.cc"
break;
- case 517: // $@72: %empty
-#line 1852 "dhcp4_parser.yy"
+ case 521: // $@73: %empty
+#line 1866 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3057 "dhcp4_parser.cc"
+#line 3078 "dhcp4_parser.cc"
break;
- case 518: // sub_option_def_list: "{" $@72 option_def_list "}"
-#line 1855 "dhcp4_parser.yy"
+ case 522: // sub_option_def_list: "{" $@73 option_def_list "}"
+#line 1869 "dhcp4_parser.yy"
{
// parsing completed
}
-#line 3065 "dhcp4_parser.cc"
+#line 3086 "dhcp4_parser.cc"
break;
- case 523: // not_empty_option_def_list: not_empty_option_def_list ","
-#line 1867 "dhcp4_parser.yy"
+ case 527: // not_empty_option_def_list: not_empty_option_def_list ","
+#line 1881 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3073 "dhcp4_parser.cc"
+#line 3094 "dhcp4_parser.cc"
break;
- case 524: // $@73: %empty
-#line 1874 "dhcp4_parser.yy"
+ case 528: // $@74: %empty
+#line 1888 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3083 "dhcp4_parser.cc"
+#line 3104 "dhcp4_parser.cc"
break;
- case 525: // option_def_entry: "{" $@73 option_def_params "}"
-#line 1878 "dhcp4_parser.yy"
+ case 529: // option_def_entry: "{" $@74 option_def_params "}"
+#line 1892 "dhcp4_parser.yy"
{
// The name, code and type option def parameters are required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3091,21 +3112,21 @@ namespace isc { namespace dhcp {
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
ctx.stack_.pop_back();
}
-#line 3095 "dhcp4_parser.cc"
+#line 3116 "dhcp4_parser.cc"
break;
- case 526: // $@74: %empty
-#line 1889 "dhcp4_parser.yy"
+ case 530: // $@75: %empty
+#line 1903 "dhcp4_parser.yy"
{
// Parse the option-def list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3105 "dhcp4_parser.cc"
+#line 3126 "dhcp4_parser.cc"
break;
- case 527: // sub_option_def: "{" $@74 option_def_params "}"
-#line 1893 "dhcp4_parser.yy"
+ case 531: // sub_option_def: "{" $@75 option_def_params "}"
+#line 1907 "dhcp4_parser.yy"
{
// The name, code and type option def parameters are required.
ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
@@ -3113,115 +3134,115 @@ namespace isc { namespace dhcp {
ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 3117 "dhcp4_parser.cc"
+#line 3138 "dhcp4_parser.cc"
break;
- case 532: // not_empty_option_def_params: not_empty_option_def_params ","
-#line 1909 "dhcp4_parser.yy"
+ case 536: // not_empty_option_def_params: not_empty_option_def_params ","
+#line 1923 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3125 "dhcp4_parser.cc"
+#line 3146 "dhcp4_parser.cc"
break;
- case 544: // code: "code" ":" "integer"
-#line 1928 "dhcp4_parser.yy"
+ case 548: // code: "code" ":" "integer"
+#line 1942 "dhcp4_parser.yy"
{
ctx.unique("code", ctx.loc2pos(yystack_[2].location));
ElementPtr code(new IntElement(yystack_[0].value.as < int64_t > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("code", code);
}
-#line 3135 "dhcp4_parser.cc"
+#line 3156 "dhcp4_parser.cc"
break;
- case 546: // $@75: %empty
-#line 1936 "dhcp4_parser.yy"
+ case 550: // $@76: %empty
+#line 1950 "dhcp4_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3144 "dhcp4_parser.cc"
+#line 3165 "dhcp4_parser.cc"
break;
- case 547: // option_def_type: "type" $@75 ":" "constant string"
-#line 1939 "dhcp4_parser.yy"
+ case 551: // option_def_type: "type" $@76 ":" "constant string"
+#line 1953 "dhcp4_parser.yy"
{
ElementPtr prf(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("type", prf);
ctx.leave();
}
-#line 3154 "dhcp4_parser.cc"
+#line 3175 "dhcp4_parser.cc"
break;
- case 548: // $@76: %empty
-#line 1945 "dhcp4_parser.yy"
+ case 552: // $@77: %empty
+#line 1959 "dhcp4_parser.yy"
{
ctx.unique("record-types", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3163 "dhcp4_parser.cc"
+#line 3184 "dhcp4_parser.cc"
break;
- case 549: // option_def_record_types: "record-types" $@76 ":" "constant string"
-#line 1948 "dhcp4_parser.yy"
+ case 553: // option_def_record_types: "record-types" $@77 ":" "constant string"
+#line 1962 "dhcp4_parser.yy"
{
ElementPtr rtypes(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("record-types", rtypes);
ctx.leave();
}
-#line 3173 "dhcp4_parser.cc"
+#line 3194 "dhcp4_parser.cc"
break;
- case 550: // $@77: %empty
-#line 1954 "dhcp4_parser.yy"
+ case 554: // $@78: %empty
+#line 1968 "dhcp4_parser.yy"
{
ctx.unique("space", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3182 "dhcp4_parser.cc"
+#line 3203 "dhcp4_parser.cc"
break;
- case 551: // space: "space" $@77 ":" "constant string"
-#line 1957 "dhcp4_parser.yy"
+ case 555: // space: "space" $@78 ":" "constant string"
+#line 1971 "dhcp4_parser.yy"
{
ElementPtr space(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("space", space);
ctx.leave();
}
-#line 3192 "dhcp4_parser.cc"
+#line 3213 "dhcp4_parser.cc"
break;
- case 553: // $@78: %empty
-#line 1965 "dhcp4_parser.yy"
+ case 557: // $@79: %empty
+#line 1979 "dhcp4_parser.yy"
{
ctx.unique("encapsulate", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3201 "dhcp4_parser.cc"
+#line 3222 "dhcp4_parser.cc"
break;
- case 554: // option_def_encapsulate: "encapsulate" $@78 ":" "constant string"
-#line 1968 "dhcp4_parser.yy"
+ case 558: // option_def_encapsulate: "encapsulate" $@79 ":" "constant string"
+#line 1982 "dhcp4_parser.yy"
{
ElementPtr encap(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("encapsulate", encap);
ctx.leave();
}
-#line 3211 "dhcp4_parser.cc"
+#line 3232 "dhcp4_parser.cc"
break;
- case 555: // option_def_array: "array" ":" "boolean"
-#line 1974 "dhcp4_parser.yy"
+ case 559: // option_def_array: "array" ":" "boolean"
+#line 1988 "dhcp4_parser.yy"
{
ctx.unique("array", ctx.loc2pos(yystack_[2].location));
ElementPtr array(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("array", array);
}
-#line 3221 "dhcp4_parser.cc"
+#line 3242 "dhcp4_parser.cc"
break;
- case 556: // $@79: %empty
-#line 1984 "dhcp4_parser.yy"
+ case 560: // $@80: %empty
+#line 1998 "dhcp4_parser.yy"
{
ctx.unique("option-data", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3229,123 +3250,123 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.OPTION_DATA);
}
-#line 3233 "dhcp4_parser.cc"
+#line 3254 "dhcp4_parser.cc"
break;
- case 557: // option_data_list: "option-data" $@79 ":" "[" option_data_list_content "]"
-#line 1990 "dhcp4_parser.yy"
+ case 561: // option_data_list: "option-data" $@80 ":" "[" option_data_list_content "]"
+#line 2004 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3242 "dhcp4_parser.cc"
+#line 3263 "dhcp4_parser.cc"
break;
- case 562: // not_empty_option_data_list: not_empty_option_data_list ","
-#line 2005 "dhcp4_parser.yy"
+ case 566: // not_empty_option_data_list: not_empty_option_data_list ","
+#line 2019 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3250 "dhcp4_parser.cc"
+#line 3271 "dhcp4_parser.cc"
break;
- case 563: // $@80: %empty
-#line 2012 "dhcp4_parser.yy"
+ case 567: // $@81: %empty
+#line 2026 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3260 "dhcp4_parser.cc"
+#line 3281 "dhcp4_parser.cc"
break;
- case 564: // option_data_entry: "{" $@80 option_data_params "}"
-#line 2016 "dhcp4_parser.yy"
+ case 568: // option_data_entry: "{" $@81 option_data_params "}"
+#line 2030 "dhcp4_parser.yy"
{
/// @todo: the code or name parameters are required.
ctx.stack_.pop_back();
}
-#line 3269 "dhcp4_parser.cc"
+#line 3290 "dhcp4_parser.cc"
break;
- case 565: // $@81: %empty
-#line 2024 "dhcp4_parser.yy"
+ case 569: // $@82: %empty
+#line 2038 "dhcp4_parser.yy"
{
// Parse the option-data list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3279 "dhcp4_parser.cc"
+#line 3300 "dhcp4_parser.cc"
break;
- case 566: // sub_option_data: "{" $@81 option_data_params "}"
-#line 2028 "dhcp4_parser.yy"
+ case 570: // sub_option_data: "{" $@82 option_data_params "}"
+#line 2042 "dhcp4_parser.yy"
{
/// @todo: the code or name parameters are required.
// parsing completed
}
-#line 3288 "dhcp4_parser.cc"
+#line 3309 "dhcp4_parser.cc"
break;
- case 571: // not_empty_option_data_params: not_empty_option_data_params ","
-#line 2044 "dhcp4_parser.yy"
+ case 575: // not_empty_option_data_params: not_empty_option_data_params ","
+#line 2058 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3296 "dhcp4_parser.cc"
+#line 3317 "dhcp4_parser.cc"
break;
- case 584: // $@82: %empty
-#line 2066 "dhcp4_parser.yy"
+ case 588: // $@83: %empty
+#line 2080 "dhcp4_parser.yy"
{
ctx.unique("data", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3305 "dhcp4_parser.cc"
+#line 3326 "dhcp4_parser.cc"
break;
- case 585: // option_data_data: "data" $@82 ":" "constant string"
-#line 2069 "dhcp4_parser.yy"
+ case 589: // option_data_data: "data" $@83 ":" "constant string"
+#line 2083 "dhcp4_parser.yy"
{
ElementPtr data(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("data", data);
ctx.leave();
}
-#line 3315 "dhcp4_parser.cc"
+#line 3336 "dhcp4_parser.cc"
break;
- case 588: // option_data_csv_format: "csv-format" ":" "boolean"
-#line 2079 "dhcp4_parser.yy"
+ case 592: // option_data_csv_format: "csv-format" ":" "boolean"
+#line 2093 "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)));
ctx.stack_.back()->set("csv-format", csv);
}
-#line 3325 "dhcp4_parser.cc"
+#line 3346 "dhcp4_parser.cc"
break;
- case 589: // option_data_always_send: "always-send" ":" "boolean"
-#line 2085 "dhcp4_parser.yy"
+ case 593: // option_data_always_send: "always-send" ":" "boolean"
+#line 2099 "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)));
ctx.stack_.back()->set("always-send", persist);
}
-#line 3335 "dhcp4_parser.cc"
+#line 3356 "dhcp4_parser.cc"
break;
- case 590: // option_data_never_send: "never-send" ":" "boolean"
-#line 2091 "dhcp4_parser.yy"
+ case 594: // option_data_never_send: "never-send" ":" "boolean"
+#line 2105 "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)));
ctx.stack_.back()->set("never-send", cancel);
}
-#line 3345 "dhcp4_parser.cc"
+#line 3366 "dhcp4_parser.cc"
break;
- case 591: // $@83: %empty
-#line 2097 "dhcp4_parser.yy"
+ case 595: // $@84: %empty
+#line 2111 "dhcp4_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3353,20 +3374,20 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3357 "dhcp4_parser.cc"
+#line 3378 "dhcp4_parser.cc"
break;
- case 592: // option_data_client_classes: "client-classes" $@83 ":" list_strings
-#line 2103 "dhcp4_parser.yy"
+ case 596: // option_data_client_classes: "client-classes" $@84 ":" list_strings
+#line 2117 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3366 "dhcp4_parser.cc"
+#line 3387 "dhcp4_parser.cc"
break;
- case 593: // $@84: %empty
-#line 2111 "dhcp4_parser.yy"
+ case 597: // $@85: %empty
+#line 2125 "dhcp4_parser.yy"
{
ctx.unique("pools", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3374,113 +3395,113 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.POOLS);
}
-#line 3378 "dhcp4_parser.cc"
+#line 3399 "dhcp4_parser.cc"
break;
- case 594: // pools_list: "pools" $@84 ":" "[" pools_list_content "]"
-#line 2117 "dhcp4_parser.yy"
+ case 598: // pools_list: "pools" $@85 ":" "[" pools_list_content "]"
+#line 2131 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3387 "dhcp4_parser.cc"
+#line 3408 "dhcp4_parser.cc"
break;
- case 599: // not_empty_pools_list: not_empty_pools_list ","
-#line 2130 "dhcp4_parser.yy"
+ case 603: // not_empty_pools_list: not_empty_pools_list ","
+#line 2144 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3395 "dhcp4_parser.cc"
+#line 3416 "dhcp4_parser.cc"
break;
- case 600: // $@85: %empty
-#line 2135 "dhcp4_parser.yy"
+ case 604: // $@86: %empty
+#line 2149 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3405 "dhcp4_parser.cc"
+#line 3426 "dhcp4_parser.cc"
break;
- case 601: // pool_list_entry: "{" $@85 pool_params "}"
-#line 2139 "dhcp4_parser.yy"
+ case 605: // pool_list_entry: "{" $@86 pool_params "}"
+#line 2153 "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 3415 "dhcp4_parser.cc"
+#line 3436 "dhcp4_parser.cc"
break;
- case 602: // $@86: %empty
-#line 2145 "dhcp4_parser.yy"
+ case 606: // $@87: %empty
+#line 2159 "dhcp4_parser.yy"
{
// Parse the pool list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3425 "dhcp4_parser.cc"
+#line 3446 "dhcp4_parser.cc"
break;
- case 603: // sub_pool4: "{" $@86 pool_params "}"
-#line 2149 "dhcp4_parser.yy"
+ case 607: // sub_pool4: "{" $@87 pool_params "}"
+#line 2163 "dhcp4_parser.yy"
{
// The pool parameter is required.
ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location));
// parsing completed
}
-#line 3435 "dhcp4_parser.cc"
+#line 3456 "dhcp4_parser.cc"
break;
- case 606: // pool_params: pool_params ","
-#line 2157 "dhcp4_parser.yy"
+ case 610: // pool_params: pool_params ","
+#line 2171 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3443 "dhcp4_parser.cc"
+#line 3464 "dhcp4_parser.cc"
break;
- case 616: // $@87: %empty
-#line 2173 "dhcp4_parser.yy"
+ case 621: // $@88: %empty
+#line 2188 "dhcp4_parser.yy"
{
ctx.unique("pool", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3452 "dhcp4_parser.cc"
+#line 3473 "dhcp4_parser.cc"
break;
- case 617: // pool_entry: "pool" $@87 ":" "constant string"
-#line 2176 "dhcp4_parser.yy"
+ case 622: // pool_entry: "pool" $@88 ":" "constant string"
+#line 2191 "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 3462 "dhcp4_parser.cc"
+#line 3483 "dhcp4_parser.cc"
break;
- case 618: // pool_id: "pool-id" ":" "integer"
-#line 2182 "dhcp4_parser.yy"
+ case 623: // pool_id: "pool-id" ":" "integer"
+#line 2197 "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 3472 "dhcp4_parser.cc"
+#line 3493 "dhcp4_parser.cc"
break;
- case 619: // $@88: %empty
-#line 2188 "dhcp4_parser.yy"
+ case 624: // $@89: %empty
+#line 2203 "dhcp4_parser.yy"
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3480 "dhcp4_parser.cc"
+#line 3501 "dhcp4_parser.cc"
break;
- case 620: // user_context: "user-context" $@88 ":" map_value
-#line 2190 "dhcp4_parser.yy"
+ case 625: // user_context: "user-context" $@89 ":" map_value
+#line 2205 "dhcp4_parser.yy"
{
ElementPtr parent = ctx.stack_.back();
ElementPtr user_context = yystack_[0].value.as < ElementPtr > ();
@@ -3503,19 +3524,19 @@ namespace isc { namespace dhcp {
parent->set("user-context", user_context);
ctx.leave();
}
-#line 3507 "dhcp4_parser.cc"
+#line 3528 "dhcp4_parser.cc"
break;
- case 621: // $@89: %empty
-#line 2213 "dhcp4_parser.yy"
+ case 626: // $@90: %empty
+#line 2228 "dhcp4_parser.yy"
{
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3515 "dhcp4_parser.cc"
+#line 3536 "dhcp4_parser.cc"
break;
- case 622: // comment: "comment" $@89 ":" "constant string"
-#line 2215 "dhcp4_parser.yy"
+ case 627: // comment: "comment" $@90 ":" "constant string"
+#line 2230 "dhcp4_parser.yy"
{
ElementPtr parent = ctx.stack_.back();
ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location)));
@@ -3540,11 +3561,11 @@ namespace isc { namespace dhcp {
parent->set("user-context", user_context);
ctx.leave();
}
-#line 3544 "dhcp4_parser.cc"
+#line 3565 "dhcp4_parser.cc"
break;
- case 623: // $@90: %empty
-#line 2243 "dhcp4_parser.yy"
+ case 628: // $@91: %empty
+#line 2258 "dhcp4_parser.yy"
{
ctx.unique("reservations", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3552,264 +3573,264 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.RESERVATIONS);
}
-#line 3556 "dhcp4_parser.cc"
+#line 3577 "dhcp4_parser.cc"
break;
- case 624: // reservations: "reservations" $@90 ":" "[" reservations_list "]"
-#line 2249 "dhcp4_parser.yy"
+ case 629: // reservations: "reservations" $@91 ":" "[" reservations_list "]"
+#line 2264 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3565 "dhcp4_parser.cc"
+#line 3586 "dhcp4_parser.cc"
break;
- case 629: // not_empty_reservations_list: not_empty_reservations_list ","
-#line 2260 "dhcp4_parser.yy"
+ case 634: // not_empty_reservations_list: not_empty_reservations_list ","
+#line 2275 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3573 "dhcp4_parser.cc"
+#line 3594 "dhcp4_parser.cc"
break;
- case 630: // $@91: %empty
-#line 2265 "dhcp4_parser.yy"
+ case 635: // $@92: %empty
+#line 2280 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3583 "dhcp4_parser.cc"
+#line 3604 "dhcp4_parser.cc"
break;
- case 631: // reservation: "{" $@91 reservation_params "}"
-#line 2269 "dhcp4_parser.yy"
+ case 636: // reservation: "{" $@92 reservation_params "}"
+#line 2284 "dhcp4_parser.yy"
{
/// @todo: an identifier parameter is required.
ctx.stack_.pop_back();
}
-#line 3592 "dhcp4_parser.cc"
+#line 3613 "dhcp4_parser.cc"
break;
- case 632: // $@92: %empty
-#line 2274 "dhcp4_parser.yy"
+ case 637: // $@93: %empty
+#line 2289 "dhcp4_parser.yy"
{
// Parse the reservations list entry map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 3602 "dhcp4_parser.cc"
+#line 3623 "dhcp4_parser.cc"
break;
- case 633: // sub_reservation: "{" $@92 reservation_params "}"
-#line 2278 "dhcp4_parser.yy"
+ case 638: // sub_reservation: "{" $@93 reservation_params "}"
+#line 2293 "dhcp4_parser.yy"
{
/// @todo: an identifier parameter is required.
// parsing completed
}
-#line 3611 "dhcp4_parser.cc"
+#line 3632 "dhcp4_parser.cc"
break;
- case 638: // not_empty_reservation_params: not_empty_reservation_params ","
-#line 2289 "dhcp4_parser.yy"
+ case 643: // not_empty_reservation_params: not_empty_reservation_params ","
+#line 2304 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3619 "dhcp4_parser.cc"
+#line 3640 "dhcp4_parser.cc"
break;
- case 654: // $@93: %empty
-#line 2312 "dhcp4_parser.yy"
+ case 659: // $@94: %empty
+#line 2327 "dhcp4_parser.yy"
{
ctx.unique("next-server", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3628 "dhcp4_parser.cc"
+#line 3649 "dhcp4_parser.cc"
break;
- case 655: // next_server: "next-server" $@93 ":" "constant string"
-#line 2315 "dhcp4_parser.yy"
+ case 660: // next_server: "next-server" $@94 ":" "constant string"
+#line 2330 "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 3638 "dhcp4_parser.cc"
+#line 3659 "dhcp4_parser.cc"
break;
- case 656: // $@94: %empty
-#line 2321 "dhcp4_parser.yy"
+ case 661: // $@95: %empty
+#line 2336 "dhcp4_parser.yy"
{
ctx.unique("server-hostname", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3647 "dhcp4_parser.cc"
+#line 3668 "dhcp4_parser.cc"
break;
- case 657: // server_hostname: "server-hostname" $@94 ":" "constant string"
-#line 2324 "dhcp4_parser.yy"
+ case 662: // server_hostname: "server-hostname" $@95 ":" "constant string"
+#line 2339 "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 3657 "dhcp4_parser.cc"
+#line 3678 "dhcp4_parser.cc"
break;
- case 658: // $@95: %empty
-#line 2330 "dhcp4_parser.yy"
+ case 663: // $@96: %empty
+#line 2345 "dhcp4_parser.yy"
{
ctx.unique("boot-file-name", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3666 "dhcp4_parser.cc"
+#line 3687 "dhcp4_parser.cc"
break;
- case 659: // boot_file_name: "boot-file-name" $@95 ":" "constant string"
-#line 2333 "dhcp4_parser.yy"
+ case 664: // boot_file_name: "boot-file-name" $@96 ":" "constant string"
+#line 2348 "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 3676 "dhcp4_parser.cc"
+#line 3697 "dhcp4_parser.cc"
break;
- case 660: // $@96: %empty
-#line 2339 "dhcp4_parser.yy"
+ case 665: // $@97: %empty
+#line 2354 "dhcp4_parser.yy"
{
ctx.unique("ip-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3685 "dhcp4_parser.cc"
+#line 3706 "dhcp4_parser.cc"
break;
- case 661: // ip_address: "ip-address" $@96 ":" "constant string"
-#line 2342 "dhcp4_parser.yy"
+ case 666: // ip_address: "ip-address" $@97 ":" "constant string"
+#line 2357 "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 3695 "dhcp4_parser.cc"
+#line 3716 "dhcp4_parser.cc"
break;
- case 662: // $@97: %empty
-#line 2348 "dhcp4_parser.yy"
+ case 667: // $@98: %empty
+#line 2363 "dhcp4_parser.yy"
{
ctx.unique("duid", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3704 "dhcp4_parser.cc"
+#line 3725 "dhcp4_parser.cc"
break;
- case 663: // duid: "duid" $@97 ":" "constant string"
-#line 2351 "dhcp4_parser.yy"
+ case 668: // duid: "duid" $@98 ":" "constant string"
+#line 2366 "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 3714 "dhcp4_parser.cc"
+#line 3735 "dhcp4_parser.cc"
break;
- case 664: // $@98: %empty
-#line 2357 "dhcp4_parser.yy"
+ case 669: // $@99: %empty
+#line 2372 "dhcp4_parser.yy"
{
ctx.unique("hw-address", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3723 "dhcp4_parser.cc"
+#line 3744 "dhcp4_parser.cc"
break;
- case 665: // hw_address: "hw-address" $@98 ":" "constant string"
-#line 2360 "dhcp4_parser.yy"
+ case 670: // hw_address: "hw-address" $@99 ":" "constant string"
+#line 2375 "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 3733 "dhcp4_parser.cc"
+#line 3754 "dhcp4_parser.cc"
break;
- case 666: // $@99: %empty
-#line 2366 "dhcp4_parser.yy"
+ case 671: // $@100: %empty
+#line 2381 "dhcp4_parser.yy"
{
ctx.unique("client-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3742 "dhcp4_parser.cc"
+#line 3763 "dhcp4_parser.cc"
break;
- case 667: // client_id_value: "client-id" $@99 ":" "constant string"
-#line 2369 "dhcp4_parser.yy"
+ case 672: // client_id_value: "client-id" $@100 ":" "constant string"
+#line 2384 "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 3752 "dhcp4_parser.cc"
+#line 3773 "dhcp4_parser.cc"
break;
- case 668: // $@100: %empty
-#line 2375 "dhcp4_parser.yy"
+ case 673: // $@101: %empty
+#line 2390 "dhcp4_parser.yy"
{
ctx.unique("circuit-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3761 "dhcp4_parser.cc"
+#line 3782 "dhcp4_parser.cc"
break;
- case 669: // circuit_id_value: "circuit-id" $@100 ":" "constant string"
-#line 2378 "dhcp4_parser.yy"
+ case 674: // circuit_id_value: "circuit-id" $@101 ":" "constant string"
+#line 2393 "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 3771 "dhcp4_parser.cc"
+#line 3792 "dhcp4_parser.cc"
break;
- case 670: // $@101: %empty
-#line 2384 "dhcp4_parser.yy"
+ case 675: // $@102: %empty
+#line 2399 "dhcp4_parser.yy"
{
ctx.unique("flex-id", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3780 "dhcp4_parser.cc"
+#line 3801 "dhcp4_parser.cc"
break;
- case 671: // flex_id_value: "flex-id" $@101 ":" "constant string"
-#line 2387 "dhcp4_parser.yy"
+ case 676: // flex_id_value: "flex-id" $@102 ":" "constant string"
+#line 2402 "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 3790 "dhcp4_parser.cc"
+#line 3811 "dhcp4_parser.cc"
break;
- case 672: // $@102: %empty
-#line 2393 "dhcp4_parser.yy"
+ case 677: // $@103: %empty
+#line 2408 "dhcp4_parser.yy"
{
ctx.unique("hostname", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3799 "dhcp4_parser.cc"
+#line 3820 "dhcp4_parser.cc"
break;
- case 673: // hostname: "hostname" $@102 ":" "constant string"
-#line 2396 "dhcp4_parser.yy"
+ case 678: // hostname: "hostname" $@103 ":" "constant string"
+#line 2411 "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 3809 "dhcp4_parser.cc"
+#line 3830 "dhcp4_parser.cc"
break;
- case 674: // $@103: %empty
-#line 2402 "dhcp4_parser.yy"
+ case 679: // $@104: %empty
+#line 2417 "dhcp4_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3817,20 +3838,20 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(c);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3821 "dhcp4_parser.cc"
+#line 3842 "dhcp4_parser.cc"
break;
- case 675: // reservation_client_classes: "client-classes" $@103 ":" list_strings
-#line 2408 "dhcp4_parser.yy"
+ case 680: // reservation_client_classes: "client-classes" $@104 ":" list_strings
+#line 2423 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3830 "dhcp4_parser.cc"
+#line 3851 "dhcp4_parser.cc"
break;
- case 676: // $@104: %empty
-#line 2416 "dhcp4_parser.yy"
+ case 681: // $@105: %empty
+#line 2431 "dhcp4_parser.yy"
{
ctx.unique("relay", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -3838,20 +3859,20 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(m);
ctx.enter(ctx.RELAY);
}
-#line 3842 "dhcp4_parser.cc"
+#line 3863 "dhcp4_parser.cc"
break;
- case 677: // relay: "relay" $@104 ":" "{" relay_map "}"
-#line 2422 "dhcp4_parser.yy"
+ case 682: // relay: "relay" $@105 ":" "{" relay_map "}"
+#line 2437 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3851 "dhcp4_parser.cc"
+#line 3872 "dhcp4_parser.cc"
break;
- case 679: // $@105: %empty
-#line 2430 "dhcp4_parser.yy"
+ case 684: // $@106: %empty
+#line 2445 "dhcp4_parser.yy"
{
ctx.unique("ip-addresses", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3859,20 +3880,20 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3863 "dhcp4_parser.cc"
+#line 3884 "dhcp4_parser.cc"
break;
- case 680: // ip_addresses: "ip-addresses" $@105 ":" list_strings
-#line 2436 "dhcp4_parser.yy"
+ case 685: // ip_addresses: "ip-addresses" $@106 ":" list_strings
+#line 2451 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3872 "dhcp4_parser.cc"
+#line 3893 "dhcp4_parser.cc"
break;
- case 681: // $@106: %empty
-#line 2444 "dhcp4_parser.yy"
+ case 686: // $@107: %empty
+#line 2459 "dhcp4_parser.yy"
{
ctx.unique("client-classes", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -3880,124 +3901,124 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENT_CLASSES);
}
-#line 3884 "dhcp4_parser.cc"
+#line 3905 "dhcp4_parser.cc"
break;
- case 682: // client_classes: "client-classes" $@106 ":" "[" client_classes_list "]"
-#line 2450 "dhcp4_parser.yy"
+ case 687: // client_classes: "client-classes" $@107 ":" "[" client_classes_list "]"
+#line 2465 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 3893 "dhcp4_parser.cc"
+#line 3914 "dhcp4_parser.cc"
break;
- case 685: // client_classes_list: client_classes_list ","
-#line 2457 "dhcp4_parser.yy"
+ case 690: // client_classes_list: client_classes_list ","
+#line 2472 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3901 "dhcp4_parser.cc"
+#line 3922 "dhcp4_parser.cc"
break;
- case 686: // $@107: %empty
-#line 2462 "dhcp4_parser.yy"
+ case 691: // $@108: %empty
+#line 2477 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 3911 "dhcp4_parser.cc"
+#line 3932 "dhcp4_parser.cc"
break;
- case 687: // client_class_entry: "{" $@107 client_class_params "}"
-#line 2466 "dhcp4_parser.yy"
+ case 692: // client_class_entry: "{" $@108 client_class_params "}"
+#line 2481 "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 3921 "dhcp4_parser.cc"
+#line 3942 "dhcp4_parser.cc"
break;
- case 692: // not_empty_client_class_params: not_empty_client_class_params ","
-#line 2478 "dhcp4_parser.yy"
+ case 697: // not_empty_client_class_params: not_empty_client_class_params ","
+#line 2493 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 3929 "dhcp4_parser.cc"
+#line 3950 "dhcp4_parser.cc"
break;
- case 711: // $@108: %empty
-#line 2504 "dhcp4_parser.yy"
+ case 716: // $@109: %empty
+#line 2519 "dhcp4_parser.yy"
{
ctx.unique("test", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3938 "dhcp4_parser.cc"
+#line 3959 "dhcp4_parser.cc"
break;
- case 712: // client_class_test: "test" $@108 ":" "constant string"
-#line 2507 "dhcp4_parser.yy"
+ case 717: // client_class_test: "test" $@109 ":" "constant string"
+#line 2522 "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 3948 "dhcp4_parser.cc"
+#line 3969 "dhcp4_parser.cc"
break;
- case 713: // $@109: %empty
-#line 2513 "dhcp4_parser.yy"
+ case 718: // $@110: %empty
+#line 2528 "dhcp4_parser.yy"
{
ctx.unique("template-test", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 3957 "dhcp4_parser.cc"
+#line 3978 "dhcp4_parser.cc"
break;
- case 714: // client_class_template_test: "template-test" $@109 ":" "constant string"
-#line 2516 "dhcp4_parser.yy"
+ case 719: // client_class_template_test: "template-test" $@110 ":" "constant string"
+#line 2531 "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 3967 "dhcp4_parser.cc"
+#line 3988 "dhcp4_parser.cc"
break;
- case 715: // only_if_required: "only-if-required" ":" "boolean"
-#line 2523 "dhcp4_parser.yy"
+ case 720: // only_if_required: "only-if-required" ":" "boolean"
+#line 2538 "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 3977 "dhcp4_parser.cc"
+#line 3998 "dhcp4_parser.cc"
break;
- case 716: // only_in_additional_list: "only-in-additional-list" ":" "boolean"
-#line 2529 "dhcp4_parser.yy"
+ case 721: // only_in_additional_list: "only-in-additional-list" ":" "boolean"
+#line 2544 "dhcp4_parser.yy"
{
ctx.unique("only-in-additional-list", ctx.loc2pos(yystack_[2].location));
ElementPtr b(new BoolElement(yystack_[0].value.as < bool > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("only-in-additional-list", b);
}
-#line 3987 "dhcp4_parser.cc"
+#line 4008 "dhcp4_parser.cc"
break;
- case 717: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
-#line 2537 "dhcp4_parser.yy"
+ case 722: // dhcp4o6_port: "dhcp4o6-port" ":" "integer"
+#line 2552 "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 3997 "dhcp4_parser.cc"
+#line 4018 "dhcp4_parser.cc"
break;
- case 718: // $@110: %empty
-#line 2545 "dhcp4_parser.yy"
+ case 723: // $@111: %empty
+#line 2560 "dhcp4_parser.yy"
{
ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location));
@@ -4006,20 +4027,20 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(m);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 4010 "dhcp4_parser.cc"
+#line 4031 "dhcp4_parser.cc"
break;
- case 719: // control_socket: "control-socket" $@110 ":" "{" control_socket_params "}"
-#line 2552 "dhcp4_parser.yy"
+ case 724: // control_socket: "control-socket" $@111 ":" "{" control_socket_params "}"
+#line 2567 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4019 "dhcp4_parser.cc"
+#line 4040 "dhcp4_parser.cc"
break;
- case 720: // $@111: %empty
-#line 2557 "dhcp4_parser.yy"
+ case 725: // $@112: %empty
+#line 2572 "dhcp4_parser.yy"
{
ctx.unique("control-sockets", ctx.loc2pos(yystack_[0].location));
ctx.unique("control-socket", ctx.loc2pos(yystack_[0].location));
@@ -4028,150 +4049,150 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.CONTROL_SOCKET);
}
-#line 4032 "dhcp4_parser.cc"
+#line 4053 "dhcp4_parser.cc"
break;
- case 721: // control_sockets: "control-sockets" $@111 ":" "[" control_socket_list "]"
-#line 2564 "dhcp4_parser.yy"
+ case 726: // control_sockets: "control-sockets" $@112 ":" "[" control_socket_list "]"
+#line 2579 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4041 "dhcp4_parser.cc"
+#line 4062 "dhcp4_parser.cc"
break;
- case 726: // not_empty_control_socket_list: not_empty_control_socket_list ","
-#line 2575 "dhcp4_parser.yy"
+ case 731: // not_empty_control_socket_list: not_empty_control_socket_list ","
+#line 2590 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4049 "dhcp4_parser.cc"
+#line 4070 "dhcp4_parser.cc"
break;
- case 727: // $@112: %empty
-#line 2580 "dhcp4_parser.yy"
+ case 732: // $@113: %empty
+#line 2595 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4059 "dhcp4_parser.cc"
+#line 4080 "dhcp4_parser.cc"
break;
- case 728: // control_socket_entry: "{" $@112 control_socket_params "}"
-#line 2584 "dhcp4_parser.yy"
+ case 733: // control_socket_entry: "{" $@113 control_socket_params "}"
+#line 2599 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4067 "dhcp4_parser.cc"
+#line 4088 "dhcp4_parser.cc"
break;
- case 731: // control_socket_params: control_socket_params ","
-#line 2590 "dhcp4_parser.yy"
+ case 736: // control_socket_params: control_socket_params ","
+#line 2605 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4075 "dhcp4_parser.cc"
+#line 4096 "dhcp4_parser.cc"
break;
- case 745: // $@113: %empty
-#line 2610 "dhcp4_parser.yy"
+ case 750: // $@114: %empty
+#line 2625 "dhcp4_parser.yy"
{
ctx.unique("socket-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.CONTROL_SOCKET_TYPE);
}
-#line 4084 "dhcp4_parser.cc"
+#line 4105 "dhcp4_parser.cc"
break;
- case 746: // control_socket_type: "socket-type" $@113 ":" control_socket_type_value
-#line 2613 "dhcp4_parser.yy"
+ case 751: // control_socket_type: "socket-type" $@114 ":" control_socket_type_value
+#line 2628 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("socket-type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4093 "dhcp4_parser.cc"
+#line 4114 "dhcp4_parser.cc"
break;
- case 747: // control_socket_type_value: "unix"
-#line 2619 "dhcp4_parser.yy"
+ case 752: // control_socket_type_value: "unix"
+#line 2634 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("unix", ctx.loc2pos(yystack_[0].location))); }
-#line 4099 "dhcp4_parser.cc"
+#line 4120 "dhcp4_parser.cc"
break;
- case 748: // control_socket_type_value: "http"
-#line 2620 "dhcp4_parser.yy"
+ case 753: // control_socket_type_value: "http"
+#line 2635 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("http", ctx.loc2pos(yystack_[0].location))); }
-#line 4105 "dhcp4_parser.cc"
+#line 4126 "dhcp4_parser.cc"
break;
- case 749: // control_socket_type_value: "https"
-#line 2621 "dhcp4_parser.yy"
+ case 754: // control_socket_type_value: "https"
+#line 2636 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("https", ctx.loc2pos(yystack_[0].location))); }
-#line 4111 "dhcp4_parser.cc"
+#line 4132 "dhcp4_parser.cc"
break;
- case 750: // $@114: %empty
-#line 2624 "dhcp4_parser.yy"
+ case 755: // $@115: %empty
+#line 2639 "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 4121 "dhcp4_parser.cc"
+#line 4142 "dhcp4_parser.cc"
break;
- case 751: // control_socket_name: "socket-name" $@114 ":" "constant string"
-#line 2628 "dhcp4_parser.yy"
+ case 756: // control_socket_name: "socket-name" $@115 ":" "constant string"
+#line 2643 "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 4131 "dhcp4_parser.cc"
+#line 4152 "dhcp4_parser.cc"
break;
- case 752: // $@115: %empty
-#line 2634 "dhcp4_parser.yy"
+ case 757: // $@116: %empty
+#line 2649 "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 4141 "dhcp4_parser.cc"
+#line 4162 "dhcp4_parser.cc"
break;
- case 753: // control_socket_address: "socket-address" $@115 ":" "constant string"
-#line 2638 "dhcp4_parser.yy"
+ case 758: // control_socket_address: "socket-address" $@116 ":" "constant string"
+#line 2653 "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 4151 "dhcp4_parser.cc"
+#line 4172 "dhcp4_parser.cc"
break;
- case 754: // control_socket_port: "socket-port" ":" "integer"
-#line 2644 "dhcp4_parser.yy"
+ case 759: // control_socket_port: "socket-port" ":" "integer"
+#line 2659 "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 4161 "dhcp4_parser.cc"
+#line 4182 "dhcp4_parser.cc"
break;
- case 755: // cert_required: "cert-required" ":" "boolean"
-#line 2650 "dhcp4_parser.yy"
+ case 760: // cert_required: "cert-required" ":" "boolean"
+#line 2665 "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 4171 "dhcp4_parser.cc"
+#line 4192 "dhcp4_parser.cc"
break;
- case 756: // $@116: %empty
-#line 2656 "dhcp4_parser.yy"
+ case 761: // $@117: %empty
+#line 2671 "dhcp4_parser.yy"
{
ctx.unique("http-headers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4179,73 +4200,73 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.HTTP_HEADERS);
}
-#line 4183 "dhcp4_parser.cc"
+#line 4204 "dhcp4_parser.cc"
break;
- case 757: // http_headers: "http-headers" $@116 ":" "[" http_header_list "]"
-#line 2662 "dhcp4_parser.yy"
+ case 762: // http_headers: "http-headers" $@117 ":" "[" http_header_list "]"
+#line 2677 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4192 "dhcp4_parser.cc"
+#line 4213 "dhcp4_parser.cc"
break;
- case 762: // not_empty_http_header_list: not_empty_http_header_list ","
-#line 2673 "dhcp4_parser.yy"
+ case 767: // not_empty_http_header_list: not_empty_http_header_list ","
+#line 2688 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4200 "dhcp4_parser.cc"
+#line 4221 "dhcp4_parser.cc"
break;
- case 763: // $@117: %empty
-#line 2678 "dhcp4_parser.yy"
+ case 768: // $@118: %empty
+#line 2693 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4210 "dhcp4_parser.cc"
+#line 4231 "dhcp4_parser.cc"
break;
- case 764: // http_header: "{" $@117 http_header_params "}"
-#line 2682 "dhcp4_parser.yy"
+ case 769: // http_header: "{" $@118 http_header_params "}"
+#line 2697 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4218 "dhcp4_parser.cc"
+#line 4239 "dhcp4_parser.cc"
break;
- case 767: // http_header_params: http_header_params ","
-#line 2688 "dhcp4_parser.yy"
+ case 772: // http_header_params: http_header_params ","
+#line 2703 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4226 "dhcp4_parser.cc"
+#line 4247 "dhcp4_parser.cc"
break;
- case 773: // $@118: %empty
-#line 2700 "dhcp4_parser.yy"
+ case 778: // $@119: %empty
+#line 2715 "dhcp4_parser.yy"
{
ctx.unique("value", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4235 "dhcp4_parser.cc"
+#line 4256 "dhcp4_parser.cc"
break;
- case 774: // header_value: "value" $@118 ":" "constant string"
-#line 2703 "dhcp4_parser.yy"
+ case 779: // header_value: "value" $@119 ":" "constant string"
+#line 2718 "dhcp4_parser.yy"
{
ElementPtr value(new StringElement(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("value", value);
ctx.leave();
}
-#line 4245 "dhcp4_parser.cc"
+#line 4266 "dhcp4_parser.cc"
break;
- case 775: // $@119: %empty
-#line 2711 "dhcp4_parser.yy"
+ case 780: // $@120: %empty
+#line 2726 "dhcp4_parser.yy"
{
ctx.unique("authentication", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4253,92 +4274,92 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(m);
ctx.enter(ctx.AUTHENTICATION);
}
-#line 4257 "dhcp4_parser.cc"
+#line 4278 "dhcp4_parser.cc"
break;
- case 776: // authentication: "authentication" $@119 ":" "{" auth_params "}"
-#line 2717 "dhcp4_parser.yy"
+ case 781: // authentication: "authentication" $@120 ":" "{" auth_params "}"
+#line 2732 "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 4268 "dhcp4_parser.cc"
+#line 4289 "dhcp4_parser.cc"
break;
- case 779: // auth_params: auth_params ","
-#line 2726 "dhcp4_parser.yy"
+ case 784: // auth_params: auth_params ","
+#line 2741 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4276 "dhcp4_parser.cc"
+#line 4297 "dhcp4_parser.cc"
break;
- case 787: // $@120: %empty
-#line 2740 "dhcp4_parser.yy"
+ case 792: // $@121: %empty
+#line 2755 "dhcp4_parser.yy"
{
ctx.unique("type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.AUTH_TYPE);
}
-#line 4285 "dhcp4_parser.cc"
+#line 4306 "dhcp4_parser.cc"
break;
- case 788: // auth_type: "type" $@120 ":" auth_type_value
-#line 2743 "dhcp4_parser.yy"
+ case 793: // auth_type: "type" $@121 ":" auth_type_value
+#line 2758 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("type", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4294 "dhcp4_parser.cc"
+#line 4315 "dhcp4_parser.cc"
break;
- case 789: // auth_type_value: "basic"
-#line 2748 "dhcp4_parser.yy"
+ case 794: // auth_type_value: "basic"
+#line 2763 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("basic", ctx.loc2pos(yystack_[0].location))); }
-#line 4300 "dhcp4_parser.cc"
+#line 4321 "dhcp4_parser.cc"
break;
- case 790: // $@121: %empty
-#line 2751 "dhcp4_parser.yy"
+ case 795: // $@122: %empty
+#line 2766 "dhcp4_parser.yy"
{
ctx.unique("realm", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4309 "dhcp4_parser.cc"
+#line 4330 "dhcp4_parser.cc"
break;
- case 791: // realm: "realm" $@121 ":" "constant string"
-#line 2754 "dhcp4_parser.yy"
+ case 796: // realm: "realm" $@122 ":" "constant string"
+#line 2769 "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 4319 "dhcp4_parser.cc"
+#line 4340 "dhcp4_parser.cc"
break;
- case 792: // $@122: %empty
-#line 2760 "dhcp4_parser.yy"
+ case 797: // $@123: %empty
+#line 2775 "dhcp4_parser.yy"
{
ctx.unique("directory", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4328 "dhcp4_parser.cc"
+#line 4349 "dhcp4_parser.cc"
break;
- case 793: // directory: "directory" $@122 ":" "constant string"
-#line 2763 "dhcp4_parser.yy"
+ case 798: // directory: "directory" $@123 ":" "constant string"
+#line 2778 "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 4338 "dhcp4_parser.cc"
+#line 4359 "dhcp4_parser.cc"
break;
- case 794: // $@123: %empty
-#line 2769 "dhcp4_parser.yy"
+ case 799: // $@124: %empty
+#line 2784 "dhcp4_parser.yy"
{
ctx.unique("clients", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4346,92 +4367,92 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.CLIENTS);
}
-#line 4350 "dhcp4_parser.cc"
+#line 4371 "dhcp4_parser.cc"
break;
- case 795: // clients: "clients" $@123 ":" "[" clients_list "]"
-#line 2775 "dhcp4_parser.yy"
+ case 800: // clients: "clients" $@124 ":" "[" clients_list "]"
+#line 2790 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4359 "dhcp4_parser.cc"
+#line 4380 "dhcp4_parser.cc"
break;
- case 800: // not_empty_clients_list: not_empty_clients_list ","
-#line 2786 "dhcp4_parser.yy"
+ case 805: // not_empty_clients_list: not_empty_clients_list ","
+#line 2801 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4367 "dhcp4_parser.cc"
+#line 4388 "dhcp4_parser.cc"
break;
- case 801: // $@124: %empty
-#line 2791 "dhcp4_parser.yy"
+ case 806: // $@125: %empty
+#line 2806 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4377 "dhcp4_parser.cc"
+#line 4398 "dhcp4_parser.cc"
break;
- case 802: // basic_auth: "{" $@124 clients_params "}"
-#line 2795 "dhcp4_parser.yy"
+ case 807: // basic_auth: "{" $@125 clients_params "}"
+#line 2810 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4385 "dhcp4_parser.cc"
+#line 4406 "dhcp4_parser.cc"
break;
- case 805: // clients_params: clients_params ","
-#line 2801 "dhcp4_parser.yy"
+ case 810: // clients_params: clients_params ","
+#line 2816 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4393 "dhcp4_parser.cc"
+#line 4414 "dhcp4_parser.cc"
break;
- case 813: // $@125: %empty
-#line 2815 "dhcp4_parser.yy"
+ case 818: // $@126: %empty
+#line 2830 "dhcp4_parser.yy"
{
ctx.unique("user-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4402 "dhcp4_parser.cc"
+#line 4423 "dhcp4_parser.cc"
break;
- case 814: // user_file: "user-file" $@125 ":" "constant string"
-#line 2818 "dhcp4_parser.yy"
+ case 819: // user_file: "user-file" $@126 ":" "constant string"
+#line 2833 "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 4412 "dhcp4_parser.cc"
+#line 4433 "dhcp4_parser.cc"
break;
- case 815: // $@126: %empty
-#line 2824 "dhcp4_parser.yy"
+ case 820: // $@127: %empty
+#line 2839 "dhcp4_parser.yy"
{
ctx.unique("password-file", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4421 "dhcp4_parser.cc"
+#line 4442 "dhcp4_parser.cc"
break;
- case 816: // password_file: "password-file" $@126 ":" "constant string"
-#line 2827 "dhcp4_parser.yy"
+ case 821: // password_file: "password-file" $@127 ":" "constant string"
+#line 2842 "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 4431 "dhcp4_parser.cc"
+#line 4452 "dhcp4_parser.cc"
break;
- case 817: // $@127: %empty
-#line 2835 "dhcp4_parser.yy"
+ case 822: // $@128: %empty
+#line 2850 "dhcp4_parser.yy"
{
ctx.unique("dhcp-queue-control", ctx.loc2pos(yystack_[0].location));
ElementPtr qc(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4439,87 +4460,87 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(qc);
ctx.enter(ctx.DHCP_QUEUE_CONTROL);
}
-#line 4443 "dhcp4_parser.cc"
+#line 4464 "dhcp4_parser.cc"
break;
- case 818: // dhcp_queue_control: "dhcp-queue-control" $@127 ":" "{" queue_control_params "}"
-#line 2841 "dhcp4_parser.yy"
+ case 823: // dhcp_queue_control: "dhcp-queue-control" $@128 ":" "{" queue_control_params "}"
+#line 2856 "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 4454 "dhcp4_parser.cc"
+#line 4475 "dhcp4_parser.cc"
break;
- case 821: // queue_control_params: queue_control_params ","
-#line 2850 "dhcp4_parser.yy"
+ case 826: // queue_control_params: queue_control_params ","
+#line 2865 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4462 "dhcp4_parser.cc"
+#line 4483 "dhcp4_parser.cc"
break;
- case 828: // enable_queue: "enable-queue" ":" "boolean"
-#line 2863 "dhcp4_parser.yy"
+ case 833: // enable_queue: "enable-queue" ":" "boolean"
+#line 2878 "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 4472 "dhcp4_parser.cc"
+#line 4493 "dhcp4_parser.cc"
break;
- case 829: // $@128: %empty
-#line 2869 "dhcp4_parser.yy"
+ case 834: // $@129: %empty
+#line 2884 "dhcp4_parser.yy"
{
ctx.unique("queue-type", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4481 "dhcp4_parser.cc"
+#line 4502 "dhcp4_parser.cc"
break;
- case 830: // queue_type: "queue-type" $@128 ":" "constant string"
-#line 2872 "dhcp4_parser.yy"
+ case 835: // queue_type: "queue-type" $@129 ":" "constant string"
+#line 2887 "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 4491 "dhcp4_parser.cc"
+#line 4512 "dhcp4_parser.cc"
break;
- case 831: // capacity: "capacity" ":" "integer"
-#line 2878 "dhcp4_parser.yy"
+ case 836: // capacity: "capacity" ":" "integer"
+#line 2893 "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 4501 "dhcp4_parser.cc"
+#line 4522 "dhcp4_parser.cc"
break;
- case 832: // $@129: %empty
-#line 2884 "dhcp4_parser.yy"
+ case 837: // $@130: %empty
+#line 2899 "dhcp4_parser.yy"
{
ctx.unique(yystack_[0].value.as < std::string > (), ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4510 "dhcp4_parser.cc"
+#line 4531 "dhcp4_parser.cc"
break;
- case 833: // arbitrary_map_entry: "constant string" $@129 ":" value
-#line 2887 "dhcp4_parser.yy"
+ case 838: // arbitrary_map_entry: "constant string" $@130 ":" value
+#line 2902 "dhcp4_parser.yy"
{
ctx.stack_.back()->set(yystack_[3].value.as < std::string > (), yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4519 "dhcp4_parser.cc"
+#line 4540 "dhcp4_parser.cc"
break;
- case 834: // $@130: %empty
-#line 2894 "dhcp4_parser.yy"
+ case 839: // $@131: %empty
+#line 2909 "dhcp4_parser.yy"
{
ctx.unique("dhcp-ddns", ctx.loc2pos(yystack_[0].location));
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4527,177 +4548,177 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(m);
ctx.enter(ctx.DHCP_DDNS);
}
-#line 4531 "dhcp4_parser.cc"
+#line 4552 "dhcp4_parser.cc"
break;
- case 835: // dhcp_ddns: "dhcp-ddns" $@130 ":" "{" dhcp_ddns_params "}"
-#line 2900 "dhcp4_parser.yy"
+ case 840: // dhcp_ddns: "dhcp-ddns" $@131 ":" "{" dhcp_ddns_params "}"
+#line 2915 "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 4542 "dhcp4_parser.cc"
+#line 4563 "dhcp4_parser.cc"
break;
- case 836: // $@131: %empty
-#line 2907 "dhcp4_parser.yy"
+ case 841: // $@132: %empty
+#line 2922 "dhcp4_parser.yy"
{
// Parse the dhcp-ddns map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4552 "dhcp4_parser.cc"
+#line 4573 "dhcp4_parser.cc"
break;
- case 837: // sub_dhcp_ddns: "{" $@131 dhcp_ddns_params "}"
-#line 2911 "dhcp4_parser.yy"
+ case 842: // sub_dhcp_ddns: "{" $@132 dhcp_ddns_params "}"
+#line 2926 "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 4562 "dhcp4_parser.cc"
+#line 4583 "dhcp4_parser.cc"
break;
- case 840: // dhcp_ddns_params: dhcp_ddns_params ","
-#line 2919 "dhcp4_parser.yy"
+ case 845: // dhcp_ddns_params: dhcp_ddns_params ","
+#line 2934 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4570 "dhcp4_parser.cc"
+#line 4591 "dhcp4_parser.cc"
break;
- case 852: // enable_updates: "enable-updates" ":" "boolean"
-#line 2937 "dhcp4_parser.yy"
+ case 857: // enable_updates: "enable-updates" ":" "boolean"
+#line 2952 "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 4580 "dhcp4_parser.cc"
+#line 4601 "dhcp4_parser.cc"
break;
- case 853: // $@132: %empty
-#line 2943 "dhcp4_parser.yy"
+ case 858: // $@133: %empty
+#line 2958 "dhcp4_parser.yy"
{
ctx.unique("server-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4589 "dhcp4_parser.cc"
+#line 4610 "dhcp4_parser.cc"
break;
- case 854: // server_ip: "server-ip" $@132 ":" "constant string"
-#line 2946 "dhcp4_parser.yy"
+ case 859: // server_ip: "server-ip" $@133 ":" "constant string"
+#line 2961 "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 4599 "dhcp4_parser.cc"
+#line 4620 "dhcp4_parser.cc"
break;
- case 855: // server_port: "server-port" ":" "integer"
-#line 2952 "dhcp4_parser.yy"
+ case 860: // server_port: "server-port" ":" "integer"
+#line 2967 "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 4609 "dhcp4_parser.cc"
+#line 4630 "dhcp4_parser.cc"
break;
- case 856: // $@133: %empty
-#line 2958 "dhcp4_parser.yy"
+ case 861: // $@134: %empty
+#line 2973 "dhcp4_parser.yy"
{
ctx.unique("sender-ip", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4618 "dhcp4_parser.cc"
+#line 4639 "dhcp4_parser.cc"
break;
- case 857: // sender_ip: "sender-ip" $@133 ":" "constant string"
-#line 2961 "dhcp4_parser.yy"
+ case 862: // sender_ip: "sender-ip" $@134 ":" "constant string"
+#line 2976 "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 4628 "dhcp4_parser.cc"
+#line 4649 "dhcp4_parser.cc"
break;
- case 858: // sender_port: "sender-port" ":" "integer"
-#line 2967 "dhcp4_parser.yy"
+ case 863: // sender_port: "sender-port" ":" "integer"
+#line 2982 "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 4638 "dhcp4_parser.cc"
+#line 4659 "dhcp4_parser.cc"
break;
- case 859: // max_queue_size: "max-queue-size" ":" "integer"
-#line 2973 "dhcp4_parser.yy"
+ case 864: // max_queue_size: "max-queue-size" ":" "integer"
+#line 2988 "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 4648 "dhcp4_parser.cc"
+#line 4669 "dhcp4_parser.cc"
break;
- case 860: // $@134: %empty
-#line 2979 "dhcp4_parser.yy"
+ case 865: // $@135: %empty
+#line 2994 "dhcp4_parser.yy"
{
ctx.unique("ncr-protocol", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_PROTOCOL);
}
-#line 4657 "dhcp4_parser.cc"
+#line 4678 "dhcp4_parser.cc"
break;
- case 861: // ncr_protocol: "ncr-protocol" $@134 ":" ncr_protocol_value
-#line 2982 "dhcp4_parser.yy"
+ case 866: // ncr_protocol: "ncr-protocol" $@135 ":" ncr_protocol_value
+#line 2997 "dhcp4_parser.yy"
{
ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as < ElementPtr > ());
ctx.leave();
}
-#line 4666 "dhcp4_parser.cc"
+#line 4687 "dhcp4_parser.cc"
break;
- case 862: // ncr_protocol_value: "udp"
-#line 2988 "dhcp4_parser.yy"
+ case 867: // ncr_protocol_value: "udp"
+#line 3003 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); }
-#line 4672 "dhcp4_parser.cc"
+#line 4693 "dhcp4_parser.cc"
break;
- case 863: // ncr_protocol_value: "tcp"
-#line 2989 "dhcp4_parser.yy"
+ case 868: // ncr_protocol_value: "tcp"
+#line 3004 "dhcp4_parser.yy"
{ yylhs.value.as < ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); }
-#line 4678 "dhcp4_parser.cc"
+#line 4699 "dhcp4_parser.cc"
break;
- case 864: // $@135: %empty
-#line 2992 "dhcp4_parser.yy"
+ case 869: // $@136: %empty
+#line 3007 "dhcp4_parser.yy"
{
ctx.unique("ncr-format", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NCR_FORMAT);
}
-#line 4687 "dhcp4_parser.cc"
+#line 4708 "dhcp4_parser.cc"
break;
- case 865: // ncr_format: "ncr-format" $@135 ":" "JSON"
-#line 2995 "dhcp4_parser.yy"
+ case 870: // ncr_format: "ncr-format" $@136 ":" "JSON"
+#line 3010 "dhcp4_parser.yy"
{
ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->set("ncr-format", json);
ctx.leave();
}
-#line 4697 "dhcp4_parser.cc"
+#line 4718 "dhcp4_parser.cc"
break;
- case 866: // $@136: %empty
-#line 3003 "dhcp4_parser.yy"
+ case 871: // $@137: %empty
+#line 3018 "dhcp4_parser.yy"
{
ctx.unique("config-control", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4705,48 +4726,48 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(i);
ctx.enter(ctx.CONFIG_CONTROL);
}
-#line 4709 "dhcp4_parser.cc"
+#line 4730 "dhcp4_parser.cc"
break;
- case 867: // config_control: "config-control" $@136 ":" "{" config_control_params "}"
-#line 3009 "dhcp4_parser.yy"
+ case 872: // config_control: "config-control" $@137 ":" "{" config_control_params "}"
+#line 3024 "dhcp4_parser.yy"
{
// No config control params are required
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4719 "dhcp4_parser.cc"
+#line 4740 "dhcp4_parser.cc"
break;
- case 868: // $@137: %empty
-#line 3015 "dhcp4_parser.yy"
+ case 873: // $@138: %empty
+#line 3030 "dhcp4_parser.yy"
{
// Parse the config-control map
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.push_back(m);
}
-#line 4729 "dhcp4_parser.cc"
+#line 4750 "dhcp4_parser.cc"
break;
- case 869: // sub_config_control: "{" $@137 config_control_params "}"
-#line 3019 "dhcp4_parser.yy"
+ case 874: // sub_config_control: "{" $@138 config_control_params "}"
+#line 3034 "dhcp4_parser.yy"
{
// No config_control params are required
// parsing completed
}
-#line 4738 "dhcp4_parser.cc"
+#line 4759 "dhcp4_parser.cc"
break;
- case 872: // config_control_params: config_control_params ","
-#line 3027 "dhcp4_parser.yy"
+ case 877: // config_control_params: config_control_params ","
+#line 3042 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4746 "dhcp4_parser.cc"
+#line 4767 "dhcp4_parser.cc"
break;
- case 875: // $@138: %empty
-#line 3037 "dhcp4_parser.yy"
+ case 880: // $@139: %empty
+#line 3052 "dhcp4_parser.yy"
{
ctx.unique("config-databases", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4754,30 +4775,30 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.CONFIG_DATABASE);
}
-#line 4758 "dhcp4_parser.cc"
+#line 4779 "dhcp4_parser.cc"
break;
- case 876: // config_databases: "config-databases" $@138 ":" "[" database_list "]"
-#line 3043 "dhcp4_parser.yy"
+ case 881: // config_databases: "config-databases" $@139 ":" "[" database_list "]"
+#line 3058 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4767 "dhcp4_parser.cc"
+#line 4788 "dhcp4_parser.cc"
break;
- case 877: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
-#line 3048 "dhcp4_parser.yy"
+ case 882: // config_fetch_wait_time: "config-fetch-wait-time" ":" "integer"
+#line 3063 "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 4777 "dhcp4_parser.cc"
+#line 4798 "dhcp4_parser.cc"
break;
- case 878: // $@139: %empty
-#line 3056 "dhcp4_parser.yy"
+ case 883: // $@140: %empty
+#line 3071 "dhcp4_parser.yy"
{
ctx.unique("loggers", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4785,83 +4806,83 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.LOGGERS);
}
-#line 4789 "dhcp4_parser.cc"
+#line 4810 "dhcp4_parser.cc"
break;
- case 879: // loggers: "loggers" $@139 ":" "[" loggers_entries "]"
-#line 3062 "dhcp4_parser.yy"
+ case 884: // loggers: "loggers" $@140 ":" "[" loggers_entries "]"
+#line 3077 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4798 "dhcp4_parser.cc"
+#line 4819 "dhcp4_parser.cc"
break;
- case 882: // loggers_entries: loggers_entries ","
-#line 3071 "dhcp4_parser.yy"
+ case 887: // loggers_entries: loggers_entries ","
+#line 3086 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4806 "dhcp4_parser.cc"
+#line 4827 "dhcp4_parser.cc"
break;
- case 883: // $@140: %empty
-#line 3077 "dhcp4_parser.yy"
+ case 888: // $@141: %empty
+#line 3092 "dhcp4_parser.yy"
{
ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(l);
ctx.stack_.push_back(l);
}
-#line 4816 "dhcp4_parser.cc"
+#line 4837 "dhcp4_parser.cc"
break;
- case 884: // logger_entry: "{" $@140 logger_params "}"
-#line 3081 "dhcp4_parser.yy"
+ case 889: // logger_entry: "{" $@141 logger_params "}"
+#line 3096 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4824 "dhcp4_parser.cc"
+#line 4845 "dhcp4_parser.cc"
break;
- case 887: // logger_params: logger_params ","
-#line 3087 "dhcp4_parser.yy"
+ case 892: // logger_params: logger_params ","
+#line 3102 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4832 "dhcp4_parser.cc"
+#line 4853 "dhcp4_parser.cc"
break;
- case 895: // debuglevel: "debuglevel" ":" "integer"
-#line 3101 "dhcp4_parser.yy"
+ case 900: // debuglevel: "debuglevel" ":" "integer"
+#line 3116 "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 4842 "dhcp4_parser.cc"
+#line 4863 "dhcp4_parser.cc"
break;
- case 896: // $@141: %empty
-#line 3107 "dhcp4_parser.yy"
+ case 901: // $@142: %empty
+#line 3122 "dhcp4_parser.yy"
{
ctx.unique("severity", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4851 "dhcp4_parser.cc"
+#line 4872 "dhcp4_parser.cc"
break;
- case 897: // severity: "severity" $@141 ":" "constant string"
-#line 3110 "dhcp4_parser.yy"
+ case 902: // severity: "severity" $@142 ":" "constant string"
+#line 3125 "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 4861 "dhcp4_parser.cc"
+#line 4882 "dhcp4_parser.cc"
break;
- case 898: // $@142: %empty
-#line 3116 "dhcp4_parser.yy"
+ case 903: // $@143: %empty
+#line 3131 "dhcp4_parser.yy"
{
ctx.unique("output-options", ctx.loc2pos(yystack_[0].location));
ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location)));
@@ -4869,122 +4890,122 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(l);
ctx.enter(ctx.OUTPUT_OPTIONS);
}
-#line 4873 "dhcp4_parser.cc"
+#line 4894 "dhcp4_parser.cc"
break;
- case 899: // output_options_list: "output-options" $@142 ":" "[" output_options_list_content "]"
-#line 3122 "dhcp4_parser.yy"
+ case 904: // output_options_list: "output-options" $@143 ":" "[" output_options_list_content "]"
+#line 3137 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 4882 "dhcp4_parser.cc"
+#line 4903 "dhcp4_parser.cc"
break;
- case 902: // output_options_list_content: output_options_list_content ","
-#line 3129 "dhcp4_parser.yy"
+ case 907: // output_options_list_content: output_options_list_content ","
+#line 3144 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4890 "dhcp4_parser.cc"
+#line 4911 "dhcp4_parser.cc"
break;
- case 903: // $@143: %empty
-#line 3134 "dhcp4_parser.yy"
+ case 908: // $@144: %empty
+#line 3149 "dhcp4_parser.yy"
{
ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location)));
ctx.stack_.back()->add(m);
ctx.stack_.push_back(m);
}
-#line 4900 "dhcp4_parser.cc"
+#line 4921 "dhcp4_parser.cc"
break;
- case 904: // output_entry: "{" $@143 output_params_list "}"
-#line 3138 "dhcp4_parser.yy"
+ case 909: // output_entry: "{" $@144 output_params_list "}"
+#line 3153 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
}
-#line 4908 "dhcp4_parser.cc"
+#line 4929 "dhcp4_parser.cc"
break;
- case 907: // output_params_list: output_params_list ","
-#line 3144 "dhcp4_parser.yy"
+ case 912: // output_params_list: output_params_list ","
+#line 3159 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 4916 "dhcp4_parser.cc"
+#line 4937 "dhcp4_parser.cc"
break;
- case 913: // $@144: %empty
-#line 3156 "dhcp4_parser.yy"
+ case 918: // $@145: %empty
+#line 3171 "dhcp4_parser.yy"
{
ctx.unique("output", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4925 "dhcp4_parser.cc"
+#line 4946 "dhcp4_parser.cc"
break;
- case 914: // output: "output" $@144 ":" "constant string"
-#line 3159 "dhcp4_parser.yy"
+ case 919: // output: "output" $@145 ":" "constant string"
+#line 3174 "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 4935 "dhcp4_parser.cc"
+#line 4956 "dhcp4_parser.cc"
break;
- case 915: // flush: "flush" ":" "boolean"
-#line 3165 "dhcp4_parser.yy"
+ case 920: // flush: "flush" ":" "boolean"
+#line 3180 "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 4945 "dhcp4_parser.cc"
+#line 4966 "dhcp4_parser.cc"
break;
- case 916: // maxsize: "maxsize" ":" "integer"
-#line 3171 "dhcp4_parser.yy"
+ case 921: // maxsize: "maxsize" ":" "integer"
+#line 3186 "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 4955 "dhcp4_parser.cc"
+#line 4976 "dhcp4_parser.cc"
break;
- case 917: // maxver: "maxver" ":" "integer"
-#line 3177 "dhcp4_parser.yy"
+ case 922: // maxver: "maxver" ":" "integer"
+#line 3192 "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 4965 "dhcp4_parser.cc"
+#line 4986 "dhcp4_parser.cc"
break;
- case 918: // $@145: %empty
-#line 3183 "dhcp4_parser.yy"
+ case 923: // $@146: %empty
+#line 3198 "dhcp4_parser.yy"
{
ctx.unique("pattern", ctx.loc2pos(yystack_[0].location));
ctx.enter(ctx.NO_KEYWORD);
}
-#line 4974 "dhcp4_parser.cc"
+#line 4995 "dhcp4_parser.cc"
break;
- case 919: // pattern: "pattern" $@145 ":" "constant string"
-#line 3186 "dhcp4_parser.yy"
+ case 924: // pattern: "pattern" $@146 ":" "constant string"
+#line 3201 "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 4984 "dhcp4_parser.cc"
+#line 5005 "dhcp4_parser.cc"
break;
- case 920: // $@146: %empty
-#line 3192 "dhcp4_parser.yy"
+ case 925: // $@147: %empty
+#line 3207 "dhcp4_parser.yy"
{
ctx.unique("compatibility", ctx.loc2pos(yystack_[0].location));
ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location)));
@@ -4992,68 +5013,68 @@ namespace isc { namespace dhcp {
ctx.stack_.push_back(i);
ctx.enter(ctx.COMPATIBILITY);
}
-#line 4996 "dhcp4_parser.cc"
+#line 5017 "dhcp4_parser.cc"
break;
- case 921: // compatibility: "compatibility" $@146 ":" "{" compatibility_params "}"
-#line 3198 "dhcp4_parser.yy"
+ case 926: // compatibility: "compatibility" $@147 ":" "{" compatibility_params "}"
+#line 3213 "dhcp4_parser.yy"
{
ctx.stack_.pop_back();
ctx.leave();
}
-#line 5005 "dhcp4_parser.cc"
+#line 5026 "dhcp4_parser.cc"
break;
- case 924: // compatibility_params: compatibility_params ","
-#line 3205 "dhcp4_parser.yy"
+ case 929: // compatibility_params: compatibility_params ","
+#line 3220 "dhcp4_parser.yy"
{
ctx.warnAboutExtraCommas(yystack_[0].location);
}
-#line 5013 "dhcp4_parser.cc"
+#line 5034 "dhcp4_parser.cc"
break;
- case 930: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
-#line 3217 "dhcp4_parser.yy"
+ case 935: // lenient_option_parsing: "lenient-option-parsing" ":" "boolean"
+#line 3232 "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 5023 "dhcp4_parser.cc"
+#line 5044 "dhcp4_parser.cc"
break;
- case 931: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
-#line 3223 "dhcp4_parser.yy"
+ case 936: // ignore_dhcp_server_identifier: "ignore-dhcp-server-identifier" ":" "boolean"
+#line 3238 "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 5033 "dhcp4_parser.cc"
+#line 5054 "dhcp4_parser.cc"
break;
- case 932: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
-#line 3229 "dhcp4_parser.yy"
+ case 937: // ignore_rai_link_selection: "ignore-rai-link-selection" ":" "boolean"
+#line 3244 "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 5043 "dhcp4_parser.cc"
+#line 5064 "dhcp4_parser.cc"
break;
- case 933: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
-#line 3235 "dhcp4_parser.yy"
+ case 938: // exclude_first_last_24: "exclude-first-last-24" ":" "boolean"
+#line 3250 "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 5053 "dhcp4_parser.cc"
+#line 5074 "dhcp4_parser.cc"
break;
-#line 5057 "dhcp4_parser.cc"
+#line 5078 "dhcp4_parser.cc"
default:
break;
@@ -5405,156 +5426,157 @@ namespace isc { namespace dhcp {
}
- const short Dhcp4Parser::yypact_ninf_ = -1336;
+ const short Dhcp4Parser::yypact_ninf_ = -1369;
const signed char Dhcp4Parser::yytable_ninf_ = -1;
const short
Dhcp4Parser::yypact_[] =
{
- 510, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, 65, 30, 56, 82, 90, 98,
- 110, 118, 178, 180, 244, 256, 262, 301, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, 30, -157, 141, 160, 88, 688,
- 337, 558, -11, 269, -39, -98, 452, 249, -1336, 77,
- 132, 149, 161, 154, -1336, 115, -1336, -1336, -1336, -1336,
- 297, 310, 328, -1336, -1336, -1336, 340, 357, -1336, -1336,
- -1336, 360, 364, 384, 441, 443, 444, 445, 449, 450,
- 453, 454, -1336, 456, 462, 465, 466, 469, -1336, -1336,
- -1336, 471, 472, 474, 475, -1336, -1336, -1336, 476, -1336,
- -1336, -1336, -1336, -1336, 478, 479, 481, -1336, -1336, -1336,
- -1336, -1336, 483, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- 484, 486, 489, -1336, -1336, 490, -1336, 125, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- 491, 494, 501, 504, -1336, 128, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, 511, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, 131, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 512,
- -1336, -1336, -1336, -1336, -1336, 138, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, 302, 322, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, 374, -1336, -1336,
- 513, -1336, -1336, -1336, 517, -1336, -1336, 409, 520, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, 521, 522, 523, -1336, -1336, -1336, -1336, -1336,
- 524, 526, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, 144, -1336, -1336, -1336,
- 527, -1336, 529, -1336, 530, 531, -1336, -1336, -1336, -1336,
- -1336, 146, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, 532, 156, -1336, -1336, -1336, -1336, 30, 30,
- -1336, 303, 534, -1336, -1336, 537, 538, 540, 315, 316,
- 318, 546, 547, 550, 327, 330, 553, 557, 566, 344,
- 345, 347, 348, 351, 352, 349, 356, 359, 358, 365,
- 570, 368, 370, 373, 376, 379, 576, 600, 604, 380,
- 381, 385, 386, 617, 619, 620, 397, 622, 623, 624,
- 625, 626, 401, 402, 414, 637, 638, 639, 642, 644,
- 421, 646, 648, 649, 650, 651, 652, 653, 429, 430,
- 431, 658, 659, -1336, 160, -1336, 660, 662, 663, 438,
- 439, 442, 446, 88, -1336, 667, 671, 672, 673, 674,
- 676, 457, 680, 683, 684, 685, 688, -1336, 694, 477,
- 337, -1336, 695, 698, 702, 703, 704, 705, 706, 707,
- -1336, 558, -1336, 709, 710, 487, 712, 713, 733, 508,
- -1336, 269, 735, 514, 515, 516, 736, -1336, -39, 737,
- 738, 147, -1336, 519, 739, 535, 758, 536, 548, 761,
- 776, 452, -1336, 778, 555, 249, -1336, -1336, -1336, 780,
- 779, 781, 782, 783, -1336, -1336, -1336, 560, 564, 565,
- -1336, -1336, 788, 789, 792, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, 571, -1336, -1336, -1336,
- -1336, -1336, -143, 572, 574, -1336, -1336, -1336, -1336, 805,
- 806, 809, -1336, 588, 243, 811, 810, 592, -1336, -1336,
- -1336, 816, 817, 818, 819, 820, -1336, 822, 823, 821,
- 824, 825, 598, 606, -1336, -1336, -1336, 829, 828, -1336,
- 831, 306, 321, -1336, -1336, -1336, -1336, -1336, 610, 611,
- 612, 835, 614, 615, -1336, 831, 831, 616, 837, -1336,
- 618, -1336, -1336, 831, 621, 627, 628, 629, 630, 631,
- 632, -1336, 633, 634, -1336, 635, 636, 640, -1336, -1336,
- 641, -1336, -1336, -1336, 831, -1336, 643, 810, -1336, -1336,
- 645, -1336, 647, -1336, -1336, 18, 656, -1336, 842, -1336,
- -1336, 30, 160, 249, 88, 408, -1336, -1336, -1336, 350,
- 350, 843, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, 844, 845, 846, -1336, -1336, -1336, -1336, -1336, -1336,
- 857, -1336, -1336, -1336, 150, 858, 859, 862, 62, 140,
- 259, 864, 341, 452, -1336, -1336, 866, -112, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 868,
- -1336, -1336, -1336, -1336, -1336, 708, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- 843, -1336, 164, 165, 167, -1336, -1336, 176, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, 872, 873, 874, 875, 876,
- 877, 878, 881, 882, 883, -1336, 884, 885, -1336, -1336,
- -1336, -1336, -1336, 197, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, 214, -1336, 886,
- 887, -1336, -1336, 888, 890, -1336, -1336, 889, 893, -1336,
- -1336, 891, 895, -1336, -1336, 894, 896, -1336, -1336, -1336,
- -1336, -1336, -1336, 175, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, 198, -1336, -1336, 897, 898, -1336, -1336, 899, 901,
- -1336, 902, 903, 904, 905, 906, 907, 215, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, 908, 909, 910, -1336, 285,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 912,
- -1336, 913, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 295,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 914,
- 915, -1336, 917, -1336, 918, -1336, -1336, -1336, 296, -1336,
- -1336, -1336, -1336, -1336, 308, -1336, 264, -1336, 919, 920,
- 921, 922, -1336, 323, -1336, -1336, -1336, -1336, -1336, 664,
- -1336, 923, 916, -1336, -1336, 924, -1336, 925, -1336, -1336,
- -1336, 926, 929, 408, -1336, 930, 931, 932, 933, 699,
- 711, 700, 714, 715, 717, 718, 719, 720, 721, 934,
- 722, 723, 935, 936, 938, 946, 350, -1336, -1336, 350,
- -1336, 843, 688, -1336, 844, 269, -1336, 845, -39, -1336,
- 846, 1342, -1336, 857, 150, -1336, 313, 858, -1336, 558,
- -1336, 859, -98, -1336, 862, 725, 726, 728, 729, 731,
- 732, 62, -1336, 748, 734, 753, 140, -1336, 959, 961,
- 980, 760, 988, 766, 993, 259, -1336, 259, -1336, 864,
- 771, 999, 777, 1007, 341, -1336, -1336, -21, 866, -1336,
- 784, 791, 797, 800, -112, -1336, -1336, 1013, 1028, 337,
- -1336, 868, 1031, -1336, -1336, 675, 814, -1336, 847, 851,
- 855, 892, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, 22, -1336, -1336, 900, 911, 927, 928, -1336,
- 331, -1336, 335, -1336, 1030, -1336, 1036, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, 346, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 1032, 1041,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, 1038, 1048, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, 1076, -1336, 377, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, 54, 937, 939,
- -1336, 1114, -1336, 1121, -1336, 378, -1336, -1336, 940, -1336,
- 30, -1336, -1336, 1124, -1336, -1336, -1336, -1336, -1336, 411,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, 941, 412, -1336, 831, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, 1342, -1336, 1125, 1126, 942, 943, -1336,
- 313, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 51,
- 1127, -1336, -1336, -1336, 1128, 947, 1129, -21, -1336, -1336,
- -1336, -1336, -1336, 944, 949, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, 413, -1336, -1336, -1336, -1336,
- -1336, -1336, 1130, 1132, -1336, 1134, -1336, 951, -1336, -1336,
- -1336, 1133, 1136, 1137, 1138, 51, -1336, 162, -1336, 1127,
- 1139, -1336, 964, 952, 953, 1140, -1336, -1336, -1336, -1336,
- -1336, -1336, 423, -1336, -1336, -1336, -1336, 294, -1336, -1336,
- -1336, -1336, -1336, 1141, 1143, 162, -1336, -86, 1139, -1336,
- -1336, 1144, 1146, -1336, 954, -1336, -1336, 1147, 1148, 1149,
- -1336, 426, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 135,
- -1336, 1141, -1336, 1152, 955, 956, 958, 1153, -86, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, 435, -1336, -1336,
- -1336, -1336, 960, -1336, -1336, -1336, 962, -1336, 1154, 1155,
- 135, -1336, -1336, -1336, 963, 965, -1336, -1336, -1336
+ 632, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, 36, 39, 47, 83, 98, 100,
+ 104, 123, 129, 133, 140, 142, 160, 168, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, 39, -170, 68, 166, 72, 698,
+ 285, 288, -31, 112, 337, -93, 516, 252, -1369, 95,
+ 78, 117, 176, 80, -1369, 50, -1369, -1369, -1369, -1369,
+ 206, 253, 257, -1369, -1369, -1369, 299, 310, -1369, -1369,
+ -1369, 313, 321, 325, 341, 353, 363, 375, 376, 382,
+ 390, 391, -1369, 413, 416, 424, 425, 426, -1369, -1369,
+ -1369, 441, 444, 446, 449, -1369, -1369, -1369, 450, -1369,
+ -1369, -1369, -1369, -1369, 451, 453, 454, -1369, -1369, -1369,
+ -1369, -1369, 455, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ 457, 458, 460, -1369, -1369, 461, -1369, 52, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ 462, 464, 465, 466, -1369, 90, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, 467, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, 96, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, 469, -1369, -1369, -1369, -1369, -1369, -1369, 111, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, 210, 472, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ 468, -1369, -1369, 473, -1369, -1369, -1369, 475, -1369, -1369,
+ 476, 477, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, 479, 481, 483, -1369, -1369,
+ -1369, -1369, -1369, 485, 478, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 119,
+ -1369, -1369, -1369, 487, -1369, 490, -1369, 492, 496, -1369,
+ -1369, -1369, -1369, -1369, 121, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, 499, 134, -1369, -1369, -1369,
+ -1369, 39, 39, -1369, 279, 503, -1369, -1369, 505, 506,
+ 510, 290, 291, 292, 520, 521, 522, 301, 297, 526,
+ 528, 530, 308, 312, 314, 316, 319, 311, 322, 323,
+ 324, 326, 327, 545, 328, 329, 336, 338, 340, 546,
+ 555, 558, 342, 345, 347, 349, 563, 565, 573, 352,
+ 578, 579, 581, 583, 584, 360, 361, 365, 589, 593,
+ 594, 596, 597, 374, 599, 604, 606, 609, 611, 612,
+ 614, 396, 398, 402, 616, 617, -1369, 166, -1369, 619,
+ 629, 630, 408, 409, 412, 414, 72, -1369, 637, 639,
+ 640, 641, 642, 643, 420, 645, 647, 649, 650, 651,
+ 698, -1369, 652, 445, 285, -1369, 670, 678, 679, 680,
+ 681, 682, 688, 689, -1369, 288, -1369, 690, 692, 480,
+ 701, 702, 703, 486, -1369, 112, 705, 488, 489, 491,
+ 711, -1369, 337, 713, 716, 157, -1369, 493, 720, 497,
+ 722, 507, 508, 723, 733, 516, -1369, 738, 517, 252,
+ -1369, -1369, -1369, 740, 739, 743, 744, 745, -1369, -1369,
+ -1369, 527, 529, 532, -1369, -1369, 746, 748, 742, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ 547, -1369, -1369, -1369, -1369, -1369, -124, 548, 559, -1369,
+ -1369, -1369, -1369, 767, 768, 785, -1369, 566, 183, 787,
+ 788, 567, -1369, -1369, -1369, 791, 792, 793, 794, 798,
+ -1369, 799, 800, 795, 801, 802, 574, 598, -1369, -1369,
+ -1369, 806, 813, -1369, 819, 320, 339, -1369, -1369, -1369,
+ -1369, -1369, 600, 602, 605, 821, 607, 608, -1369, 819,
+ 819, 819, 610, 824, -1369, 613, -1369, -1369, 819, 615,
+ 633, 634, 635, 636, 638, 644, -1369, 646, 648, -1369,
+ 653, 654, 655, -1369, -1369, 656, -1369, -1369, -1369, 819,
+ -1369, 657, 788, -1369, -1369, 658, -1369, 659, -1369, -1369,
+ 4, 669, -1369, 828, -1369, -1369, 39, 166, 252, 72,
+ 343, -1369, -1369, -1369, 618, 618, 829, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, 832, 834, 836, -1369,
+ -1369, -1369, -1369, -1369, -1369, 837, -1369, -1369, -1369, 170,
+ 857, 859, 860, 201, 229, 575, 861, -6, 516, -1369,
+ -1369, 862, -95, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, 863, -1369, -1369, -1369, -1369, -1369,
+ -1369, 731, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, 829, -1369, 136, 152,
+ 154, -1369, -1369, 156, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, 870, 872, 873, 874, 875, 883, 884, 885, 886,
+ 887, -1369, 888, 891, -1369, -1369, -1369, -1369, -1369, 162,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, 171, -1369, 890, 894, -1369, -1369, 892,
+ 896, -1369, -1369, 895, 897, -1369, -1369, 898, 899, -1369,
+ -1369, 900, 902, -1369, -1369, -1369, -1369, -1369, -1369, 86,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, 182, -1369, -1369,
+ 901, 905, -1369, -1369, 903, 907, -1369, 908, 909, 910,
+ 911, 912, 913, 173, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, 914, 915, 916, -1369, 204, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, 917, -1369, 918, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, 208, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, 920, 921, -1369, 919, -1369,
+ 923, -1369, -1369, -1369, 307, -1369, -1369, -1369, -1369, -1369,
+ 332, -1369, 188, -1369, 924, 925, 926, 927, -1369, 350,
+ -1369, -1369, -1369, -1369, -1369, 676, -1369, 928, 929, -1369,
+ -1369, 930, -1369, 931, -1369, -1369, -1369, 932, 935, 343,
+ -1369, 936, 937, 938, 939, 683, 714, 707, 715, 718,
+ 719, 721, 724, 725, 726, 944, 727, 728, 946, 947,
+ 951, 954, 618, -1369, -1369, 618, -1369, 829, 698, -1369,
+ 832, 112, -1369, 834, 337, -1369, 836, 1354, -1369, 837,
+ 170, -1369, 262, 857, -1369, 288, -1369, 859, -93, -1369,
+ 860, 732, 734, 735, 737, 741, 749, 201, -1369, 729,
+ 755, 757, 229, -1369, 962, 969, 972, 758, 984, 761,
+ 988, 575, -1369, 575, -1369, 861, 769, 999, 781, 1008,
+ -6, -1369, -1369, 75, 862, -1369, 784, 796, 803, 816,
+ -95, -1369, -1369, 1011, 1019, 285, -1369, 863, 1021, -1369,
+ -1369, 706, 805, -1369, 820, 822, 827, 835, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 218, -1369,
+ -1369, 840, 868, 906, 922, -1369, 366, -1369, 379, -1369,
+ 1047, -1369, 1048, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, 389, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, 1060, 1085, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ 1115, 1125, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 1122,
+ -1369, 393, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, 244, 933, 934, -1369, 1128, -1369,
+ 1127, -1369, 404, -1369, -1369, 940, -1369, 39, -1369, -1369,
+ 1133, -1369, -1369, -1369, -1369, -1369, 410, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 941, 411,
+ -1369, 819, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ 1354, -1369, 1134, 1135, 942, 943, -1369, 262, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, 114, 1136, -1369, -1369,
+ -1369, 1137, 948, 1138, 75, -1369, -1369, -1369, -1369, -1369,
+ 950, 952, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, 435, -1369, -1369, -1369, -1369, -1369, -1369, 1139,
+ 1141, -1369, 1142, -1369, 953, -1369, -1369, -1369, 1144, 1146,
+ 1147, 1148, 114, -1369, -49, -1369, 1136, 1149, -1369, 973,
+ 955, 956, 1150, -1369, -1369, -1369, -1369, -1369, -1369, 436,
+ -1369, -1369, -1369, -1369, 214, -1369, -1369, -1369, -1369, -1369,
+ 1151, 1153, -49, -1369, 17, 1149, -1369, -1369, 1140, 1156,
+ -1369, 957, -1369, -1369, 1158, 1159, 1160, -1369, 438, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, 141, -1369, 1151, -1369,
+ 1161, 945, 958, 959, 1165, 17, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, 439, -1369, -1369, -1369, -1369, 961,
+ -1369, -1369, -1369, 963, -1369, 1166, 1167, 141, -1369, -1369,
+ -1369, 964, 965, -1369, -1369, -1369
};
const short
@@ -5564,18 +5586,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, 602, 13,
- 632, 15, 517, 17, 526, 19, 565, 21, 347, 23,
- 836, 25, 868, 27, 46, 39, 0, 0, 0, 0,
- 0, 634, 0, 528, 567, 0, 0, 0, 48, 0,
- 47, 0, 0, 40, 61, 0, 63, 866, 193, 226,
- 0, 0, 0, 654, 656, 658, 0, 0, 224, 237,
+ 59, 5, 65, 7, 208, 9, 385, 11, 606, 13,
+ 637, 15, 521, 17, 530, 19, 569, 21, 347, 23,
+ 841, 25, 873, 27, 46, 39, 0, 0, 0, 0,
+ 0, 639, 0, 532, 571, 0, 0, 0, 48, 0,
+ 47, 0, 0, 40, 61, 0, 63, 871, 193, 226,
+ 0, 0, 0, 659, 661, 663, 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, 515, 556, 0, 153,
- 174, 459, 619, 621, 0, 0, 0, 309, 681, 623,
- 338, 359, 0, 324, 718, 720, 817, 834, 181, 183,
- 0, 0, 0, 878, 920, 0, 138, 0, 67, 70,
+ 170, 0, 0, 0, 0, 376, 519, 560, 0, 153,
+ 174, 462, 624, 626, 0, 0, 0, 309, 686, 628,
+ 338, 359, 0, 324, 723, 725, 822, 839, 181, 183,
+ 0, 0, 0, 883, 925, 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,
@@ -5584,555 +5606,560 @@ 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, 441, 443, 445, 593,
- 439, 447, 0, 451, 453, 449, 676, 438, 390, 391,
- 392, 393, 394, 418, 419, 420, 421, 422, 436, 408,
- 409, 423, 424, 425, 426, 427, 428, 429, 430, 431,
- 432, 433, 434, 435, 437, 0, 387, 397, 413, 414,
- 415, 398, 400, 401, 402, 404, 405, 406, 399, 395,
- 396, 416, 417, 403, 410, 411, 412, 407, 616, 0,
- 615, 610, 611, 612, 609, 0, 604, 607, 608, 613,
- 614, 674, 660, 662, 664, 668, 666, 672, 670, 653,
- 647, 651, 652, 0, 635, 636, 648, 649, 650, 644,
- 639, 645, 641, 642, 643, 646, 640, 0, 546, 283,
- 0, 550, 548, 553, 0, 542, 543, 0, 529, 530,
- 533, 545, 534, 535, 536, 552, 537, 538, 539, 540,
- 541, 584, 0, 0, 0, 591, 582, 583, 586, 587,
- 0, 568, 569, 572, 573, 574, 575, 576, 577, 578,
- 581, 579, 580, 355, 357, 352, 0, 349, 353, 354,
- 0, 853, 0, 856, 0, 0, 860, 864, 851, 849,
- 850, 0, 838, 841, 842, 843, 844, 845, 846, 847,
- 848, 875, 0, 0, 870, 873, 874, 45, 50, 0,
- 37, 43, 0, 64, 60, 0, 0, 0, 0, 0,
+ 201, 202, 203, 204, 205, 206, 442, 444, 446, 597,
+ 440, 448, 0, 452, 454, 456, 450, 681, 439, 390,
+ 391, 392, 393, 394, 419, 420, 421, 422, 423, 437,
+ 409, 410, 424, 425, 426, 427, 428, 429, 430, 431,
+ 432, 433, 434, 435, 436, 438, 0, 387, 397, 414,
+ 415, 416, 398, 400, 401, 402, 403, 405, 406, 407,
+ 399, 395, 396, 417, 418, 404, 411, 412, 413, 408,
+ 621, 0, 620, 614, 615, 616, 617, 613, 0, 608,
+ 611, 612, 618, 619, 679, 665, 667, 669, 673, 671,
+ 677, 675, 658, 652, 656, 657, 0, 640, 641, 653,
+ 654, 655, 649, 644, 650, 646, 647, 648, 651, 645,
+ 0, 550, 283, 0, 554, 552, 557, 0, 546, 547,
+ 0, 533, 534, 537, 549, 538, 539, 540, 556, 541,
+ 542, 543, 544, 545, 588, 0, 0, 0, 595, 586,
+ 587, 590, 591, 0, 572, 573, 576, 577, 578, 579,
+ 580, 581, 582, 585, 583, 584, 355, 357, 352, 0,
+ 349, 353, 354, 0, 858, 0, 861, 0, 0, 865,
+ 869, 856, 854, 855, 0, 843, 846, 847, 848, 849,
+ 850, 851, 852, 853, 880, 0, 0, 875, 878, 879,
+ 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, 0, 0, 58, 69, 66, 0,
+ 0, 0, 0, 0, 0, 0, 197, 209, 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, 0, 389, 386, 0, 0,
- 606, 603, 0, 0, 0, 0, 0, 0, 0, 0,
- 633, 638, 518, 0, 0, 0, 0, 0, 0, 0,
- 527, 532, 0, 0, 0, 0, 0, 566, 571, 0,
- 0, 351, 348, 0, 0, 0, 0, 0, 0, 0,
- 0, 840, 837, 0, 0, 872, 869, 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, 455, 456,
- 457, 0, 0, 0, 0, 0, 717, 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, 458, 0, 0, 0, 0, 388,
- 0, 618, 605, 0, 0, 0, 0, 0, 0, 0,
- 0, 637, 0, 0, 544, 0, 0, 0, 555, 531,
- 0, 588, 589, 590, 0, 570, 0, 0, 350, 852,
- 0, 855, 0, 858, 859, 0, 0, 839, 0, 877,
- 871, 0, 0, 0, 0, 0, 655, 657, 659, 0,
- 0, 241, 151, 163, 164, 165, 166, 167, 162, 169,
- 171, 378, 519, 558, 154, 176, 177, 178, 179, 175,
- 461, 38, 620, 622, 0, 0, 625, 340, 0, 0,
- 0, 722, 0, 0, 182, 184, 0, 0, 51, 211,
- 214, 215, 213, 218, 219, 217, 442, 444, 446, 595,
- 440, 448, 452, 454, 450, 0, 617, 675, 661, 663,
- 665, 669, 667, 673, 671, 547, 284, 551, 549, 554,
- 585, 592, 356, 358, 854, 857, 862, 863, 861, 865,
- 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, 524, 0, 520, 521,
- 563, 0, 559, 560, 466, 0, 462, 463, 319, 320,
- 321, 322, 323, 0, 311, 314, 315, 316, 317, 318,
- 686, 0, 683, 630, 0, 626, 627, 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, 745, 750, 752, 0,
- 775, 0, 756, 744, 737, 738, 739, 742, 743, 0,
- 729, 732, 733, 734, 735, 740, 741, 736, 727, 0,
- 723, 724, 0, 829, 0, 832, 825, 826, 0, 819,
- 822, 823, 824, 827, 0, 883, 0, 880, 0, 0,
- 0, 0, 929, 0, 922, 925, 926, 927, 928, 53,
- 600, 0, 596, 597, 679, 0, 678, 0, 62, 867,
- 194, 0, 0, 230, 227, 0, 0, 0, 0, 0,
+ 389, 386, 0, 0, 610, 607, 0, 0, 0, 0,
+ 0, 0, 0, 0, 638, 643, 522, 0, 0, 0,
+ 0, 0, 0, 0, 531, 536, 0, 0, 0, 0,
+ 0, 570, 575, 0, 0, 351, 348, 0, 0, 0,
+ 0, 0, 0, 0, 0, 845, 842, 0, 0, 877,
+ 874, 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, 458, 459, 460, 0, 0, 0, 0, 0,
+ 722, 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, 461, 0,
+ 0, 0, 0, 0, 388, 0, 623, 609, 0, 0,
+ 0, 0, 0, 0, 0, 0, 642, 0, 0, 548,
+ 0, 0, 0, 559, 535, 0, 592, 593, 594, 0,
+ 574, 0, 0, 350, 857, 0, 860, 0, 863, 864,
+ 0, 0, 844, 0, 882, 876, 0, 0, 0, 0,
+ 0, 660, 662, 664, 0, 0, 241, 151, 163, 164,
+ 165, 166, 167, 162, 169, 171, 378, 523, 562, 154,
+ 176, 177, 178, 179, 175, 464, 38, 625, 627, 0,
+ 0, 630, 340, 0, 0, 0, 727, 0, 0, 182,
+ 184, 0, 0, 51, 211, 214, 215, 213, 218, 219,
+ 217, 443, 445, 447, 599, 441, 449, 453, 455, 457,
+ 451, 0, 622, 680, 666, 668, 670, 674, 672, 678,
+ 676, 551, 284, 555, 553, 558, 589, 596, 356, 358,
+ 859, 862, 867, 868, 866, 870, 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, 528, 0, 524, 525, 567, 0, 563, 564,
+ 469, 0, 465, 466, 319, 320, 321, 322, 323, 0,
+ 311, 314, 315, 316, 317, 318, 691, 0, 688, 635,
+ 0, 631, 632, 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, 750, 755, 757, 0, 780, 0, 761, 749,
+ 742, 743, 744, 747, 748, 0, 734, 737, 738, 739,
+ 740, 745, 746, 741, 732, 0, 728, 729, 0, 834,
+ 0, 837, 830, 831, 0, 824, 827, 828, 829, 832,
+ 0, 888, 0, 885, 0, 0, 0, 0, 934, 0,
+ 927, 930, 931, 932, 933, 53, 604, 0, 600, 601,
+ 684, 0, 683, 0, 62, 872, 194, 0, 0, 230,
+ 227, 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, 250, 225, 238, 0,
- 240, 245, 0, 377, 382, 528, 516, 523, 567, 557,
- 562, 0, 460, 465, 313, 310, 688, 685, 682, 634,
- 624, 629, 0, 339, 344, 0, 0, 0, 0, 0,
- 0, 363, 360, 0, 0, 0, 328, 325, 0, 0,
- 0, 0, 0, 0, 0, 731, 719, 0, 721, 726,
- 0, 0, 0, 0, 821, 818, 835, 0, 882, 879,
- 0, 0, 0, 0, 924, 921, 55, 0, 54, 0,
- 594, 599, 0, 677, 876, 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, 522, 0, 561, 514, 489,
- 490, 491, 474, 475, 494, 495, 496, 497, 498, 512,
- 477, 478, 499, 500, 501, 502, 503, 504, 505, 506,
- 507, 508, 509, 510, 511, 513, 471, 472, 473, 486,
- 487, 488, 483, 484, 485, 0, 468, 476, 492, 493,
- 479, 480, 481, 482, 464, 312, 711, 713, 0, 0,
- 705, 706, 707, 708, 709, 710, 698, 699, 703, 704,
- 700, 701, 702, 0, 689, 690, 693, 694, 695, 696,
- 697, 684, 0, 628, 0, 343, 370, 371, 372, 373,
- 374, 375, 362, 335, 336, 337, 327, 0, 0, 0,
- 754, 0, 755, 0, 730, 0, 725, 828, 0, 831,
- 0, 820, 898, 0, 896, 894, 888, 892, 893, 0,
- 885, 890, 891, 889, 881, 930, 931, 932, 933, 923,
- 52, 57, 0, 598, 0, 234, 236, 275, 277, 279,
- 281, 296, 297, 298, 295, 302, 304, 306, 308, 247,
- 384, 525, 564, 470, 467, 0, 0, 0, 0, 687,
- 692, 631, 346, 747, 748, 749, 746, 751, 753, 0,
- 758, 728, 830, 833, 0, 0, 0, 887, 884, 56,
- 601, 680, 469, 0, 0, 715, 716, 691, 787, 790,
- 792, 794, 786, 785, 784, 0, 777, 780, 781, 782,
- 783, 763, 0, 759, 760, 0, 895, 0, 886, 712,
- 714, 0, 0, 0, 0, 779, 776, 0, 757, 762,
- 0, 897, 0, 0, 0, 0, 778, 773, 772, 768,
- 770, 771, 0, 765, 769, 761, 903, 0, 900, 789,
- 788, 791, 793, 796, 0, 767, 764, 0, 902, 899,
- 801, 0, 797, 798, 0, 766, 913, 0, 0, 0,
- 918, 0, 905, 908, 909, 910, 911, 912, 901, 0,
- 795, 800, 774, 0, 0, 0, 0, 0, 907, 904,
- 813, 815, 812, 806, 808, 810, 811, 0, 803, 807,
- 809, 799, 0, 915, 916, 917, 0, 906, 0, 0,
- 805, 802, 914, 919, 0, 0, 804, 814, 816
+ 0, 0, 250, 225, 238, 0, 240, 245, 0, 377,
+ 382, 532, 520, 527, 571, 561, 566, 0, 463, 468,
+ 313, 310, 693, 690, 687, 639, 629, 634, 0, 339,
+ 344, 0, 0, 0, 0, 0, 0, 363, 360, 0,
+ 0, 0, 328, 325, 0, 0, 0, 0, 0, 0,
+ 0, 736, 724, 0, 726, 731, 0, 0, 0, 0,
+ 826, 823, 840, 0, 887, 884, 0, 0, 0, 0,
+ 929, 926, 55, 0, 54, 0, 598, 603, 0, 682,
+ 881, 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, 526, 0, 565, 518, 493, 494, 495, 477, 478,
+ 498, 499, 500, 501, 502, 516, 480, 481, 503, 504,
+ 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
+ 515, 517, 474, 475, 476, 489, 490, 491, 492, 486,
+ 487, 488, 0, 471, 479, 496, 497, 482, 483, 484,
+ 485, 467, 312, 716, 718, 0, 0, 710, 711, 712,
+ 713, 714, 715, 703, 704, 708, 709, 705, 706, 707,
+ 0, 694, 695, 698, 699, 700, 701, 702, 689, 0,
+ 633, 0, 343, 370, 371, 372, 373, 374, 375, 362,
+ 335, 336, 337, 327, 0, 0, 0, 759, 0, 760,
+ 0, 735, 0, 730, 833, 0, 836, 0, 825, 903,
+ 0, 901, 899, 893, 897, 898, 0, 890, 895, 896,
+ 894, 886, 935, 936, 937, 938, 928, 52, 57, 0,
+ 602, 0, 234, 236, 275, 277, 279, 281, 296, 297,
+ 298, 295, 302, 304, 306, 308, 247, 384, 529, 568,
+ 473, 470, 0, 0, 0, 0, 692, 697, 636, 346,
+ 752, 753, 754, 751, 756, 758, 0, 763, 733, 835,
+ 838, 0, 0, 0, 892, 889, 56, 605, 685, 472,
+ 0, 0, 720, 721, 696, 792, 795, 797, 799, 791,
+ 790, 789, 0, 782, 785, 786, 787, 788, 768, 0,
+ 764, 765, 0, 900, 0, 891, 717, 719, 0, 0,
+ 0, 0, 784, 781, 0, 762, 767, 0, 902, 0,
+ 0, 0, 0, 783, 778, 777, 773, 775, 776, 0,
+ 770, 774, 766, 908, 0, 905, 794, 793, 796, 798,
+ 801, 0, 772, 769, 0, 907, 904, 806, 0, 802,
+ 803, 0, 771, 918, 0, 0, 0, 923, 0, 910,
+ 913, 914, 915, 916, 917, 906, 0, 800, 805, 779,
+ 0, 0, 0, 0, 0, 912, 909, 818, 820, 817,
+ 811, 813, 815, 816, 0, 808, 812, 814, 804, 0,
+ 920, 921, 922, 0, 911, 0, 0, 810, 807, 919,
+ 924, 0, 0, 809, 819, 821
};
const short
Dhcp4Parser::yypgoto_[] =
{
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -53, -1336, -588, -1336, 447,
- -1336, -1336, -1336, -1336, -1336, -1336, -632, -1336, -1336, -1336,
- -67, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 448, 657,
- -37, 33, 37, -54, -29, -16, 27, 39, 55, 57,
- -1336, -1336, -1336, -1336, 58, -1336, -1336, 61, 63, 68,
- 69, 71, 73, -1336, -1336, 74, -1336, 75, -1336, 76,
- 79, 81, -1336, -1336, 86, 87, -1336, 89, -1336, 91,
- -1336, -1336, -1336, -1336, -1336, 45, -1336, -1336, -1336, 451,
- 661, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- 169, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 343,
- -1336, 142, -1336, -697, 153, -1336, -1336, -1335, -1336, -1325,
- -1336, -1336, -1336, -1336, -45, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -738, -1336, -737, -1336, -732, -1336, -1336, -1336, -1336, -1336,
- -1336, 136, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- 126, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 139, -1336,
- -1336, -1336, 151, 654, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, 137, -1336, -1336, -1336, -1336, -1336, -1336, -1005, -1336,
- -1336, -1336, 170, -1336, -1336, -1336, 173, 665, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1001, -1336, -65, -1336,
- -23, -1336, -18, -1336, 92, 93, 94, -1336, -1336, -1336,
- -1336, -1336, 163, -1336, -1336, -76, -62, -1336, -1336, -1336,
- -1336, -1336, 171, -1336, -1336, -1336, 174, -1336, 666, -1336,
- -58, -1336, -1336, -1336, -1336, -1336, -57, -1336, -1336, -1336,
- -1336, -1336, -27, -1336, -1336, -1336, 172, -1336, -1336, -1336,
- 177, -1336, 668, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, 109, -1336, -1336,
- -1336, 112, 677, -1336, -1336, -1336, -49, -1336, -2, -1336,
- -55, -1336, -1336, -1336, 168, -1336, -1336, -1336, 181, -1336,
- 669, 11, -1336, 17, -1336, 21, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1000, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, 166, -1336, -1336, -1336, -69, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- 143, -1336, 158, 182, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -135, -1336, -1336,
- -151, -1336, -1336, -1336, -1336, -1336, -119, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -170, -1336,
- -1336, -197, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 155,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- 480, 670, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, 525,
- 679, -1336, -1336, -1336, -1336, -1336, -1336, 159, -1336, -1336,
- -70, -1336, -1336, -1336, -1336, -1336, -1336, -136, -1336, -1336,
- -164, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336, -1336,
- -1336, 179, -1336, -1336, -1336, -1336
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -59, -1369, -599, -1369, 452,
+ -1369, -1369, -1369, -1369, -1369, -1369, -636, -1369, -1369, -1369,
+ -67, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 482, 667,
+ 16, 31, 33, -26, -13, 13, 41, 44, 51, 54,
+ -1369, -1369, -1369, -1369, 56, -1369, -1369, 59, 62, 64,
+ 66, 69, 74, -1369, -1369, 76, -1369, 77, -1369, 79,
+ 81, 82, -1369, -1369, 84, 87, -1369, 89, -1369, 92,
+ -1369, -1369, -1369, -1369, -1369, 43, -1369, -1369, -1369, 434,
+ 665, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ 186, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 383,
+ -1369, 167, -1369, -709, 174, -1369, -1369, -1368, -1369, -1347,
+ -1369, -1369, -1369, -1369, -63, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -741, -1369, -740, -1369, -737, -1369, -1369, -1369, -1369, -1369,
+ -1369, 153, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ 135, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 145, -1369,
+ -1369, -1369, 150, 660, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, 143, -1369, -1369, -1369, -1369, -1369, -1369, -1020, -1369,
+ -1369, -1369, 172, -1369, -1369, -1369, 175, 671, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1018, -1369, -29, -1369,
+ -18, -1369, 5, -1369, 71, -1369, 94, 97, 99, -1369,
+ -1369, -1369, -1369, -1369, 165, -1369, -1369, -75, -60, -1369,
+ -1369, -1369, -1369, -1369, 177, -1369, -1369, -1369, 178, -1369,
+ 661, -1369, -34, -1369, -1369, -1369, -1369, -1369, -27, -1369,
+ -1369, -1369, -1369, -1369, -32, -1369, -1369, -1369, 179, -1369,
+ -1369, -1369, 180, -1369, 664, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, 109,
+ -1369, -1369, -1369, 113, 673, -1369, -1369, -1369, -44, -1369,
+ 3, -1369, -56, -1369, -1369, -1369, 164, -1369, -1369, -1369,
+ 185, -1369, 674, -48, -1369, -7, -1369, 15, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1017, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, 169, -1369, -1369, -1369, -69, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, 146, -1369, 149, 163, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -123,
+ -1369, -1369, -144, -1369, -1369, -1369, -1369, -1369, -111, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -165, -1369, -1369, -192, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, 158, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, 484, 672, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, 531, 666, -1369, -1369, -1369, -1369, -1369, -1369, 181,
+ -1369, -1369, -64, -1369, -1369, -1369, -1369, -1369, -1369, -131,
+ -1369, -1369, -159, -1369, -1369, -1369, -1369, -1369, -1369, -1369,
+ -1369, -1369, -1369, 184, -1369, -1369, -1369, -1369
};
const short
Dhcp4Parser::yydefgoto_[] =
{
0, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 36, 37, 38, 65, 742,
- 82, 83, 39, 64, 79, 80, 759, 979, 1087, 1088,
- 832, 41, 66, 85, 432, 86, 43, 67, 157, 158,
+ 23, 24, 25, 26, 27, 36, 37, 38, 65, 747,
+ 82, 83, 39, 64, 79, 80, 764, 985, 1093, 1094,
+ 838, 41, 66, 85, 435, 86, 43, 67, 157, 158,
159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 170, 460, 171, 172, 477, 173, 174, 175, 176,
- 177, 178, 179, 466, 728, 180, 467, 181, 468, 182,
- 183, 184, 478, 739, 185, 186, 496, 187, 497, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 436, 235,
- 236, 45, 68, 237, 506, 238, 507, 762, 239, 508,
- 765, 240, 241, 242, 243, 197, 446, 198, 437, 807,
- 808, 809, 991, 810, 992, 199, 447, 200, 448, 859,
- 860, 861, 1019, 833, 834, 835, 995, 836, 996, 837,
- 997, 838, 998, 839, 840, 544, 841, 842, 843, 844,
- 845, 846, 847, 848, 849, 850, 1009, 1264, 851, 852,
- 853, 1012, 854, 1013, 855, 1014, 856, 1015, 201, 485,
- 883, 884, 885, 886, 887, 888, 889, 202, 491, 919,
- 920, 921, 922, 923, 203, 488, 898, 899, 900, 1042,
- 59, 75, 396, 397, 398, 559, 399, 560, 204, 489,
- 907, 908, 909, 910, 911, 912, 913, 914, 205, 473,
- 863, 864, 865, 1022, 47, 69, 285, 286, 287, 519,
- 288, 515, 289, 516, 290, 517, 291, 520, 292, 524,
- 293, 522, 294, 523, 206, 207, 208, 298, 209, 479,
- 875, 876, 877, 1031, 1165, 1166, 210, 474, 53, 72,
- 867, 868, 869, 1025, 55, 73, 357, 358, 359, 360,
- 361, 362, 363, 543, 364, 547, 365, 546, 366, 367,
- 548, 368, 211, 475, 871, 872, 873, 1028, 57, 74,
- 380, 381, 382, 383, 384, 552, 385, 386, 387, 388,
- 389, 390, 556, 300, 518, 981, 982, 983, 1089, 49,
- 70, 315, 316, 317, 528, 318, 212, 480, 213, 481,
- 214, 487, 894, 895, 896, 1039, 51, 71, 333, 334,
- 335, 215, 441, 216, 442, 217, 443, 339, 533, 340,
- 534, 341, 535, 342, 537, 343, 536, 344, 539, 345,
- 538, 346, 532, 307, 525, 985, 986, 1092, 218, 486,
- 891, 892, 1036, 1193, 1194, 1195, 1196, 1197, 1275, 1198,
- 1276, 1199, 1200, 219, 220, 492, 221, 493, 949, 950,
- 951, 1067, 939, 940, 941, 1058, 1286, 942, 1059, 943,
- 1060, 944, 945, 946, 1064, 1322, 1323, 1324, 1337, 1352,
- 1353, 1354, 1364, 947, 1062, 1315, 1316, 1317, 1331, 1360,
- 1318, 1332, 1319, 1333, 1320, 1334, 1371, 1372, 1373, 1389,
- 1407, 1408, 1409, 1418, 1410, 1419, 222, 494, 958, 959,
- 960, 961, 1071, 962, 963, 1073, 223, 495, 61, 76,
- 411, 412, 413, 414, 564, 415, 416, 566, 417, 418,
- 419, 569, 798, 420, 570, 224, 435, 63, 77, 423,
- 424, 425, 573, 426, 225, 501, 966, 967, 1077, 1239,
- 1240, 1241, 1242, 1296, 1243, 1294, 1357, 1358, 1367, 1381,
- 1382, 1383, 1393, 1384, 1385, 1386, 1387, 1397, 226, 502,
- 973, 974, 975, 976, 977, 978
+ 169, 170, 463, 171, 172, 480, 173, 174, 175, 176,
+ 177, 178, 179, 469, 733, 180, 470, 181, 471, 182,
+ 183, 184, 481, 744, 185, 186, 499, 187, 500, 188,
+ 189, 190, 191, 192, 193, 194, 195, 196, 439, 235,
+ 236, 45, 68, 237, 509, 238, 510, 767, 239, 511,
+ 770, 240, 241, 242, 243, 197, 449, 198, 440, 813,
+ 814, 815, 997, 816, 998, 199, 450, 200, 451, 865,
+ 866, 867, 1025, 839, 840, 841, 1001, 842, 1002, 843,
+ 1003, 844, 1004, 845, 846, 548, 847, 848, 849, 850,
+ 851, 852, 853, 854, 855, 856, 1015, 1271, 857, 858,
+ 859, 1018, 860, 1019, 861, 1020, 862, 1021, 201, 488,
+ 889, 890, 891, 892, 893, 894, 895, 202, 494, 925,
+ 926, 927, 928, 929, 203, 491, 904, 905, 906, 1048,
+ 59, 75, 399, 400, 401, 563, 402, 564, 204, 492,
+ 913, 914, 915, 916, 917, 918, 919, 920, 205, 476,
+ 869, 870, 871, 1028, 47, 69, 286, 287, 288, 522,
+ 289, 518, 290, 519, 291, 520, 292, 523, 293, 528,
+ 294, 525, 295, 526, 296, 527, 206, 207, 208, 300,
+ 209, 482, 881, 882, 883, 1037, 1172, 1173, 210, 477,
+ 53, 72, 873, 874, 875, 1031, 55, 73, 360, 361,
+ 362, 363, 364, 365, 366, 547, 367, 551, 368, 550,
+ 369, 370, 552, 371, 211, 478, 877, 878, 879, 1034,
+ 57, 74, 383, 384, 385, 386, 387, 556, 388, 389,
+ 390, 391, 392, 393, 560, 302, 521, 987, 988, 989,
+ 1095, 49, 70, 318, 319, 320, 532, 321, 212, 483,
+ 213, 484, 214, 490, 900, 901, 902, 1045, 51, 71,
+ 336, 337, 338, 215, 444, 216, 445, 217, 446, 342,
+ 537, 343, 538, 344, 539, 345, 541, 346, 540, 347,
+ 543, 348, 542, 349, 536, 309, 529, 991, 992, 1098,
+ 218, 489, 897, 898, 1042, 1200, 1201, 1202, 1203, 1204,
+ 1282, 1205, 1283, 1206, 1207, 219, 220, 495, 221, 496,
+ 955, 956, 957, 1073, 945, 946, 947, 1064, 1293, 948,
+ 1065, 949, 1066, 950, 951, 952, 1070, 1329, 1330, 1331,
+ 1344, 1359, 1360, 1361, 1371, 953, 1068, 1322, 1323, 1324,
+ 1338, 1367, 1325, 1339, 1326, 1340, 1327, 1341, 1378, 1379,
+ 1380, 1396, 1414, 1415, 1416, 1425, 1417, 1426, 222, 497,
+ 964, 965, 966, 967, 1077, 968, 969, 1079, 223, 498,
+ 61, 76, 414, 415, 416, 417, 568, 418, 419, 570,
+ 420, 421, 422, 573, 804, 423, 574, 224, 438, 63,
+ 77, 426, 427, 428, 577, 429, 225, 504, 972, 973,
+ 1083, 1246, 1247, 1248, 1249, 1303, 1250, 1301, 1364, 1365,
+ 1374, 1388, 1389, 1390, 1400, 1391, 1392, 1393, 1394, 1404,
+ 226, 505, 979, 980, 981, 982, 983, 984
};
const short
Dhcp4Parser::yytable_[] =
{
- 156, 234, 257, 310, 329, 311, 355, 376, 395, 408,
- 347, 78, 934, 935, 303, 261, 378, 379, 936, 244,
- 301, 319, 331, 857, 369, 391, 1157, 409, 356, 377,
- 1158, 1173, 258, 772, 773, 29, 796, 30, 741, 31,
- 262, 777, 299, 314, 330, 393, 394, 312, 723, 724,
- 725, 726, 313, 263, 1403, 349, 371, 350, 351, 372,
- 373, 374, 791, 40, 1404, 28, 245, 302, 320, 332,
- 81, 370, 392, 349, 410, 132, 133, 1261, 1262, 1263,
- 304, 126, 336, 427, 375, 1403, 305, 727, 337, 42,
- 306, 1308, 338, 132, 133, 1404, 264, 44, 968, 969,
- 970, 971, 259, 227, 228, 46, 260, 229, 265, 741,
- 230, 231, 232, 233, 284, 155, 1376, 48, 433, 1377,
- 1378, 1379, 1380, 434, 266, 50, 267, 268, 504, 155,
- 269, 513, 270, 505, 526, 428, 514, 271, 272, 527,
- 273, 530, 274, 275, 276, 277, 531, 561, 278, 571,
- 279, 84, 562, 429, 572, 280, 281, 431, 282, 575,
- 283, 295, 296, 297, 576, 132, 133, 504, 575, 430,
- 513, 87, 988, 989, 88, 990, 812, 813, 1034, 993,
- 1232, 1035, 1233, 1234, 994, 52, 89, 54, 155, 90,
- 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
- 1016, 1037, 132, 133, 1038, 1017, 155, 797, 901, 902,
- 903, 904, 905, 906, 1283, 1284, 1285, 1016, 1051, 1309,
- 1310, 1311, 1018, 1052, 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, 132,
- 133, 56, 126, 127, 132, 133, 349, 32, 33, 34,
- 35, 421, 422, 58, 128, 129, 130, 1078, 1157, 60,
- 1079, 131, 1158, 1173, 132, 133, 132, 133, 155, 134,
- 135, 136, 137, 138, 878, 879, 880, 881, 1056, 882,
- 393, 394, 139, 1057, 915, 916, 917, 1368, 1065, 1074,
- 1369, 438, 140, 1066, 1075, 141, 1400, 1401, 62, 348,
- 540, 571, 142, 143, 439, 155, 1076, 144, 145, 828,
- 829, 830, 1120, 760, 761, 541, 1084, 934, 935, 934,
- 935, 1085, 440, 936, 1016, 936, 146, 1347, 526, 1269,
- 147, 763, 764, 1270, 444, 93, 94, 95, 96, 1273,
- 735, 736, 737, 738, 1274, 148, 149, 150, 151, 152,
- 153, 445, 155, 349, 449, 350, 351, 155, 450, 154,
- 352, 353, 354, 132, 133, 577, 578, 101, 102, 103,
- 561, 1065, 542, 132, 133, 1282, 1291, 155, 451, 155,
- 811, 812, 813, 814, 815, 816, 817, 818, 819, 820,
- 821, 822, 823, 824, 825, 126, 127, 349, 826, 827,
- 828, 829, 830, 831, 1297, 530, 1335, 550, 926, 1298,
- 1300, 1336, 927, 928, 929, 930, 1365, 132, 133, 1398,
- 127, 1366, 931, 932, 1399, 805, 806, 156, 1420, 1176,
- 1177, 1178, 1179, 1421, 349, 452, 234, 453, 454, 455,
- 308, 132, 133, 456, 457, 132, 133, 458, 459, 257,
- 461, 253, 254, 310, 244, 311, 462, 255, 309, 463,
- 464, 303, 261, 465, 329, 469, 470, 301, 471, 472,
- 476, 319, 482, 483, 355, 484, 155, 490, 498, 258,
- 499, 376, 331, 500, 503, 509, 155, 262, 510, 299,
- 378, 379, 369, 314, 408, 511, 356, 312, 512, 391,
- 263, 245, 313, 377, 330, 521, 529, 545, 952, 953,
- 954, 549, 409, 551, 302, 553, 554, 555, 320, 558,
- 579, 563, 557, 565, 567, 568, 574, 304, 580, 332,
- 155, 581, 582, 305, 583, 584, 585, 306, 586, 370,
- 587, 588, 336, 264, 589, 590, 392, 592, 337, 259,
- 591, 593, 338, 260, 155, 265, 132, 133, 955, 410,
- 594, 284, 595, 596, 606, 597, 598, 155, 601, 599,
- 612, 266, 600, 267, 268, 602, 604, 269, 603, 270,
- 93, 94, 95, 605, 271, 272, 607, 273, 608, 274,
- 275, 276, 277, 609, 613, 278, 610, 279, 614, 611,
- 615, 616, 280, 281, 617, 282, 618, 283, 295, 296,
- 297, 619, 1301, 620, 621, 622, 623, 624, 625, 626,
- 627, 628, 629, 400, 401, 402, 403, 404, 405, 406,
- 407, 631, 632, 633, 630, 156, 634, 234, 635, 636,
- 637, 127, 638, 639, 640, 641, 642, 643, 801, 644,
- 645, 646, 647, 648, 650, 244, 651, 652, 653, 654,
- 655, 658, 132, 133, 656, 659, 660, 661, 662, 155,
- 663, 321, 918, 933, 665, 664, 408, 666, 667, 668,
- 972, 322, 323, 324, 325, 326, 327, 328, 670, 673,
- 924, 937, 674, 956, 409, 671, 675, 676, 677, 678,
- 679, 680, 245, 682, 683, 684, 685, 686, 91, 92,
- 93, 94, 95, 96, 1, 2, 3, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 13, 687, 688, 690,
- 694, 696, 697, 700, 691, 692, 693, 925, 938, 699,
- 957, 410, 101, 102, 103, 104, 105, 106, 107, 108,
- 109, 110, 702, 701, 703, 705, 115, 116, 117, 118,
- 119, 120, 121, 122, 123, 124, 704, 246, 247, 248,
- 706, 127, 708, 709, 711, 155, 712, 716, 713, 714,
- 715, 717, 718, 129, 130, 719, 720, 721, 722, 729,
- 249, 730, 132, 133, 250, 251, 252, 134, 135, 136,
- 731, 732, 253, 254, 733, 734, 740, 30, 255, 743,
- 139, 744, 745, 746, 747, 754, 751, 748, 256, 749,
- 750, 752, 753, 755, 756, 757, 758, 766, 767, 768,
- 769, 770, 771, 774, 775, 776, 799, 800, 778, 984,
- 858, 862, 866, 870, 779, 780, 781, 782, 783, 784,
- 785, 786, 787, 788, 874, 890, 893, 789, 790, 897,
- 792, 948, 794, 965, 795, 980, 999, 1000, 1001, 1002,
- 1003, 1004, 1005, 148, 149, 1006, 1007, 1008, 1010, 1011,
- 1021, 1086, 1020, 1024, 1023, 1026, 1027, 1029, 1030, 1033,
- 1032, 1041, 1255, 1040, 1044, 1043, 1045, 1046, 1047, 1048,
- 1049, 1050, 1053, 1054, 1055, 155, 1061, 1063, 1069, 1091,
- 1068, 1070, 1072, 1080, 1081, 1082, 1083, 1102, 1104, 1090,
- 1095, 1094, 1093, 1096, 1098, 1099, 1100, 1101, 1112, 1115,
- 1116, 1103, 1117, 1106, 1105, 1107, 1108, 1109, 1110, 1111,
- 1118, 1114, 1113, 1206, 1207, 257, 1208, 1209, 355, 1210,
- 1211, 376, 1214, 1217, 1128, 1218, 1159, 303, 261, 1180,
- 378, 379, 329, 301, 1186, 395, 369, 1132, 1213, 391,
- 356, 1215, 1168, 377, 1219, 258, 1156, 1188, 1220, 918,
- 331, 1185, 1221, 262, 1129, 299, 1222, 1223, 933, 1181,
- 933, 1227, 1133, 1228, 1167, 1229, 263, 924, 1160, 1187,
- 1235, 1230, 330, 1161, 1245, 1134, 937, 972, 937, 1250,
- 302, 1246, 310, 370, 311, 956, 392, 1247, 1237, 1169,
- 1248, 1251, 1236, 304, 1189, 1254, 1277, 332, 1271, 305,
- 319, 1256, 1170, 306, 1272, 1278, 1279, 1190, 1171, 264,
- 336, 1280, 1172, 1191, 925, 259, 337, 1192, 1135, 260,
- 338, 265, 314, 938, 1130, 938, 312, 284, 1131, 1182,
- 1136, 313, 957, 1183, 1257, 1238, 1155, 266, 1258, 267,
- 268, 1184, 1259, 269, 1281, 270, 1137, 320, 1138, 1139,
- 271, 272, 1140, 273, 1141, 274, 275, 276, 277, 1142,
- 1143, 278, 1144, 279, 1145, 1146, 1147, 1148, 280, 281,
- 1149, 282, 1150, 283, 295, 296, 297, 1151, 1152, 1260,
- 1153, 1289, 1154, 1162, 1163, 1164, 1290, 1265, 1295, 1303,
- 1304, 1359, 1325, 1327, 1321, 1339, 1338, 1342, 1266, 1340,
- 1343, 1344, 1345, 987, 793, 1363, 1356, 1374, 1370, 1391,
- 1390, 1394, 1395, 1396, 1267, 1268, 1412, 1416, 1424, 1425,
- 802, 649, 1097, 1121, 1287, 804, 1288, 1292, 1299, 1119,
- 1175, 1329, 1305, 1306, 657, 1326, 1330, 1293, 1341, 1361,
- 1362, 1392, 1216, 1205, 1414, 1413, 1415, 1422, 1212, 1423,
- 1427, 669, 1428, 1204, 1123, 1122, 1174, 1302, 1125, 1124,
- 1253, 1252, 1127, 1201, 1355, 1126, 1128, 672, 1159, 1203,
- 681, 1307, 1226, 1180, 1375, 698, 1346, 689, 1186, 1132,
- 1202, 1411, 1312, 1426, 1168, 1225, 695, 1328, 1156, 1231,
- 1235, 1188, 1388, 964, 1417, 1185, 1129, 1244, 803, 0,
- 1313, 707, 0, 1181, 1133, 0, 1167, 1224, 1237, 0,
- 1160, 0, 1236, 1187, 710, 1161, 0, 1134, 0, 0,
- 0, 0, 0, 1249, 0, 0, 0, 0, 1312, 0,
- 1348, 1169, 0, 0, 0, 0, 0, 0, 1189, 0,
- 0, 0, 0, 0, 1170, 0, 1313, 1314, 1350, 0,
- 1171, 1190, 1349, 0, 1172, 1238, 0, 1191, 1348, 0,
- 1135, 1192, 0, 0, 0, 0, 1130, 0, 0, 0,
- 1131, 0, 1136, 1182, 0, 0, 1350, 1183, 1155, 0,
- 1349, 0, 1402, 0, 0, 1184, 0, 0, 1137, 0,
- 1138, 1139, 0, 1314, 1140, 1351, 1141, 0, 0, 0,
- 1405, 1142, 1143, 0, 1144, 0, 1145, 1146, 1147, 1148,
- 0, 0, 1149, 1402, 1150, 0, 0, 0, 0, 1151,
- 1152, 0, 1153, 1351, 1154, 1162, 1163, 1164, 0, 0,
- 0, 1405, 91, 92, 93, 94, 95, 96, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1406, 0, 0,
+ 156, 234, 258, 312, 332, 78, 358, 379, 398, 411,
+ 359, 380, 350, 305, 940, 941, 863, 1163, 942, 1164,
+ 1180, 306, 802, 339, 244, 303, 322, 334, 1410, 372,
+ 394, 746, 412, 777, 778, 779, 28, 301, 317, 333,
+ 381, 313, 783, 262, 29, 352, 30, 382, 31, 1411,
+ 396, 397, 314, 436, 40, 507, 263, 81, 437, 1410,
+ 508, 126, 307, 797, 340, 132, 133, 728, 729, 730,
+ 731, 245, 304, 323, 335, 315, 373, 395, 84, 413,
+ 1411, 431, 264, 434, 308, 259, 341, 227, 228, 1040,
+ 42, 229, 1041, 516, 230, 231, 232, 233, 517, 530,
+ 260, 430, 261, 746, 531, 44, 732, 46, 132, 133,
+ 265, 48, 285, 266, 534, 974, 975, 976, 977, 535,
+ 267, 432, 565, 268, 575, 269, 1354, 566, 270, 576,
+ 50, 271, 155, 272, 155, 273, 52, 579, 274, 507,
+ 54, 316, 580, 275, 994, 276, 277, 56, 278, 58,
+ 279, 280, 351, 281, 1315, 579, 282, 516, 283, 999,
+ 995, 284, 996, 297, 1000, 1022, 298, 60, 299, 352,
+ 1023, 958, 959, 960, 1022, 62, 1057, 87, 155, 1024,
+ 88, 1058, 818, 819, 433, 1043, 132, 133, 1044, 132,
+ 133, 1084, 89, 803, 1085, 90, 91, 92, 93, 94,
+ 95, 96, 97, 98, 99, 100, 352, 1062, 353, 354,
+ 441, 1071, 1063, 355, 356, 357, 1072, 1375, 544, 1383,
+ 1376, 961, 1384, 1385, 1386, 1387, 132, 133, 132, 133,
+ 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, 132, 133, 442, 126, 127,
+ 1163, 443, 1164, 1180, 424, 425, 32, 33, 34, 35,
+ 128, 129, 130, 1268, 1269, 1270, 1239, 131, 1240, 1241,
+ 132, 133, 1316, 1317, 1318, 134, 135, 136, 137, 138,
+ 740, 741, 742, 743, 93, 94, 95, 96, 139, 155,
+ 396, 397, 155, 447, 884, 885, 886, 887, 140, 888,
+ 1080, 141, 1407, 1408, 448, 1081, 1126, 452, 142, 143,
+ 93, 94, 95, 144, 145, 453, 101, 102, 103, 454,
+ 940, 941, 940, 941, 942, 575, 942, 765, 766, 155,
+ 1082, 155, 146, 132, 133, 455, 147, 907, 908, 909,
+ 910, 911, 912, 1090, 126, 127, 352, 456, 1091, 768,
+ 769, 148, 149, 150, 151, 152, 153, 457, 155, 1022,
+ 811, 812, 581, 582, 1276, 154, 132, 133, 127, 458,
+ 459, 127, 530, 921, 922, 923, 460, 1277, 1183, 1184,
+ 1185, 1186, 1280, 155, 461, 462, 565, 1281, 310, 132,
+ 133, 1289, 132, 133, 1290, 1291, 1292, 1071, 253, 254,
+ 255, 324, 1298, 1304, 534, 256, 311, 464, 1305, 1307,
+ 465, 325, 326, 327, 328, 329, 330, 331, 466, 467,
+ 468, 352, 374, 353, 354, 375, 376, 377, 1342, 1372,
+ 156, 1405, 1427, 1343, 1373, 472, 1406, 1428, 473, 234,
+ 474, 132, 133, 475, 479, 485, 155, 486, 487, 493,
+ 378, 501, 502, 258, 503, 506, 512, 312, 513, 514,
+ 515, 524, 244, 533, 305, 545, 546, 549, 332, 553,
+ 555, 562, 306, 557, 554, 558, 303, 559, 358, 155,
+ 322, 567, 359, 561, 569, 379, 571, 339, 301, 380,
+ 572, 334, 317, 578, 262, 313, 583, 584, 411, 585,
+ 586, 372, 155, 333, 587, 155, 314, 263, 394, 245,
+ 588, 589, 590, 307, 591, 592, 593, 595, 381, 594,
+ 596, 412, 597, 304, 598, 382, 599, 323, 340, 315,
+ 600, 604, 601, 264, 602, 308, 259, 603, 335, 610,
+ 616, 605, 606, 607, 608, 609, 611, 612, 373, 617,
+ 341, 260, 618, 261, 155, 395, 613, 623, 614, 624,
+ 615, 265, 619, 285, 266, 620, 621, 625, 413, 622,
+ 626, 267, 627, 628, 268, 629, 269, 630, 631, 270,
+ 632, 633, 271, 635, 272, 634, 273, 636, 637, 274,
+ 638, 639, 640, 641, 275, 316, 276, 277, 642, 278,
+ 643, 279, 280, 644, 281, 645, 646, 282, 647, 283,
+ 651, 652, 284, 654, 297, 1308, 648, 298, 649, 299,
+ 132, 133, 650, 655, 656, 834, 835, 836, 657, 658,
+ 659, 662, 660, 663, 664, 665, 666, 667, 668, 669,
+ 156, 670, 234, 671, 672, 673, 675, 807, 817, 818,
+ 819, 820, 821, 822, 823, 824, 825, 826, 827, 828,
+ 829, 830, 831, 676, 678, 244, 832, 833, 834, 835,
+ 836, 837, 679, 680, 681, 682, 683, 924, 939, 132,
+ 133, 411, 684, 685, 687, 978, 688, 403, 404, 405,
+ 406, 407, 408, 409, 410, 690, 691, 692, 689, 695,
+ 930, 943, 352, 962, 412, 699, 693, 701, 696, 697,
+ 702, 698, 245, 704, 705, 706, 707, 710, 91, 92,
+ 93, 94, 95, 96, 932, 708, 709, 711, 933, 934,
+ 935, 936, 713, 155, 716, 714, 717, 726, 937, 938,
+ 718, 719, 720, 724, 721, 725, 722, 931, 944, 723,
+ 963, 413, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 736, 737, 727, 734, 115, 116, 117, 118,
+ 119, 120, 121, 122, 123, 124, 735, 246, 247, 248,
+ 738, 127, 745, 739, 748, 30, 749, 750, 751, 752,
+ 756, 759, 155, 129, 130, 753, 754, 755, 757, 758,
+ 249, 761, 132, 133, 250, 251, 252, 134, 135, 136,
+ 762, 253, 254, 255, 763, 760, 774, 771, 256, 772,
+ 139, 781, 773, 806, 775, 776, 864, 780, 257, 868,
+ 782, 872, 784, 876, 880, 155, 1, 2, 3, 4,
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 805,
+ 785, 786, 787, 788, 896, 789, 899, 903, 954, 971,
+ 986, 790, 990, 791, 1005, 792, 1006, 1007, 1008, 1009,
+ 793, 794, 795, 796, 798, 800, 801, 1010, 1011, 1012,
+ 1013, 1014, 1016, 148, 149, 1017, 1026, 1027, 1029, 1030,
+ 1033, 1032, 1036, 1092, 1035, 1039, 1038, 1046, 1047, 1049,
+ 1050, 1108, 1051, 1052, 1053, 1054, 1055, 1056, 1059, 1060,
+ 1061, 1067, 1069, 1076, 1075, 155, 1074, 1078, 1086, 1087,
+ 1088, 1089, 1097, 1262, 1096, 1110, 1101, 1100, 1099, 1102,
+ 1104, 1105, 1106, 1107, 1109, 1111, 1112, 1113, 1118, 1114,
+ 1121, 1122, 1115, 1116, 1117, 1123, 1120, 1119, 1124, 1220,
+ 1213, 258, 1214, 1215, 358, 1216, 1224, 379, 359, 1217,
+ 1134, 380, 305, 1225, 1162, 1187, 1226, 1218, 332, 1192,
+ 306, 398, 1193, 1221, 303, 1222, 1227, 372, 1228, 1177,
+ 394, 1229, 1230, 1175, 1197, 924, 301, 339, 1195, 1234,
+ 381, 334, 262, 1235, 939, 1174, 939, 382, 1165, 1236,
+ 1194, 1138, 1237, 333, 1252, 263, 1242, 1257, 930, 1166,
+ 1243, 307, 1258, 978, 1139, 1261, 1253, 943, 312, 943,
+ 1178, 304, 1263, 1254, 373, 1198, 962, 395, 340, 1244,
+ 1176, 264, 1167, 308, 259, 1196, 1255, 1264, 335, 1265,
+ 1140, 322, 1179, 1135, 1266, 1278, 1279, 1199, 1188, 260,
+ 341, 261, 1267, 317, 1284, 931, 313, 1272, 1136, 265,
+ 1137, 285, 266, 1189, 944, 1190, 944, 314, 1141, 267,
+ 1161, 1142, 268, 963, 269, 1191, 1245, 270, 1143, 1285,
+ 271, 1144, 272, 1145, 273, 1273, 1146, 274, 323, 1147,
+ 315, 1148, 275, 1149, 276, 277, 1150, 278, 1168, 279,
+ 280, 1151, 281, 1152, 1153, 282, 1154, 283, 1155, 1156,
+ 284, 1157, 297, 1286, 1158, 298, 1159, 299, 1287, 1160,
+ 1288, 1169, 1297, 1274, 1170, 1296, 1171, 1302, 1310, 1311,
+ 1366, 1332, 1334, 1328, 1346, 1345, 1397, 1347, 1349, 1275,
+ 1350, 1351, 1352, 810, 799, 1370, 1363, 1381, 1377, 1398,
+ 1294, 1295, 1401, 1402, 1403, 1419, 316, 1299, 1306, 1423,
+ 1431, 1432, 1312, 1313, 653, 1420, 1333, 1336, 1300, 1337,
+ 1348, 661, 1368, 1369, 1399, 1103, 1421, 1422, 1429, 993,
+ 1430, 1434, 1435, 1182, 1127, 1212, 1125, 1223, 1211, 808,
+ 1219, 674, 1129, 1128, 1181, 1309, 1260, 677, 1259, 1130,
+ 1131, 1210, 1208, 1134, 1132, 1133, 694, 1162, 1314, 686,
+ 1187, 1233, 1232, 1362, 1192, 703, 700, 1193, 1382, 1319,
+ 1209, 1353, 1177, 1418, 1231, 1433, 1175, 1242, 1238, 1197,
+ 1335, 1243, 970, 1195, 1395, 715, 1424, 712, 1174, 809,
+ 0, 1165, 1320, 0, 1138, 1194, 0, 0, 0, 0,
+ 1244, 0, 1166, 0, 0, 1251, 0, 1139, 0, 0,
+ 0, 0, 0, 1178, 1256, 1319, 0, 1355, 0, 0,
+ 1198, 1356, 0, 1176, 0, 1167, 0, 0, 0, 0,
+ 1196, 0, 0, 1140, 0, 1179, 1135, 0, 1320, 1321,
+ 1357, 0, 1199, 1188, 0, 1355, 0, 1245, 0, 1356,
+ 0, 1136, 0, 1137, 0, 0, 0, 0, 1189, 0,
+ 1190, 1141, 0, 1161, 1142, 0, 0, 0, 1357, 1409,
+ 1191, 1143, 0, 0, 1144, 0, 1145, 0, 0, 1146,
+ 0, 0, 1147, 0, 1148, 1321, 1149, 1358, 0, 1150,
+ 0, 1168, 1412, 0, 1151, 0, 1152, 1153, 0, 1154,
+ 1409, 1155, 1156, 0, 1157, 0, 0, 1158, 0, 1159,
+ 0, 0, 1160, 0, 1169, 1358, 0, 1170, 0, 1171,
+ 0, 0, 0, 1412, 91, 92, 93, 94, 95, 96,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1413,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 0, 0, 1406, 0,
- 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
- 125, 0, 0, 0, 0, 127, 349, 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, 254, 0, 0,
- 0, 0, 255, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 256, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 101, 102,
+ 103, 104, 105, 106, 107, 108, 109, 110, 0, 0,
+ 1413, 0, 115, 116, 117, 118, 119, 120, 121, 122,
+ 123, 124, 125, 0, 0, 0, 0, 127, 352, 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, 253, 254, 255,
+ 0, 0, 0, 0, 256, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 257, 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, 0, 0, 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, 0, 0, 0, 0, 155
+ 0, 155
};
const short
Dhcp4Parser::yycheck_[] =
{
- 67, 68, 69, 70, 71, 70, 73, 74, 75, 76,
- 72, 64, 750, 750, 69, 69, 74, 74, 750, 68,
- 69, 70, 71, 720, 73, 74, 1031, 76, 73, 74,
- 1031, 1031, 69, 665, 666, 5, 18, 7, 626, 9,
- 69, 673, 69, 70, 71, 143, 144, 70, 191, 192,
- 193, 194, 70, 69, 1389, 94, 95, 96, 97, 98,
- 99, 100, 694, 7, 1389, 0, 68, 69, 70, 71,
- 227, 73, 74, 94, 76, 114, 115, 55, 56, 57,
- 69, 92, 71, 6, 123, 1420, 69, 230, 71, 7,
- 69, 40, 71, 114, 115, 1420, 69, 7, 210, 211,
- 212, 213, 69, 15, 16, 7, 69, 19, 69, 697,
- 22, 23, 24, 25, 69, 227, 202, 7, 3, 205,
- 206, 207, 208, 8, 69, 7, 69, 69, 3, 227,
- 69, 3, 69, 8, 3, 3, 8, 69, 69, 8,
- 69, 3, 69, 69, 69, 69, 8, 3, 69, 3,
- 69, 10, 8, 4, 8, 69, 69, 3, 69, 3,
- 69, 69, 69, 69, 8, 114, 115, 3, 3, 8,
- 3, 11, 8, 8, 14, 8, 41, 42, 3, 3,
- 201, 6, 203, 204, 8, 7, 26, 7, 227, 29,
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
- 3, 3, 114, 115, 6, 8, 227, 189, 146, 147,
- 148, 149, 150, 151, 160, 161, 162, 3, 3, 168,
- 169, 170, 8, 8, 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, 114,
- 115, 7, 92, 93, 114, 115, 94, 227, 228, 229,
- 230, 12, 13, 7, 104, 105, 106, 3, 1273, 7,
- 6, 111, 1273, 1273, 114, 115, 114, 115, 227, 119,
- 120, 121, 122, 123, 134, 135, 136, 137, 3, 139,
- 143, 144, 132, 8, 154, 155, 156, 3, 3, 3,
- 6, 4, 142, 8, 8, 145, 171, 172, 7, 40,
- 8, 3, 152, 153, 4, 227, 8, 157, 158, 60,
- 61, 62, 1019, 17, 18, 3, 3, 1065, 1065, 1067,
- 1067, 8, 4, 1065, 3, 1067, 176, 175, 3, 8,
- 180, 20, 21, 8, 4, 32, 33, 34, 35, 3,
- 107, 108, 109, 110, 8, 195, 196, 197, 198, 199,
- 200, 4, 227, 94, 4, 96, 97, 227, 4, 209,
- 101, 102, 103, 114, 115, 428, 429, 64, 65, 66,
- 3, 3, 8, 114, 115, 8, 8, 227, 4, 227,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, 92, 93, 94, 58, 59,
- 60, 61, 62, 63, 3, 3, 3, 8, 159, 8,
- 8, 8, 163, 164, 165, 166, 3, 114, 115, 3,
- 93, 8, 173, 174, 8, 27, 28, 504, 3, 126,
- 127, 128, 129, 8, 94, 4, 513, 4, 4, 4,
- 113, 114, 115, 4, 4, 114, 115, 4, 4, 526,
- 4, 124, 125, 530, 513, 530, 4, 130, 131, 4,
- 4, 526, 526, 4, 541, 4, 4, 526, 4, 4,
- 4, 530, 4, 4, 551, 4, 227, 4, 4, 526,
- 4, 558, 541, 4, 4, 4, 227, 526, 4, 526,
- 558, 558, 551, 530, 571, 4, 551, 530, 4, 558,
- 526, 513, 530, 558, 541, 4, 4, 4, 177, 178,
- 179, 4, 571, 3, 526, 4, 4, 4, 530, 3,
- 227, 4, 8, 4, 4, 4, 4, 526, 4, 541,
- 227, 4, 4, 526, 4, 230, 230, 526, 230, 551,
- 4, 4, 541, 526, 4, 228, 558, 4, 541, 526,
- 230, 4, 541, 526, 227, 526, 114, 115, 227, 571,
- 4, 526, 228, 228, 4, 228, 228, 227, 229, 228,
- 4, 526, 230, 526, 526, 229, 228, 526, 229, 526,
- 32, 33, 34, 228, 526, 526, 228, 526, 228, 526,
- 526, 526, 526, 230, 4, 526, 230, 526, 4, 230,
- 230, 230, 526, 526, 229, 526, 230, 526, 526, 526,
- 526, 4, 1254, 4, 4, 228, 4, 4, 4, 4,
- 4, 230, 230, 181, 182, 183, 184, 185, 186, 187,
- 188, 4, 4, 4, 230, 712, 4, 714, 4, 228,
- 4, 93, 4, 4, 4, 4, 4, 4, 711, 230,
- 230, 230, 4, 4, 4, 714, 4, 4, 230, 230,
- 228, 4, 114, 115, 228, 4, 4, 4, 4, 227,
- 4, 123, 749, 750, 4, 228, 753, 4, 4, 4,
- 757, 133, 134, 135, 136, 137, 138, 139, 4, 4,
- 749, 750, 4, 752, 753, 228, 4, 4, 4, 4,
- 4, 4, 714, 4, 4, 228, 4, 4, 30, 31,
- 32, 33, 34, 35, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 4, 230, 4,
- 4, 4, 4, 4, 230, 230, 230, 749, 750, 230,
- 752, 753, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 4, 228, 228, 4, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 228, 89, 90, 91,
- 4, 93, 4, 228, 4, 227, 7, 227, 7, 7,
- 7, 227, 227, 105, 106, 7, 7, 5, 227, 227,
- 112, 227, 114, 115, 116, 117, 118, 119, 120, 121,
- 5, 5, 124, 125, 5, 227, 5, 7, 130, 227,
- 132, 5, 5, 5, 5, 227, 5, 7, 140, 7,
- 7, 7, 7, 227, 5, 7, 5, 227, 227, 227,
- 5, 227, 227, 227, 7, 227, 190, 5, 227, 141,
- 7, 7, 7, 7, 227, 227, 227, 227, 227, 227,
- 227, 227, 227, 227, 7, 7, 7, 227, 227, 7,
- 227, 7, 227, 7, 227, 7, 4, 4, 4, 4,
- 4, 4, 4, 195, 196, 4, 4, 4, 4, 4,
- 3, 227, 6, 3, 6, 6, 3, 6, 3, 3,
- 6, 3, 227, 6, 3, 6, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 227, 4, 4, 3, 3,
- 6, 4, 4, 4, 4, 4, 4, 228, 228, 6,
- 4, 6, 8, 4, 4, 4, 4, 4, 4, 4,
- 4, 230, 4, 228, 230, 228, 228, 228, 228, 228,
- 4, 228, 230, 228, 228, 1022, 228, 228, 1025, 228,
- 228, 1028, 228, 4, 1031, 4, 1031, 1022, 1022, 1036,
- 1028, 1028, 1039, 1022, 1036, 1042, 1025, 1031, 230, 1028,
- 1025, 228, 1031, 1028, 4, 1022, 1031, 1036, 228, 1056,
- 1039, 1036, 4, 1022, 1031, 1022, 230, 4, 1065, 1036,
- 1067, 230, 1031, 4, 1031, 228, 1022, 1056, 1031, 1036,
- 1077, 4, 1039, 1031, 230, 1031, 1065, 1084, 1067, 6,
- 1022, 230, 1089, 1025, 1089, 1074, 1028, 230, 1077, 1031,
- 230, 3, 1077, 1022, 1036, 4, 4, 1039, 8, 1022,
- 1089, 227, 1031, 1022, 8, 4, 8, 1036, 1031, 1022,
- 1039, 3, 1031, 1036, 1056, 1022, 1039, 1036, 1031, 1022,
- 1039, 1022, 1089, 1065, 1031, 1067, 1089, 1022, 1031, 1036,
- 1031, 1089, 1074, 1036, 227, 1077, 1031, 1022, 227, 1022,
- 1022, 1036, 227, 1022, 8, 1022, 1031, 1089, 1031, 1031,
- 1022, 1022, 1031, 1022, 1031, 1022, 1022, 1022, 1022, 1031,
- 1031, 1022, 1031, 1022, 1031, 1031, 1031, 1031, 1022, 1022,
- 1031, 1022, 1031, 1022, 1022, 1022, 1022, 1031, 1031, 227,
- 1031, 7, 1031, 1031, 1031, 1031, 5, 227, 4, 4,
- 4, 167, 4, 4, 7, 3, 6, 4, 227, 5,
- 4, 4, 4, 800, 697, 5, 7, 4, 7, 3,
- 6, 4, 4, 4, 227, 227, 4, 4, 4, 4,
- 712, 504, 993, 1021, 227, 714, 227, 227, 227, 1016,
- 1034, 227, 230, 230, 513, 228, 227, 1230, 227, 227,
- 227, 227, 1056, 1044, 228, 230, 228, 227, 1051, 227,
- 227, 526, 227, 1042, 1024, 1022, 1033, 1273, 1027, 1025,
- 1091, 1089, 1030, 1037, 1339, 1028, 1273, 530, 1273, 1041,
- 541, 1280, 1069, 1280, 1365, 561, 1335, 551, 1280, 1273,
- 1039, 1391, 1289, 1420, 1273, 1067, 558, 1297, 1273, 1074,
- 1297, 1280, 1368, 753, 1398, 1280, 1273, 1078, 713, -1,
- 1289, 571, -1, 1280, 1273, -1, 1273, 1065, 1297, -1,
- 1273, -1, 1297, 1280, 575, 1273, -1, 1273, -1, -1,
- -1, -1, -1, 1084, -1, -1, -1, -1, 1335, -1,
- 1337, 1273, -1, -1, -1, -1, -1, -1, 1280, -1,
- -1, -1, -1, -1, 1273, -1, 1335, 1289, 1337, -1,
- 1273, 1280, 1337, -1, 1273, 1297, -1, 1280, 1365, -1,
- 1273, 1280, -1, -1, -1, -1, 1273, -1, -1, -1,
- 1273, -1, 1273, 1280, -1, -1, 1365, 1280, 1273, -1,
- 1365, -1, 1389, -1, -1, 1280, -1, -1, 1273, -1,
- 1273, 1273, -1, 1335, 1273, 1337, 1273, -1, -1, -1,
- 1389, 1273, 1273, -1, 1273, -1, 1273, 1273, 1273, 1273,
- -1, -1, 1273, 1420, 1273, -1, -1, -1, -1, 1273,
- 1273, -1, 1273, 1365, 1273, 1273, 1273, 1273, -1, -1,
- -1, 1420, 30, 31, 32, 33, 34, 35, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 1389, -1, -1,
+ 67, 68, 69, 70, 71, 64, 73, 74, 75, 76,
+ 73, 74, 72, 69, 755, 755, 725, 1037, 755, 1037,
+ 1037, 69, 18, 71, 68, 69, 70, 71, 1396, 73,
+ 74, 630, 76, 669, 670, 671, 0, 69, 70, 71,
+ 74, 70, 678, 69, 5, 94, 7, 74, 9, 1396,
+ 143, 144, 70, 3, 7, 3, 69, 227, 8, 1427,
+ 8, 92, 69, 699, 71, 114, 115, 191, 192, 193,
+ 194, 68, 69, 70, 71, 70, 73, 74, 10, 76,
+ 1427, 3, 69, 3, 69, 69, 71, 15, 16, 3,
+ 7, 19, 6, 3, 22, 23, 24, 25, 8, 3,
+ 69, 6, 69, 702, 8, 7, 230, 7, 114, 115,
+ 69, 7, 69, 69, 3, 210, 211, 212, 213, 8,
+ 69, 4, 3, 69, 3, 69, 175, 8, 69, 8,
+ 7, 69, 227, 69, 227, 69, 7, 3, 69, 3,
+ 7, 70, 8, 69, 8, 69, 69, 7, 69, 7,
+ 69, 69, 40, 69, 40, 3, 69, 3, 69, 3,
+ 8, 69, 8, 69, 8, 3, 69, 7, 69, 94,
+ 8, 177, 178, 179, 3, 7, 3, 11, 227, 8,
+ 14, 8, 41, 42, 8, 3, 114, 115, 6, 114,
+ 115, 3, 26, 189, 6, 29, 30, 31, 32, 33,
+ 34, 35, 36, 37, 38, 39, 94, 3, 96, 97,
+ 4, 3, 8, 101, 102, 103, 8, 3, 8, 202,
+ 6, 227, 205, 206, 207, 208, 114, 115, 114, 115,
+ 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, 114, 115, 4, 92, 93,
+ 1280, 4, 1280, 1280, 12, 13, 227, 228, 229, 230,
+ 104, 105, 106, 55, 56, 57, 201, 111, 203, 204,
+ 114, 115, 168, 169, 170, 119, 120, 121, 122, 123,
+ 107, 108, 109, 110, 32, 33, 34, 35, 132, 227,
+ 143, 144, 227, 4, 134, 135, 136, 137, 142, 139,
+ 3, 145, 171, 172, 4, 8, 1025, 4, 152, 153,
+ 32, 33, 34, 157, 158, 4, 64, 65, 66, 4,
+ 1071, 1071, 1073, 1073, 1071, 3, 1073, 17, 18, 227,
+ 8, 227, 176, 114, 115, 4, 180, 146, 147, 148,
+ 149, 150, 151, 3, 92, 93, 94, 4, 8, 20,
+ 21, 195, 196, 197, 198, 199, 200, 4, 227, 3,
+ 27, 28, 431, 432, 8, 209, 114, 115, 93, 4,
+ 4, 93, 3, 154, 155, 156, 4, 8, 126, 127,
+ 128, 129, 3, 227, 4, 4, 3, 8, 113, 114,
+ 115, 8, 114, 115, 160, 161, 162, 3, 123, 124,
+ 125, 123, 8, 3, 3, 130, 131, 4, 8, 8,
+ 4, 133, 134, 135, 136, 137, 138, 139, 4, 4,
+ 4, 94, 95, 96, 97, 98, 99, 100, 3, 3,
+ 507, 3, 3, 8, 8, 4, 8, 8, 4, 516,
+ 4, 114, 115, 4, 4, 4, 227, 4, 4, 4,
+ 123, 4, 4, 530, 4, 4, 4, 534, 4, 4,
+ 4, 4, 516, 4, 530, 3, 8, 4, 545, 4,
+ 3, 3, 530, 4, 8, 4, 530, 4, 555, 227,
+ 534, 4, 555, 8, 4, 562, 4, 545, 530, 562,
+ 4, 545, 534, 4, 530, 534, 227, 4, 575, 4,
+ 4, 555, 227, 545, 4, 227, 534, 530, 562, 516,
+ 230, 230, 230, 530, 4, 4, 4, 230, 562, 228,
+ 4, 575, 4, 530, 4, 562, 228, 534, 545, 534,
+ 228, 230, 228, 530, 228, 530, 530, 228, 545, 4,
+ 4, 229, 229, 229, 228, 228, 228, 228, 555, 4,
+ 545, 530, 4, 530, 227, 562, 230, 4, 230, 4,
+ 230, 530, 230, 530, 530, 230, 229, 4, 575, 230,
+ 228, 530, 4, 4, 530, 4, 530, 4, 4, 530,
+ 230, 230, 530, 4, 530, 230, 530, 4, 4, 530,
+ 4, 4, 228, 4, 530, 534, 530, 530, 4, 530,
+ 4, 530, 530, 4, 530, 4, 4, 530, 4, 530,
+ 4, 4, 530, 4, 530, 1261, 230, 530, 230, 530,
+ 114, 115, 230, 4, 4, 60, 61, 62, 230, 230,
+ 228, 4, 228, 4, 4, 4, 4, 4, 228, 4,
+ 717, 4, 719, 4, 4, 4, 4, 716, 40, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
+ 52, 53, 54, 228, 4, 719, 58, 59, 60, 61,
+ 62, 63, 4, 4, 4, 4, 4, 754, 755, 114,
+ 115, 758, 4, 4, 4, 762, 4, 181, 182, 183,
+ 184, 185, 186, 187, 188, 4, 4, 4, 228, 4,
+ 754, 755, 94, 757, 758, 4, 230, 4, 230, 230,
+ 4, 230, 719, 230, 4, 228, 4, 4, 30, 31,
+ 32, 33, 34, 35, 159, 228, 228, 4, 163, 164,
+ 165, 166, 4, 227, 4, 228, 7, 5, 173, 174,
+ 7, 7, 7, 7, 227, 7, 227, 754, 755, 227,
+ 757, 758, 64, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 5, 5, 227, 227, 78, 79, 80, 81,
+ 82, 83, 84, 85, 86, 87, 227, 89, 90, 91,
+ 5, 93, 5, 227, 227, 7, 5, 5, 5, 5,
+ 5, 227, 227, 105, 106, 7, 7, 7, 7, 7,
+ 112, 5, 114, 115, 116, 117, 118, 119, 120, 121,
+ 7, 123, 124, 125, 5, 227, 5, 227, 130, 227,
+ 132, 7, 227, 5, 227, 227, 7, 227, 140, 7,
+ 227, 7, 227, 7, 7, 227, 214, 215, 216, 217,
+ 218, 219, 220, 221, 222, 223, 224, 225, 226, 190,
+ 227, 227, 227, 227, 7, 227, 7, 7, 7, 7,
+ 7, 227, 141, 227, 4, 227, 4, 4, 4, 4,
+ 227, 227, 227, 227, 227, 227, 227, 4, 4, 4,
+ 4, 4, 4, 195, 196, 4, 6, 3, 6, 3,
+ 3, 6, 3, 227, 6, 3, 6, 6, 3, 6,
+ 3, 228, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 3, 227, 6, 4, 4, 4,
+ 4, 4, 3, 227, 6, 228, 4, 6, 8, 4,
+ 4, 4, 4, 4, 230, 230, 228, 228, 4, 228,
+ 4, 4, 228, 228, 228, 4, 228, 230, 4, 230,
+ 228, 1028, 228, 228, 1031, 228, 4, 1034, 1031, 228,
+ 1037, 1034, 1028, 4, 1037, 1042, 4, 228, 1045, 1042,
+ 1028, 1048, 1042, 228, 1028, 228, 228, 1031, 4, 1037,
+ 1034, 230, 4, 1037, 1042, 1062, 1028, 1045, 1042, 230,
+ 1034, 1045, 1028, 4, 1071, 1037, 1073, 1034, 1037, 228,
+ 1042, 1037, 4, 1045, 230, 1028, 1083, 6, 1062, 1037,
+ 1083, 1028, 3, 1090, 1037, 4, 230, 1071, 1095, 1073,
+ 1037, 1028, 227, 230, 1031, 1042, 1080, 1034, 1045, 1083,
+ 1037, 1028, 1037, 1028, 1028, 1042, 230, 227, 1045, 227,
+ 1037, 1095, 1037, 1037, 227, 8, 8, 1042, 1042, 1028,
+ 1045, 1028, 227, 1095, 4, 1062, 1095, 227, 1037, 1028,
+ 1037, 1028, 1028, 1042, 1071, 1042, 1073, 1095, 1037, 1028,
+ 1037, 1037, 1028, 1080, 1028, 1042, 1083, 1028, 1037, 4,
+ 1028, 1037, 1028, 1037, 1028, 227, 1037, 1028, 1095, 1037,
+ 1095, 1037, 1028, 1037, 1028, 1028, 1037, 1028, 1037, 1028,
+ 1028, 1037, 1028, 1037, 1037, 1028, 1037, 1028, 1037, 1037,
+ 1028, 1037, 1028, 8, 1037, 1028, 1037, 1028, 3, 1037,
+ 8, 1037, 5, 227, 1037, 7, 1037, 4, 4, 4,
+ 167, 4, 4, 7, 3, 6, 6, 5, 4, 227,
+ 4, 4, 4, 719, 702, 5, 7, 4, 7, 3,
+ 227, 227, 4, 4, 4, 4, 1095, 227, 227, 4,
+ 4, 4, 230, 230, 507, 230, 228, 227, 1237, 227,
+ 227, 516, 227, 227, 227, 999, 228, 228, 227, 806,
+ 227, 227, 227, 1040, 1027, 1050, 1022, 1062, 1048, 717,
+ 1057, 530, 1030, 1028, 1039, 1280, 1097, 534, 1095, 1031,
+ 1033, 1047, 1043, 1280, 1034, 1036, 555, 1280, 1287, 545,
+ 1287, 1075, 1073, 1346, 1287, 565, 562, 1287, 1372, 1296,
+ 1045, 1342, 1280, 1398, 1071, 1427, 1280, 1304, 1080, 1287,
+ 1304, 1304, 758, 1287, 1375, 579, 1405, 575, 1280, 718,
+ -1, 1280, 1296, -1, 1280, 1287, -1, -1, -1, -1,
+ 1304, -1, 1280, -1, -1, 1084, -1, 1280, -1, -1,
+ -1, -1, -1, 1280, 1090, 1342, -1, 1344, -1, -1,
+ 1287, 1344, -1, 1280, -1, 1280, -1, -1, -1, -1,
+ 1287, -1, -1, 1280, -1, 1280, 1280, -1, 1342, 1296,
+ 1344, -1, 1287, 1287, -1, 1372, -1, 1304, -1, 1372,
+ -1, 1280, -1, 1280, -1, -1, -1, -1, 1287, -1,
+ 1287, 1280, -1, 1280, 1280, -1, -1, -1, 1372, 1396,
+ 1287, 1280, -1, -1, 1280, -1, 1280, -1, -1, 1280,
+ -1, -1, 1280, -1, 1280, 1342, 1280, 1344, -1, 1280,
+ -1, 1280, 1396, -1, 1280, -1, 1280, 1280, -1, 1280,
+ 1427, 1280, 1280, -1, 1280, -1, -1, 1280, -1, 1280,
+ -1, -1, 1280, -1, 1280, 1372, -1, 1280, -1, 1280,
+ -1, -1, -1, 1427, 30, 31, 32, 33, 34, 35,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 1396,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, -1, -1, 1420, -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, 125, -1, -1,
- -1, -1, 130, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 140, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 64, 65,
+ 66, 67, 68, 69, 70, 71, 72, 73, -1, -1,
+ 1427, -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, 123, 124, 125,
+ -1, -1, -1, -1, 130, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 140, -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, 195, 196, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 195,
+ 196, -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, 227
+ -1, 227
};
const short
@@ -6142,10 +6169,10 @@ namespace isc { namespace dhcp {
223, 224, 225, 226, 232, 233, 234, 235, 236, 237,
238, 239, 240, 241, 242, 243, 244, 245, 0, 5,
7, 9, 227, 228, 229, 230, 246, 247, 248, 253,
- 7, 262, 7, 267, 7, 322, 7, 435, 7, 520,
- 7, 537, 7, 469, 7, 475, 7, 499, 7, 411,
- 7, 649, 7, 668, 254, 249, 263, 268, 323, 436,
- 521, 538, 470, 476, 500, 412, 650, 669, 246, 255,
+ 7, 262, 7, 267, 7, 322, 7, 435, 7, 522,
+ 7, 539, 7, 471, 7, 477, 7, 501, 7, 411,
+ 7, 651, 7, 670, 254, 249, 263, 268, 323, 436,
+ 523, 540, 472, 478, 502, 412, 652, 671, 246, 255,
256, 227, 251, 252, 10, 264, 266, 11, 14, 26,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 64, 65, 66, 67, 68, 69, 70, 71, 72,
@@ -6158,129 +6185,130 @@ namespace isc { namespace dhcp {
282, 284, 285, 287, 288, 289, 290, 291, 292, 293,
296, 298, 300, 301, 302, 305, 306, 308, 310, 311,
312, 313, 314, 315, 316, 317, 318, 336, 338, 346,
- 348, 389, 398, 405, 419, 429, 455, 456, 457, 459,
- 467, 493, 527, 529, 531, 542, 544, 546, 569, 584,
- 585, 587, 637, 647, 666, 675, 699, 15, 16, 19,
+ 348, 389, 398, 405, 419, 429, 457, 458, 459, 461,
+ 469, 495, 529, 531, 533, 544, 546, 548, 571, 586,
+ 587, 589, 639, 649, 668, 677, 701, 15, 16, 19,
22, 23, 24, 25, 261, 320, 321, 324, 326, 329,
- 332, 333, 334, 335, 527, 529, 89, 90, 91, 112,
- 116, 117, 118, 124, 125, 130, 140, 261, 271, 272,
- 273, 274, 275, 276, 277, 278, 279, 280, 285, 288,
- 289, 290, 291, 292, 293, 296, 298, 300, 301, 302,
- 305, 306, 308, 310, 316, 437, 438, 439, 441, 443,
- 445, 447, 449, 451, 453, 455, 456, 457, 458, 493,
- 514, 527, 529, 531, 542, 544, 546, 564, 113, 131,
- 261, 449, 451, 453, 493, 522, 523, 524, 526, 527,
- 529, 123, 133, 134, 135, 136, 137, 138, 139, 261,
- 493, 527, 529, 539, 540, 541, 542, 544, 546, 548,
- 550, 552, 554, 556, 558, 560, 562, 467, 40, 94,
- 96, 97, 101, 102, 103, 261, 365, 477, 478, 479,
- 480, 481, 482, 483, 485, 487, 489, 490, 492, 527,
- 529, 95, 98, 99, 100, 123, 261, 365, 481, 487,
- 501, 502, 503, 504, 505, 507, 508, 509, 510, 511,
- 512, 527, 529, 143, 144, 261, 413, 414, 415, 417,
- 181, 182, 183, 184, 185, 186, 187, 188, 261, 527,
- 529, 651, 652, 653, 654, 656, 657, 659, 660, 661,
- 664, 12, 13, 670, 671, 672, 674, 6, 3, 4,
- 8, 3, 265, 3, 8, 667, 319, 339, 4, 4,
- 4, 543, 545, 547, 4, 4, 337, 347, 349, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 283, 4, 4, 4, 4, 4, 294, 297, 299, 4,
- 4, 4, 4, 430, 468, 494, 4, 286, 303, 460,
- 528, 530, 4, 4, 4, 390, 570, 532, 406, 420,
- 4, 399, 586, 588, 638, 648, 307, 309, 4, 4,
- 4, 676, 700, 4, 3, 8, 325, 327, 330, 4,
- 4, 4, 4, 3, 8, 442, 444, 446, 515, 440,
- 448, 4, 452, 454, 450, 565, 3, 8, 525, 4,
- 3, 8, 563, 549, 551, 553, 557, 555, 561, 559,
- 8, 3, 8, 484, 366, 4, 488, 486, 491, 4,
- 8, 3, 506, 4, 4, 4, 513, 8, 3, 416,
- 418, 3, 8, 4, 655, 4, 658, 4, 4, 662,
- 665, 3, 8, 673, 4, 3, 8, 246, 246, 227,
- 4, 4, 4, 4, 230, 230, 230, 4, 4, 4,
- 228, 230, 4, 4, 4, 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, 230, 230,
- 230, 4, 4, 4, 4, 4, 228, 4, 4, 4,
- 4, 4, 4, 4, 230, 230, 230, 4, 4, 270,
- 4, 4, 4, 230, 230, 228, 228, 321, 4, 4,
- 4, 4, 4, 4, 228, 4, 4, 4, 4, 438,
- 4, 228, 523, 4, 4, 4, 4, 4, 4, 4,
- 4, 541, 4, 4, 228, 4, 4, 4, 230, 479,
- 4, 230, 230, 230, 4, 503, 4, 4, 414, 230,
- 4, 228, 4, 228, 228, 4, 4, 652, 4, 228,
- 671, 4, 7, 7, 7, 7, 227, 227, 227, 7,
- 7, 5, 227, 191, 192, 193, 194, 230, 295, 227,
- 227, 5, 5, 5, 227, 107, 108, 109, 110, 304,
- 5, 248, 250, 227, 5, 5, 5, 5, 7, 7,
- 7, 5, 7, 7, 227, 227, 5, 7, 5, 257,
- 17, 18, 328, 20, 21, 331, 227, 227, 227, 5,
- 227, 227, 257, 257, 227, 7, 227, 257, 227, 227,
- 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
- 227, 257, 227, 250, 227, 227, 18, 189, 663, 190,
- 5, 246, 269, 670, 320, 27, 28, 340, 341, 342,
- 344, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 58, 59, 60, 61,
- 62, 63, 261, 354, 355, 356, 358, 360, 362, 364,
- 365, 367, 368, 369, 370, 371, 372, 373, 374, 375,
- 376, 379, 380, 381, 383, 385, 387, 354, 7, 350,
- 351, 352, 7, 431, 432, 433, 7, 471, 472, 473,
- 7, 495, 496, 497, 7, 461, 462, 463, 134, 135,
- 136, 137, 139, 391, 392, 393, 394, 395, 396, 397,
- 7, 571, 572, 7, 533, 534, 535, 7, 407, 408,
- 409, 146, 147, 148, 149, 150, 151, 421, 422, 423,
- 424, 425, 426, 427, 428, 154, 155, 156, 261, 400,
- 401, 402, 403, 404, 527, 529, 159, 163, 164, 165,
- 166, 173, 174, 261, 381, 383, 385, 527, 529, 593,
- 594, 595, 598, 600, 602, 603, 604, 614, 7, 589,
- 590, 591, 177, 178, 179, 227, 527, 529, 639, 640,
- 641, 642, 644, 645, 651, 7, 677, 678, 210, 211,
- 212, 213, 261, 701, 702, 703, 704, 705, 706, 258,
- 7, 516, 517, 518, 141, 566, 567, 350, 8, 8,
- 8, 343, 345, 3, 8, 357, 359, 361, 363, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 377,
- 4, 4, 382, 384, 386, 388, 3, 8, 8, 353,
- 6, 3, 434, 6, 3, 474, 6, 3, 498, 6,
- 3, 464, 6, 3, 3, 6, 573, 3, 6, 536,
- 6, 3, 410, 6, 3, 4, 4, 4, 4, 4,
- 4, 3, 8, 4, 4, 4, 3, 8, 596, 599,
- 601, 4, 615, 4, 605, 3, 8, 592, 6, 3,
- 4, 643, 4, 646, 3, 8, 8, 679, 3, 6,
- 4, 4, 4, 4, 3, 8, 227, 259, 260, 519,
- 6, 3, 568, 8, 6, 4, 4, 341, 4, 4,
- 4, 4, 228, 230, 228, 230, 228, 228, 228, 228,
- 228, 228, 4, 230, 228, 4, 4, 4, 4, 355,
- 354, 352, 437, 433, 477, 473, 501, 497, 261, 271,
+ 332, 333, 334, 335, 529, 531, 89, 90, 91, 112,
+ 116, 117, 118, 123, 124, 125, 130, 140, 261, 271,
272, 273, 274, 275, 276, 277, 278, 279, 280, 285,
288, 289, 290, 291, 292, 293, 296, 298, 300, 301,
- 302, 305, 306, 308, 310, 316, 365, 429, 447, 449,
- 451, 453, 455, 456, 457, 465, 466, 493, 527, 529,
- 542, 544, 546, 564, 463, 392, 126, 127, 128, 129,
- 261, 271, 272, 273, 316, 365, 467, 493, 527, 529,
- 542, 544, 546, 574, 575, 576, 577, 578, 580, 582,
- 583, 572, 539, 535, 413, 409, 228, 228, 228, 228,
- 228, 228, 422, 230, 228, 228, 401, 4, 4, 4,
- 228, 4, 230, 4, 594, 593, 591, 230, 4, 228,
- 4, 640, 201, 203, 204, 261, 365, 527, 529, 680,
- 681, 682, 683, 685, 678, 230, 230, 230, 230, 702,
- 6, 3, 522, 518, 4, 227, 227, 227, 227, 227,
- 227, 55, 56, 57, 378, 227, 227, 227, 227, 8,
- 8, 8, 8, 3, 8, 579, 581, 4, 4, 8,
- 3, 8, 8, 160, 161, 162, 597, 227, 227, 7,
- 5, 8, 227, 246, 686, 4, 684, 3, 8, 227,
- 8, 257, 466, 4, 4, 230, 230, 576, 40, 168,
- 169, 170, 261, 527, 529, 616, 617, 618, 621, 623,
- 625, 7, 606, 607, 608, 4, 228, 4, 681, 227,
- 227, 619, 622, 624, 626, 3, 8, 609, 6, 3,
- 5, 227, 4, 4, 4, 4, 617, 175, 261, 365,
- 527, 529, 610, 611, 612, 608, 7, 687, 688, 167,
- 620, 227, 227, 5, 613, 3, 8, 689, 3, 6,
- 7, 627, 628, 629, 4, 611, 202, 205, 206, 207,
- 208, 690, 691, 692, 694, 695, 696, 697, 688, 630,
- 6, 3, 227, 693, 4, 4, 4, 698, 3, 8,
- 171, 172, 261, 358, 360, 527, 529, 631, 632, 633,
- 635, 629, 4, 230, 228, 228, 4, 691, 634, 636,
- 3, 8, 227, 227, 4, 4, 632, 227, 227
+ 302, 305, 306, 308, 310, 316, 437, 438, 439, 441,
+ 443, 445, 447, 449, 451, 453, 455, 457, 458, 459,
+ 460, 495, 516, 529, 531, 533, 544, 546, 548, 566,
+ 113, 131, 261, 449, 451, 453, 455, 495, 524, 525,
+ 526, 528, 529, 531, 123, 133, 134, 135, 136, 137,
+ 138, 139, 261, 495, 529, 531, 541, 542, 543, 544,
+ 546, 548, 550, 552, 554, 556, 558, 560, 562, 564,
+ 469, 40, 94, 96, 97, 101, 102, 103, 261, 365,
+ 479, 480, 481, 482, 483, 484, 485, 487, 489, 491,
+ 492, 494, 529, 531, 95, 98, 99, 100, 123, 261,
+ 365, 483, 489, 503, 504, 505, 506, 507, 509, 510,
+ 511, 512, 513, 514, 529, 531, 143, 144, 261, 413,
+ 414, 415, 417, 181, 182, 183, 184, 185, 186, 187,
+ 188, 261, 529, 531, 653, 654, 655, 656, 658, 659,
+ 661, 662, 663, 666, 12, 13, 672, 673, 674, 676,
+ 6, 3, 4, 8, 3, 265, 3, 8, 669, 319,
+ 339, 4, 4, 4, 545, 547, 549, 4, 4, 337,
+ 347, 349, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 283, 4, 4, 4, 4, 4, 294,
+ 297, 299, 4, 4, 4, 4, 430, 470, 496, 4,
+ 286, 303, 462, 530, 532, 4, 4, 4, 390, 572,
+ 534, 406, 420, 4, 399, 588, 590, 640, 650, 307,
+ 309, 4, 4, 4, 678, 702, 4, 3, 8, 325,
+ 327, 330, 4, 4, 4, 4, 3, 8, 442, 444,
+ 446, 517, 440, 448, 4, 452, 454, 456, 450, 567,
+ 3, 8, 527, 4, 3, 8, 565, 551, 553, 555,
+ 559, 557, 563, 561, 8, 3, 8, 486, 366, 4,
+ 490, 488, 493, 4, 8, 3, 508, 4, 4, 4,
+ 515, 8, 3, 416, 418, 3, 8, 4, 657, 4,
+ 660, 4, 4, 664, 667, 3, 8, 675, 4, 3,
+ 8, 246, 246, 227, 4, 4, 4, 4, 230, 230,
+ 230, 4, 4, 4, 228, 230, 4, 4, 4, 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, 230, 230, 230, 4, 4, 4, 4, 4,
+ 228, 4, 4, 4, 4, 4, 4, 4, 230, 230,
+ 230, 4, 4, 270, 4, 4, 4, 230, 230, 228,
+ 228, 321, 4, 4, 4, 4, 4, 4, 228, 4,
+ 4, 4, 4, 4, 438, 4, 228, 525, 4, 4,
+ 4, 4, 4, 4, 4, 4, 543, 4, 4, 228,
+ 4, 4, 4, 230, 481, 4, 230, 230, 230, 4,
+ 505, 4, 4, 414, 230, 4, 228, 4, 228, 228,
+ 4, 4, 654, 4, 228, 673, 4, 7, 7, 7,
+ 7, 227, 227, 227, 7, 7, 5, 227, 191, 192,
+ 193, 194, 230, 295, 227, 227, 5, 5, 5, 227,
+ 107, 108, 109, 110, 304, 5, 248, 250, 227, 5,
+ 5, 5, 5, 7, 7, 7, 5, 7, 7, 227,
+ 227, 5, 7, 5, 257, 17, 18, 328, 20, 21,
+ 331, 227, 227, 227, 5, 227, 227, 257, 257, 257,
+ 227, 7, 227, 257, 227, 227, 227, 227, 227, 227,
+ 227, 227, 227, 227, 227, 227, 227, 257, 227, 250,
+ 227, 227, 18, 189, 665, 190, 5, 246, 269, 672,
+ 320, 27, 28, 340, 341, 342, 344, 40, 41, 42,
+ 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 58, 59, 60, 61, 62, 63, 261, 354,
+ 355, 356, 358, 360, 362, 364, 365, 367, 368, 369,
+ 370, 371, 372, 373, 374, 375, 376, 379, 380, 381,
+ 383, 385, 387, 354, 7, 350, 351, 352, 7, 431,
+ 432, 433, 7, 473, 474, 475, 7, 497, 498, 499,
+ 7, 463, 464, 465, 134, 135, 136, 137, 139, 391,
+ 392, 393, 394, 395, 396, 397, 7, 573, 574, 7,
+ 535, 536, 537, 7, 407, 408, 409, 146, 147, 148,
+ 149, 150, 151, 421, 422, 423, 424, 425, 426, 427,
+ 428, 154, 155, 156, 261, 400, 401, 402, 403, 404,
+ 529, 531, 159, 163, 164, 165, 166, 173, 174, 261,
+ 381, 383, 385, 529, 531, 595, 596, 597, 600, 602,
+ 604, 605, 606, 616, 7, 591, 592, 593, 177, 178,
+ 179, 227, 529, 531, 641, 642, 643, 644, 646, 647,
+ 653, 7, 679, 680, 210, 211, 212, 213, 261, 703,
+ 704, 705, 706, 707, 708, 258, 7, 518, 519, 520,
+ 141, 568, 569, 350, 8, 8, 8, 343, 345, 3,
+ 8, 357, 359, 361, 363, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 377, 4, 4, 382, 384,
+ 386, 388, 3, 8, 8, 353, 6, 3, 434, 6,
+ 3, 476, 6, 3, 500, 6, 3, 466, 6, 3,
+ 3, 6, 575, 3, 6, 538, 6, 3, 410, 6,
+ 3, 4, 4, 4, 4, 4, 4, 3, 8, 4,
+ 4, 4, 3, 8, 598, 601, 603, 4, 617, 4,
+ 607, 3, 8, 594, 6, 3, 4, 645, 4, 648,
+ 3, 8, 8, 681, 3, 6, 4, 4, 4, 4,
+ 3, 8, 227, 259, 260, 521, 6, 3, 570, 8,
+ 6, 4, 4, 341, 4, 4, 4, 4, 228, 230,
+ 228, 230, 228, 228, 228, 228, 228, 228, 4, 230,
+ 228, 4, 4, 4, 4, 355, 354, 352, 437, 433,
+ 479, 475, 503, 499, 261, 271, 272, 273, 274, 275,
+ 276, 277, 278, 279, 280, 285, 288, 289, 290, 291,
+ 292, 293, 296, 298, 300, 301, 302, 305, 306, 308,
+ 310, 316, 365, 429, 447, 449, 451, 453, 455, 457,
+ 458, 459, 467, 468, 495, 529, 531, 544, 546, 548,
+ 566, 465, 392, 126, 127, 128, 129, 261, 271, 272,
+ 273, 316, 365, 469, 495, 529, 531, 544, 546, 548,
+ 576, 577, 578, 579, 580, 582, 584, 585, 574, 541,
+ 537, 413, 409, 228, 228, 228, 228, 228, 228, 422,
+ 230, 228, 228, 401, 4, 4, 4, 228, 4, 230,
+ 4, 596, 595, 593, 230, 4, 228, 4, 642, 201,
+ 203, 204, 261, 365, 529, 531, 682, 683, 684, 685,
+ 687, 680, 230, 230, 230, 230, 704, 6, 3, 524,
+ 520, 4, 227, 227, 227, 227, 227, 227, 55, 56,
+ 57, 378, 227, 227, 227, 227, 8, 8, 8, 8,
+ 3, 8, 581, 583, 4, 4, 8, 3, 8, 8,
+ 160, 161, 162, 599, 227, 227, 7, 5, 8, 227,
+ 246, 688, 4, 686, 3, 8, 227, 8, 257, 468,
+ 4, 4, 230, 230, 578, 40, 168, 169, 170, 261,
+ 529, 531, 618, 619, 620, 623, 625, 627, 7, 608,
+ 609, 610, 4, 228, 4, 683, 227, 227, 621, 624,
+ 626, 628, 3, 8, 611, 6, 3, 5, 227, 4,
+ 4, 4, 4, 619, 175, 261, 365, 529, 531, 612,
+ 613, 614, 610, 7, 689, 690, 167, 622, 227, 227,
+ 5, 615, 3, 8, 691, 3, 6, 7, 629, 630,
+ 631, 4, 613, 202, 205, 206, 207, 208, 692, 693,
+ 694, 696, 697, 698, 699, 690, 632, 6, 3, 227,
+ 695, 4, 4, 4, 700, 3, 8, 171, 172, 261,
+ 358, 360, 529, 531, 633, 634, 635, 637, 631, 4,
+ 230, 228, 228, 4, 693, 636, 638, 3, 8, 227,
+ 227, 4, 4, 634, 227, 227
};
const short
@@ -6329,57 +6357,57 @@ namespace isc { namespace dhcp {
438, 438, 438, 438, 438, 438, 438, 438, 438, 438,
438, 438, 438, 438, 438, 438, 438, 438, 438, 438,
438, 438, 438, 438, 438, 438, 438, 438, 438, 438,
- 438, 438, 438, 438, 438, 438, 438, 438, 438, 440,
- 439, 442, 441, 444, 443, 446, 445, 448, 447, 450,
- 449, 452, 451, 454, 453, 455, 456, 457, 458, 460,
- 459, 461, 461, 462, 462, 462, 464, 463, 465, 465,
- 465, 466, 466, 466, 466, 466, 466, 466, 466, 466,
- 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
- 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
- 466, 466, 466, 466, 466, 466, 466, 466, 466, 466,
- 466, 466, 466, 466, 466, 468, 467, 470, 469, 471,
- 471, 472, 472, 472, 474, 473, 476, 475, 477, 477,
- 478, 478, 478, 479, 479, 479, 479, 479, 479, 479,
- 479, 479, 479, 480, 481, 482, 484, 483, 486, 485,
- 488, 487, 489, 491, 490, 492, 494, 493, 495, 495,
- 496, 496, 496, 498, 497, 500, 499, 501, 501, 502,
- 502, 502, 503, 503, 503, 503, 503, 503, 503, 503,
- 503, 503, 503, 504, 506, 505, 507, 508, 509, 510,
- 511, 513, 512, 515, 514, 516, 516, 517, 517, 517,
- 519, 518, 521, 520, 522, 522, 522, 523, 523, 523,
- 523, 523, 523, 523, 523, 523, 525, 524, 526, 528,
- 527, 530, 529, 532, 531, 533, 533, 534, 534, 534,
- 536, 535, 538, 537, 539, 539, 540, 540, 540, 541,
- 541, 541, 541, 541, 541, 541, 541, 541, 541, 541,
- 541, 541, 541, 541, 543, 542, 545, 544, 547, 546,
- 549, 548, 551, 550, 553, 552, 555, 554, 557, 556,
- 559, 558, 561, 560, 563, 562, 565, 564, 566, 568,
- 567, 570, 569, 571, 571, 571, 573, 572, 574, 574,
- 575, 575, 575, 576, 576, 576, 576, 576, 576, 576,
- 576, 576, 576, 576, 576, 576, 576, 576, 576, 576,
- 577, 579, 578, 581, 580, 582, 583, 584, 586, 585,
- 588, 587, 589, 589, 590, 590, 590, 592, 591, 593,
- 593, 593, 594, 594, 594, 594, 594, 594, 594, 594,
- 594, 594, 594, 594, 594, 596, 595, 597, 597, 597,
- 599, 598, 601, 600, 602, 603, 605, 604, 606, 606,
- 607, 607, 607, 609, 608, 610, 610, 610, 611, 611,
- 611, 611, 611, 613, 612, 615, 614, 616, 616, 616,
- 617, 617, 617, 617, 617, 617, 617, 619, 618, 620,
- 622, 621, 624, 623, 626, 625, 627, 627, 628, 628,
- 628, 630, 629, 631, 631, 631, 632, 632, 632, 632,
- 632, 632, 632, 634, 633, 636, 635, 638, 637, 639,
- 639, 639, 640, 640, 640, 640, 640, 640, 641, 643,
- 642, 644, 646, 645, 648, 647, 650, 649, 651, 651,
- 651, 652, 652, 652, 652, 652, 652, 652, 652, 652,
- 652, 652, 653, 655, 654, 656, 658, 657, 659, 660,
- 662, 661, 663, 663, 665, 664, 667, 666, 669, 668,
- 670, 670, 670, 671, 671, 673, 672, 674, 676, 675,
- 677, 677, 677, 679, 678, 680, 680, 680, 681, 681,
- 681, 681, 681, 681, 681, 682, 684, 683, 686, 685,
- 687, 687, 687, 689, 688, 690, 690, 690, 691, 691,
- 691, 691, 691, 693, 692, 694, 695, 696, 698, 697,
- 700, 699, 701, 701, 701, 702, 702, 702, 702, 702,
- 703, 704, 705, 706
+ 438, 438, 438, 438, 438, 438, 438, 438, 438, 438,
+ 440, 439, 442, 441, 444, 443, 446, 445, 448, 447,
+ 450, 449, 452, 451, 454, 453, 456, 455, 457, 458,
+ 459, 460, 462, 461, 463, 463, 464, 464, 464, 466,
+ 465, 467, 467, 467, 468, 468, 468, 468, 468, 468,
+ 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
+ 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
+ 468, 468, 468, 468, 468, 468, 468, 468, 468, 468,
+ 468, 468, 468, 468, 468, 468, 468, 468, 468, 470,
+ 469, 472, 471, 473, 473, 474, 474, 474, 476, 475,
+ 478, 477, 479, 479, 480, 480, 480, 481, 481, 481,
+ 481, 481, 481, 481, 481, 481, 481, 482, 483, 484,
+ 486, 485, 488, 487, 490, 489, 491, 493, 492, 494,
+ 496, 495, 497, 497, 498, 498, 498, 500, 499, 502,
+ 501, 503, 503, 504, 504, 504, 505, 505, 505, 505,
+ 505, 505, 505, 505, 505, 505, 505, 506, 508, 507,
+ 509, 510, 511, 512, 513, 515, 514, 517, 516, 518,
+ 518, 519, 519, 519, 521, 520, 523, 522, 524, 524,
+ 524, 525, 525, 525, 525, 525, 525, 525, 525, 525,
+ 525, 527, 526, 528, 530, 529, 532, 531, 534, 533,
+ 535, 535, 536, 536, 536, 538, 537, 540, 539, 541,
+ 541, 542, 542, 542, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 545,
+ 544, 547, 546, 549, 548, 551, 550, 553, 552, 555,
+ 554, 557, 556, 559, 558, 561, 560, 563, 562, 565,
+ 564, 567, 566, 568, 570, 569, 572, 571, 573, 573,
+ 573, 575, 574, 576, 576, 577, 577, 577, 578, 578,
+ 578, 578, 578, 578, 578, 578, 578, 578, 578, 578,
+ 578, 578, 578, 578, 578, 579, 581, 580, 583, 582,
+ 584, 585, 586, 588, 587, 590, 589, 591, 591, 592,
+ 592, 592, 594, 593, 595, 595, 595, 596, 596, 596,
+ 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
+ 598, 597, 599, 599, 599, 601, 600, 603, 602, 604,
+ 605, 607, 606, 608, 608, 609, 609, 609, 611, 610,
+ 612, 612, 612, 613, 613, 613, 613, 613, 615, 614,
+ 617, 616, 618, 618, 618, 619, 619, 619, 619, 619,
+ 619, 619, 621, 620, 622, 624, 623, 626, 625, 628,
+ 627, 629, 629, 630, 630, 630, 632, 631, 633, 633,
+ 633, 634, 634, 634, 634, 634, 634, 634, 636, 635,
+ 638, 637, 640, 639, 641, 641, 641, 642, 642, 642,
+ 642, 642, 642, 643, 645, 644, 646, 648, 647, 650,
+ 649, 652, 651, 653, 653, 653, 654, 654, 654, 654,
+ 654, 654, 654, 654, 654, 654, 654, 655, 657, 656,
+ 658, 660, 659, 661, 662, 664, 663, 665, 665, 667,
+ 666, 669, 668, 671, 670, 672, 672, 672, 673, 673,
+ 675, 674, 676, 678, 677, 679, 679, 679, 681, 680,
+ 682, 682, 682, 683, 683, 683, 683, 683, 683, 683,
+ 684, 686, 685, 688, 687, 689, 689, 689, 691, 690,
+ 692, 692, 692, 693, 693, 693, 693, 693, 695, 694,
+ 696, 697, 698, 700, 699, 702, 701, 703, 703, 703,
+ 704, 704, 704, 704, 704, 705, 706, 707, 708
};
const signed char
@@ -6428,57 +6456,57 @@ namespace isc { namespace dhcp {
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
- 4, 0, 4, 0, 4, 0, 4, 0, 4, 0,
- 4, 0, 4, 0, 4, 3, 3, 3, 3, 0,
- 6, 0, 1, 1, 3, 2, 0, 4, 1, 3,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 4, 0, 4, 0, 4, 0, 4, 0, 4,
+ 0, 4, 0, 4, 0, 4, 0, 4, 3, 3,
+ 3, 3, 0, 6, 0, 1, 1, 3, 2, 0,
+ 4, 1, 3, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 6, 0, 4, 0,
- 1, 1, 3, 2, 0, 4, 0, 4, 0, 1,
- 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 3, 1, 0, 4, 0, 4,
- 0, 4, 1, 0, 4, 3, 0, 6, 0, 1,
- 1, 3, 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, 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, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 0, 4, 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, 1, 0, 4, 1, 1, 1,
- 0, 4, 0, 4, 3, 3, 0, 6, 0, 1,
- 1, 3, 2, 0, 4, 1, 3, 2, 1, 1,
- 1, 1, 1, 0, 4, 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,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 6, 0, 4, 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, 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, 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, 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, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 0, 4, 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, 1,
+ 0, 4, 1, 1, 1, 0, 4, 0, 4, 3,
+ 3, 0, 6, 0, 1, 1, 3, 2, 0, 4,
+ 1, 3, 2, 1, 1, 1, 1, 1, 0, 4,
0, 6, 1, 3, 2, 1, 1, 1, 1, 1,
- 3, 3, 3, 3
+ 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, 1, 1, 1, 3, 3, 3, 3
};
@@ -6620,68 +6648,69 @@ namespace isc { namespace dhcp {
"sub_subnet4", "$@60", "subnet4_params", "subnet4_param", "subnet",
"$@61", "subnet_4o6_interface", "$@62", "subnet_4o6_interface_id",
"$@63", "subnet_4o6_subnet", "$@64", "interface", "$@65", "client_class",
- "$@66", "require_client_classes", "$@67", "evaluate_additional_classes",
- "$@68", "reservations_global", "reservations_in_subnet",
- "reservations_out_of_pool", "id", "shared_networks", "$@69",
- "shared_networks_content", "shared_networks_list", "shared_network",
- "$@70", "shared_network_params", "shared_network_param",
- "option_def_list", "$@71", "sub_option_def_list", "$@72",
- "option_def_list_content", "not_empty_option_def_list",
- "option_def_entry", "$@73", "sub_option_def", "$@74",
- "option_def_params", "not_empty_option_def_params", "option_def_param",
- "option_def_name", "code", "option_def_code", "option_def_type", "$@75",
- "option_def_record_types", "$@76", "space", "$@77", "option_def_space",
- "option_def_encapsulate", "$@78", "option_def_array", "option_data_list",
- "$@79", "option_data_list_content", "not_empty_option_data_list",
- "option_data_entry", "$@80", "sub_option_data", "$@81",
+ "$@66", "network_client_classes", "$@67", "require_client_classes",
+ "$@68", "evaluate_additional_classes", "$@69", "reservations_global",
+ "reservations_in_subnet", "reservations_out_of_pool", "id",
+ "shared_networks", "$@70", "shared_networks_content",
+ "shared_networks_list", "shared_network", "$@71",
+ "shared_network_params", "shared_network_param", "option_def_list",
+ "$@72", "sub_option_def_list", "$@73", "option_def_list_content",
+ "not_empty_option_def_list", "option_def_entry", "$@74",
+ "sub_option_def", "$@75", "option_def_params",
+ "not_empty_option_def_params", "option_def_param", "option_def_name",
+ "code", "option_def_code", "option_def_type", "$@76",
+ "option_def_record_types", "$@77", "space", "$@78", "option_def_space",
+ "option_def_encapsulate", "$@79", "option_def_array", "option_data_list",
+ "$@80", "option_data_list_content", "not_empty_option_data_list",
+ "option_data_entry", "$@81", "sub_option_data", "$@82",
"option_data_params", "not_empty_option_data_params",
- "option_data_param", "option_data_name", "option_data_data", "$@82",
+ "option_data_param", "option_data_name", "option_data_data", "$@83",
"option_data_code", "option_data_space", "option_data_csv_format",
"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_pool4", "$@86", "pool_params", "pool_param", "pool_entry", "$@87",
- "pool_id", "user_context", "$@88", "comment", "$@89", "reservations",
- "$@90", "reservations_list", "not_empty_reservations_list",
- "reservation", "$@91", "sub_reservation", "$@92", "reservation_params",
+ "option_data_client_classes", "$@84", "pools_list", "$@85",
+ "pools_list_content", "not_empty_pools_list", "pool_list_entry", "$@86",
+ "sub_pool4", "$@87", "pool_params", "pool_param", "pool_entry", "$@88",
+ "pool_id", "user_context", "$@89", "comment", "$@90", "reservations",
+ "$@91", "reservations_list", "not_empty_reservations_list",
+ "reservation", "$@92", "sub_reservation", "$@93", "reservation_params",
"not_empty_reservation_params", "reservation_param", "next_server",
- "$@93", "server_hostname", "$@94", "boot_file_name", "$@95",
- "ip_address", "$@96", "duid", "$@97", "hw_address", "$@98",
- "client_id_value", "$@99", "circuit_id_value", "$@100", "flex_id_value",
- "$@101", "hostname", "$@102", "reservation_client_classes", "$@103",
- "relay", "$@104", "relay_map", "ip_addresses", "$@105", "client_classes",
- "$@106", "client_classes_list", "client_class_entry", "$@107",
+ "$@94", "server_hostname", "$@95", "boot_file_name", "$@96",
+ "ip_address", "$@97", "duid", "$@98", "hw_address", "$@99",
+ "client_id_value", "$@100", "circuit_id_value", "$@101", "flex_id_value",
+ "$@102", "hostname", "$@103", "reservation_client_classes", "$@104",
+ "relay", "$@105", "relay_map", "ip_addresses", "$@106", "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", "$@108",
- "client_class_template_test", "$@109", "only_if_required",
- "only_in_additional_list", "dhcp4o6_port", "control_socket", "$@110",
- "control_sockets", "$@111", "control_socket_list",
- "not_empty_control_socket_list", "control_socket_entry", "$@112",
+ "client_class_param", "client_class_name", "client_class_test", "$@109",
+ "client_class_template_test", "$@110", "only_if_required",
+ "only_in_additional_list", "dhcp4o6_port", "control_socket", "$@111",
+ "control_sockets", "$@112", "control_socket_list",
+ "not_empty_control_socket_list", "control_socket_entry", "$@113",
"control_socket_params", "control_socket_param", "control_socket_type",
- "$@113", "control_socket_type_value", "control_socket_name", "$@114",
- "control_socket_address", "$@115", "control_socket_port",
- "cert_required", "http_headers", "$@116", "http_header_list",
- "not_empty_http_header_list", "http_header", "$@117",
- "http_header_params", "http_header_param", "header_value", "$@118",
- "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",
+ "$@114", "control_socket_type_value", "control_socket_name", "$@115",
+ "control_socket_address", "$@116", "control_socket_port",
+ "cert_required", "http_headers", "$@117", "http_header_list",
+ "not_empty_http_header_list", "http_header", "$@118",
+ "http_header_params", "http_header_param", "header_value", "$@119",
+ "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",
"ignore_dhcp_server_identifier", "ignore_rai_link_selection",
"exclude_first_last_24", YY_NULLPTR
@@ -6736,57 +6765,57 @@ namespace isc { namespace dhcp {
1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614,
1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624,
1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634,
- 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1646,
- 1646, 1655, 1655, 1664, 1664, 1673, 1673, 1682, 1682, 1691,
- 1691, 1701, 1701, 1712, 1712, 1723, 1729, 1735, 1741, 1749,
- 1749, 1761, 1762, 1766, 1767, 1768, 1773, 1773, 1781, 1782,
- 1783, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796,
- 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806,
+ 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644,
+ 1647, 1647, 1656, 1656, 1665, 1665, 1674, 1674, 1683, 1683,
+ 1692, 1692, 1702, 1702, 1714, 1714, 1725, 1725, 1736, 1742,
+ 1748, 1754, 1762, 1762, 1774, 1775, 1779, 1780, 1781, 1786,
+ 1786, 1794, 1795, 1796, 1801, 1802, 1803, 1804, 1805, 1806,
1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816,
1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826,
- 1827, 1828, 1829, 1830, 1831, 1838, 1838, 1852, 1852, 1861,
- 1862, 1865, 1866, 1867, 1874, 1874, 1889, 1889, 1903, 1904,
- 1907, 1908, 1909, 1914, 1915, 1916, 1917, 1918, 1919, 1920,
- 1921, 1922, 1923, 1926, 1928, 1934, 1936, 1936, 1945, 1945,
- 1954, 1954, 1963, 1965, 1965, 1974, 1984, 1984, 1997, 1998,
- 2003, 2004, 2005, 2012, 2012, 2024, 2024, 2036, 2037, 2042,
- 2043, 2044, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058,
- 2059, 2060, 2061, 2064, 2066, 2066, 2075, 2077, 2079, 2085,
- 2091, 2097, 2097, 2111, 2111, 2124, 2125, 2128, 2129, 2130,
- 2135, 2135, 2145, 2145, 2155, 2156, 2157, 2162, 2163, 2164,
- 2165, 2166, 2167, 2168, 2169, 2170, 2173, 2173, 2182, 2188,
- 2188, 2213, 2213, 2243, 2243, 2254, 2255, 2258, 2259, 2260,
- 2265, 2265, 2274, 2274, 2283, 2284, 2287, 2288, 2289, 2295,
- 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305,
- 2306, 2307, 2308, 2309, 2312, 2312, 2321, 2321, 2330, 2330,
- 2339, 2339, 2348, 2348, 2357, 2357, 2366, 2366, 2375, 2375,
- 2384, 2384, 2393, 2393, 2402, 2402, 2416, 2416, 2427, 2430,
- 2430, 2444, 2444, 2455, 2456, 2457, 2462, 2462, 2472, 2473,
- 2476, 2477, 2478, 2483, 2484, 2485, 2486, 2487, 2488, 2489,
- 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499,
- 2502, 2504, 2504, 2513, 2513, 2523, 2529, 2537, 2545, 2545,
- 2557, 2557, 2569, 2570, 2573, 2574, 2575, 2580, 2580, 2588,
- 2589, 2590, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602,
- 2603, 2604, 2605, 2606, 2607, 2610, 2610, 2619, 2620, 2621,
- 2624, 2624, 2634, 2634, 2644, 2650, 2656, 2656, 2667, 2668,
- 2671, 2672, 2673, 2678, 2678, 2686, 2687, 2688, 2693, 2694,
- 2695, 2696, 2697, 2700, 2700, 2711, 2711, 2724, 2725, 2726,
- 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2740, 2740, 2748,
- 2751, 2751, 2760, 2760, 2769, 2769, 2780, 2781, 2784, 2785,
- 2786, 2791, 2791, 2799, 2800, 2801, 2806, 2807, 2808, 2809,
- 2810, 2811, 2812, 2815, 2815, 2824, 2824, 2835, 2835, 2848,
- 2849, 2850, 2855, 2856, 2857, 2858, 2859, 2860, 2863, 2869,
- 2869, 2878, 2884, 2884, 2894, 2894, 2907, 2907, 2917, 2918,
- 2919, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932,
- 2933, 2934, 2937, 2943, 2943, 2952, 2958, 2958, 2967, 2973,
- 2979, 2979, 2988, 2989, 2992, 2992, 3003, 3003, 3015, 3015,
- 3025, 3026, 3027, 3033, 3034, 3037, 3037, 3048, 3056, 3056,
- 3069, 3070, 3071, 3077, 3077, 3085, 3086, 3087, 3092, 3093,
- 3094, 3095, 3096, 3097, 3098, 3101, 3107, 3107, 3116, 3116,
- 3127, 3128, 3129, 3134, 3134, 3142, 3143, 3144, 3149, 3150,
- 3151, 3152, 3153, 3156, 3156, 3165, 3171, 3177, 3183, 3183,
- 3192, 3192, 3203, 3204, 3205, 3210, 3211, 3212, 3213, 3214,
- 3217, 3223, 3229, 3235
+ 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836,
+ 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1852,
+ 1852, 1866, 1866, 1875, 1876, 1879, 1880, 1881, 1888, 1888,
+ 1903, 1903, 1917, 1918, 1921, 1922, 1923, 1928, 1929, 1930,
+ 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1940, 1942, 1948,
+ 1950, 1950, 1959, 1959, 1968, 1968, 1977, 1979, 1979, 1988,
+ 1998, 1998, 2011, 2012, 2017, 2018, 2019, 2026, 2026, 2038,
+ 2038, 2050, 2051, 2056, 2057, 2058, 2065, 2066, 2067, 2068,
+ 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2078, 2080, 2080,
+ 2089, 2091, 2093, 2099, 2105, 2111, 2111, 2125, 2125, 2138,
+ 2139, 2142, 2143, 2144, 2149, 2149, 2159, 2159, 2169, 2170,
+ 2171, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184,
+ 2185, 2188, 2188, 2197, 2203, 2203, 2228, 2228, 2258, 2258,
+ 2269, 2270, 2273, 2274, 2275, 2280, 2280, 2289, 2289, 2298,
+ 2299, 2302, 2303, 2304, 2310, 2311, 2312, 2313, 2314, 2315,
+ 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2327,
+ 2327, 2336, 2336, 2345, 2345, 2354, 2354, 2363, 2363, 2372,
+ 2372, 2381, 2381, 2390, 2390, 2399, 2399, 2408, 2408, 2417,
+ 2417, 2431, 2431, 2442, 2445, 2445, 2459, 2459, 2470, 2471,
+ 2472, 2477, 2477, 2487, 2488, 2491, 2492, 2493, 2498, 2499,
+ 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509,
+ 2510, 2511, 2512, 2513, 2514, 2517, 2519, 2519, 2528, 2528,
+ 2538, 2544, 2552, 2560, 2560, 2572, 2572, 2584, 2585, 2588,
+ 2589, 2590, 2595, 2595, 2603, 2604, 2605, 2610, 2611, 2612,
+ 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622,
+ 2625, 2625, 2634, 2635, 2636, 2639, 2639, 2649, 2649, 2659,
+ 2665, 2671, 2671, 2682, 2683, 2686, 2687, 2688, 2693, 2693,
+ 2701, 2702, 2703, 2708, 2709, 2710, 2711, 2712, 2715, 2715,
+ 2726, 2726, 2739, 2740, 2741, 2746, 2747, 2748, 2749, 2750,
+ 2751, 2752, 2755, 2755, 2763, 2766, 2766, 2775, 2775, 2784,
+ 2784, 2795, 2796, 2799, 2800, 2801, 2806, 2806, 2814, 2815,
+ 2816, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2830, 2830,
+ 2839, 2839, 2850, 2850, 2863, 2864, 2865, 2870, 2871, 2872,
+ 2873, 2874, 2875, 2878, 2884, 2884, 2893, 2899, 2899, 2909,
+ 2909, 2922, 2922, 2932, 2933, 2934, 2939, 2940, 2941, 2942,
+ 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2952, 2958, 2958,
+ 2967, 2973, 2973, 2982, 2988, 2994, 2994, 3003, 3004, 3007,
+ 3007, 3018, 3018, 3030, 3030, 3040, 3041, 3042, 3048, 3049,
+ 3052, 3052, 3063, 3071, 3071, 3084, 3085, 3086, 3092, 3092,
+ 3100, 3101, 3102, 3107, 3108, 3109, 3110, 3111, 3112, 3113,
+ 3116, 3122, 3122, 3131, 3131, 3142, 3143, 3144, 3149, 3149,
+ 3157, 3158, 3159, 3164, 3165, 3166, 3167, 3168, 3171, 3171,
+ 3180, 3186, 3192, 3198, 3198, 3207, 3207, 3218, 3219, 3220,
+ 3225, 3226, 3227, 3228, 3229, 3232, 3238, 3244, 3250
};
void
@@ -6819,9 +6848,9 @@ namespace isc { namespace dhcp {
#line 14 "dhcp4_parser.yy"
} } // isc::dhcp
-#line 6823 "dhcp4_parser.cc"
+#line 6852 "dhcp4_parser.cc"
-#line 3241 "dhcp4_parser.yy"
+#line 3256 "dhcp4_parser.yy"
void
diff --git a/src/bin/dhcp4/dhcp4_parser.h b/src/bin/dhcp4/dhcp4_parser.h
index 0a42b9808e..21ec1d2134 100644
--- a/src/bin/dhcp4/dhcp4_parser.h
+++ b/src/bin/dhcp4/dhcp4_parser.h
@@ -1197,262 +1197,264 @@ namespace isc { namespace dhcp {
S_448_65 = 448, // $@65
S_client_class = 449, // client_class
S_450_66 = 450, // $@66
- S_require_client_classes = 451, // require_client_classes
+ S_network_client_classes = 451, // network_client_classes
S_452_67 = 452, // $@67
- S_evaluate_additional_classes = 453, // evaluate_additional_classes
+ S_require_client_classes = 453, // require_client_classes
S_454_68 = 454, // $@68
- S_reservations_global = 455, // reservations_global
- S_reservations_in_subnet = 456, // reservations_in_subnet
- S_reservations_out_of_pool = 457, // reservations_out_of_pool
- S_id = 458, // id
- S_shared_networks = 459, // shared_networks
- S_460_69 = 460, // $@69
- S_shared_networks_content = 461, // shared_networks_content
- S_shared_networks_list = 462, // shared_networks_list
- S_shared_network = 463, // shared_network
- S_464_70 = 464, // $@70
- S_shared_network_params = 465, // shared_network_params
- S_shared_network_param = 466, // shared_network_param
- S_option_def_list = 467, // option_def_list
- S_468_71 = 468, // $@71
- S_sub_option_def_list = 469, // sub_option_def_list
+ S_evaluate_additional_classes = 455, // evaluate_additional_classes
+ S_456_69 = 456, // $@69
+ S_reservations_global = 457, // reservations_global
+ S_reservations_in_subnet = 458, // reservations_in_subnet
+ S_reservations_out_of_pool = 459, // reservations_out_of_pool
+ S_id = 460, // id
+ S_shared_networks = 461, // shared_networks
+ S_462_70 = 462, // $@70
+ S_shared_networks_content = 463, // shared_networks_content
+ S_shared_networks_list = 464, // shared_networks_list
+ S_shared_network = 465, // shared_network
+ S_466_71 = 466, // $@71
+ S_shared_network_params = 467, // shared_network_params
+ S_shared_network_param = 468, // shared_network_param
+ S_option_def_list = 469, // option_def_list
S_470_72 = 470, // $@72
- S_option_def_list_content = 471, // option_def_list_content
- S_not_empty_option_def_list = 472, // not_empty_option_def_list
- S_option_def_entry = 473, // option_def_entry
- S_474_73 = 474, // $@73
- S_sub_option_def = 475, // sub_option_def
+ S_sub_option_def_list = 471, // sub_option_def_list
+ S_472_73 = 472, // $@73
+ S_option_def_list_content = 473, // option_def_list_content
+ S_not_empty_option_def_list = 474, // not_empty_option_def_list
+ S_option_def_entry = 475, // option_def_entry
S_476_74 = 476, // $@74
- S_option_def_params = 477, // option_def_params
- S_not_empty_option_def_params = 478, // not_empty_option_def_params
- S_option_def_param = 479, // option_def_param
- S_option_def_name = 480, // option_def_name
- S_code = 481, // code
- S_option_def_code = 482, // option_def_code
- S_option_def_type = 483, // option_def_type
- S_484_75 = 484, // $@75
- S_option_def_record_types = 485, // option_def_record_types
+ S_sub_option_def = 477, // sub_option_def
+ S_478_75 = 478, // $@75
+ S_option_def_params = 479, // option_def_params
+ S_not_empty_option_def_params = 480, // not_empty_option_def_params
+ S_option_def_param = 481, // option_def_param
+ S_option_def_name = 482, // option_def_name
+ S_code = 483, // code
+ S_option_def_code = 484, // option_def_code
+ S_option_def_type = 485, // option_def_type
S_486_76 = 486, // $@76
- S_space = 487, // space
+ S_option_def_record_types = 487, // option_def_record_types
S_488_77 = 488, // $@77
- S_option_def_space = 489, // option_def_space
- S_option_def_encapsulate = 490, // option_def_encapsulate
- S_491_78 = 491, // $@78
- S_option_def_array = 492, // option_def_array
- S_option_data_list = 493, // option_data_list
- S_494_79 = 494, // $@79
- S_option_data_list_content = 495, // option_data_list_content
- S_not_empty_option_data_list = 496, // not_empty_option_data_list
- S_option_data_entry = 497, // option_data_entry
- S_498_80 = 498, // $@80
- S_sub_option_data = 499, // sub_option_data
+ S_space = 489, // space
+ S_490_78 = 490, // $@78
+ S_option_def_space = 491, // option_def_space
+ S_option_def_encapsulate = 492, // option_def_encapsulate
+ S_493_79 = 493, // $@79
+ S_option_def_array = 494, // option_def_array
+ S_option_data_list = 495, // option_data_list
+ S_496_80 = 496, // $@80
+ S_option_data_list_content = 497, // option_data_list_content
+ S_not_empty_option_data_list = 498, // not_empty_option_data_list
+ S_option_data_entry = 499, // option_data_entry
S_500_81 = 500, // $@81
- S_option_data_params = 501, // option_data_params
- S_not_empty_option_data_params = 502, // not_empty_option_data_params
- S_option_data_param = 503, // option_data_param
- S_option_data_name = 504, // option_data_name
- S_option_data_data = 505, // option_data_data
- S_506_82 = 506, // $@82
- S_option_data_code = 507, // option_data_code
- S_option_data_space = 508, // option_data_space
- S_option_data_csv_format = 509, // option_data_csv_format
- S_option_data_always_send = 510, // option_data_always_send
- S_option_data_never_send = 511, // option_data_never_send
- S_option_data_client_classes = 512, // option_data_client_classes
- S_513_83 = 513, // $@83
- S_pools_list = 514, // pools_list
+ S_sub_option_data = 501, // sub_option_data
+ S_502_82 = 502, // $@82
+ S_option_data_params = 503, // option_data_params
+ S_not_empty_option_data_params = 504, // not_empty_option_data_params
+ S_option_data_param = 505, // option_data_param
+ S_option_data_name = 506, // option_data_name
+ S_option_data_data = 507, // option_data_data
+ S_508_83 = 508, // $@83
+ S_option_data_code = 509, // option_data_code
+ S_option_data_space = 510, // option_data_space
+ S_option_data_csv_format = 511, // option_data_csv_format
+ S_option_data_always_send = 512, // option_data_always_send
+ S_option_data_never_send = 513, // option_data_never_send
+ S_option_data_client_classes = 514, // option_data_client_classes
S_515_84 = 515, // $@84
- S_pools_list_content = 516, // pools_list_content
- S_not_empty_pools_list = 517, // not_empty_pools_list
- S_pool_list_entry = 518, // pool_list_entry
- S_519_85 = 519, // $@85
- S_sub_pool4 = 520, // sub_pool4
+ S_pools_list = 516, // pools_list
+ S_517_85 = 517, // $@85
+ S_pools_list_content = 518, // pools_list_content
+ S_not_empty_pools_list = 519, // not_empty_pools_list
+ S_pool_list_entry = 520, // pool_list_entry
S_521_86 = 521, // $@86
- S_pool_params = 522, // pool_params
- S_pool_param = 523, // pool_param
- S_pool_entry = 524, // pool_entry
- S_525_87 = 525, // $@87
- S_pool_id = 526, // pool_id
- S_user_context = 527, // user_context
- S_528_88 = 528, // $@88
- S_comment = 529, // comment
+ S_sub_pool4 = 522, // sub_pool4
+ S_523_87 = 523, // $@87
+ S_pool_params = 524, // pool_params
+ S_pool_param = 525, // pool_param
+ S_pool_entry = 526, // pool_entry
+ S_527_88 = 527, // $@88
+ S_pool_id = 528, // pool_id
+ S_user_context = 529, // user_context
S_530_89 = 530, // $@89
- S_reservations = 531, // reservations
+ S_comment = 531, // comment
S_532_90 = 532, // $@90
- S_reservations_list = 533, // reservations_list
- S_not_empty_reservations_list = 534, // not_empty_reservations_list
- S_reservation = 535, // reservation
- S_536_91 = 536, // $@91
- S_sub_reservation = 537, // sub_reservation
+ S_reservations = 533, // reservations
+ S_534_91 = 534, // $@91
+ S_reservations_list = 535, // reservations_list
+ S_not_empty_reservations_list = 536, // not_empty_reservations_list
+ S_reservation = 537, // reservation
S_538_92 = 538, // $@92
- S_reservation_params = 539, // reservation_params
- S_not_empty_reservation_params = 540, // not_empty_reservation_params
- S_reservation_param = 541, // reservation_param
- S_next_server = 542, // next_server
- S_543_93 = 543, // $@93
- S_server_hostname = 544, // server_hostname
+ S_sub_reservation = 539, // sub_reservation
+ S_540_93 = 540, // $@93
+ S_reservation_params = 541, // reservation_params
+ S_not_empty_reservation_params = 542, // not_empty_reservation_params
+ S_reservation_param = 543, // reservation_param
+ S_next_server = 544, // next_server
S_545_94 = 545, // $@94
- S_boot_file_name = 546, // boot_file_name
+ S_server_hostname = 546, // server_hostname
S_547_95 = 547, // $@95
- S_ip_address = 548, // ip_address
+ S_boot_file_name = 548, // boot_file_name
S_549_96 = 549, // $@96
- S_duid = 550, // duid
+ S_ip_address = 550, // ip_address
S_551_97 = 551, // $@97
- S_hw_address = 552, // hw_address
+ S_duid = 552, // duid
S_553_98 = 553, // $@98
- S_client_id_value = 554, // client_id_value
+ S_hw_address = 554, // hw_address
S_555_99 = 555, // $@99
- S_circuit_id_value = 556, // circuit_id_value
+ S_client_id_value = 556, // client_id_value
S_557_100 = 557, // $@100
- S_flex_id_value = 558, // flex_id_value
+ S_circuit_id_value = 558, // circuit_id_value
S_559_101 = 559, // $@101
- S_hostname = 560, // hostname
+ S_flex_id_value = 560, // flex_id_value
S_561_102 = 561, // $@102
- S_reservation_client_classes = 562, // reservation_client_classes
+ S_hostname = 562, // hostname
S_563_103 = 563, // $@103
- S_relay = 564, // relay
+ S_reservation_client_classes = 564, // reservation_client_classes
S_565_104 = 565, // $@104
- S_relay_map = 566, // relay_map
- S_ip_addresses = 567, // ip_addresses
- S_568_105 = 568, // $@105
- S_client_classes = 569, // client_classes
+ S_relay = 566, // relay
+ S_567_105 = 567, // $@105
+ S_relay_map = 568, // relay_map
+ S_ip_addresses = 569, // ip_addresses
S_570_106 = 570, // $@106
- S_client_classes_list = 571, // client_classes_list
- S_client_class_entry = 572, // client_class_entry
- S_573_107 = 573, // $@107
- S_client_class_params = 574, // client_class_params
- S_not_empty_client_class_params = 575, // not_empty_client_class_params
- S_client_class_param = 576, // client_class_param
- S_client_class_name = 577, // client_class_name
- S_client_class_test = 578, // client_class_test
- S_579_108 = 579, // $@108
- S_client_class_template_test = 580, // client_class_template_test
+ S_client_classes = 571, // client_classes
+ S_572_107 = 572, // $@107
+ S_client_classes_list = 573, // client_classes_list
+ S_client_class_entry = 574, // client_class_entry
+ S_575_108 = 575, // $@108
+ S_client_class_params = 576, // client_class_params
+ S_not_empty_client_class_params = 577, // not_empty_client_class_params
+ S_client_class_param = 578, // client_class_param
+ S_client_class_name = 579, // client_class_name
+ S_client_class_test = 580, // client_class_test
S_581_109 = 581, // $@109
- S_only_if_required = 582, // only_if_required
- S_only_in_additional_list = 583, // only_in_additional_list
- S_dhcp4o6_port = 584, // dhcp4o6_port
- S_control_socket = 585, // control_socket
- S_586_110 = 586, // $@110
- S_control_sockets = 587, // control_sockets
+ S_client_class_template_test = 582, // client_class_template_test
+ S_583_110 = 583, // $@110
+ S_only_if_required = 584, // only_if_required
+ S_only_in_additional_list = 585, // only_in_additional_list
+ S_dhcp4o6_port = 586, // dhcp4o6_port
+ S_control_socket = 587, // control_socket
S_588_111 = 588, // $@111
- S_control_socket_list = 589, // control_socket_list
- S_not_empty_control_socket_list = 590, // not_empty_control_socket_list
- S_control_socket_entry = 591, // control_socket_entry
- S_592_112 = 592, // $@112
- S_control_socket_params = 593, // control_socket_params
- S_control_socket_param = 594, // control_socket_param
- S_control_socket_type = 595, // control_socket_type
- S_596_113 = 596, // $@113
- S_control_socket_type_value = 597, // control_socket_type_value
- S_control_socket_name = 598, // control_socket_name
- S_599_114 = 599, // $@114
- S_control_socket_address = 600, // control_socket_address
+ S_control_sockets = 589, // control_sockets
+ S_590_112 = 590, // $@112
+ S_control_socket_list = 591, // control_socket_list
+ S_not_empty_control_socket_list = 592, // not_empty_control_socket_list
+ S_control_socket_entry = 593, // control_socket_entry
+ S_594_113 = 594, // $@113
+ S_control_socket_params = 595, // control_socket_params
+ S_control_socket_param = 596, // control_socket_param
+ S_control_socket_type = 597, // control_socket_type
+ S_598_114 = 598, // $@114
+ S_control_socket_type_value = 599, // control_socket_type_value
+ S_control_socket_name = 600, // control_socket_name
S_601_115 = 601, // $@115
- S_control_socket_port = 602, // control_socket_port
- S_cert_required = 603, // cert_required
- S_http_headers = 604, // http_headers
- S_605_116 = 605, // $@116
- S_http_header_list = 606, // http_header_list
- S_not_empty_http_header_list = 607, // not_empty_http_header_list
- S_http_header = 608, // http_header
- S_609_117 = 609, // $@117
- S_http_header_params = 610, // http_header_params
- S_http_header_param = 611, // http_header_param
- S_header_value = 612, // header_value
- S_613_118 = 613, // $@118
- S_authentication = 614, // authentication
+ S_control_socket_address = 602, // control_socket_address
+ S_603_116 = 603, // $@116
+ S_control_socket_port = 604, // control_socket_port
+ S_cert_required = 605, // cert_required
+ S_http_headers = 606, // http_headers
+ S_607_117 = 607, // $@117
+ S_http_header_list = 608, // http_header_list
+ S_not_empty_http_header_list = 609, // not_empty_http_header_list
+ S_http_header = 610, // http_header
+ S_611_118 = 611, // $@118
+ S_http_header_params = 612, // http_header_params
+ S_http_header_param = 613, // http_header_param
+ S_header_value = 614, // header_value
S_615_119 = 615, // $@119
- S_auth_params = 616, // auth_params
- S_auth_param = 617, // auth_param
- S_auth_type = 618, // auth_type
- S_619_120 = 619, // $@120
- S_auth_type_value = 620, // auth_type_value
- S_realm = 621, // realm
- S_622_121 = 622, // $@121
- S_directory = 623, // directory
+ S_authentication = 616, // authentication
+ S_617_120 = 617, // $@120
+ S_auth_params = 618, // auth_params
+ S_auth_param = 619, // auth_param
+ S_auth_type = 620, // auth_type
+ S_621_121 = 621, // $@121
+ S_auth_type_value = 622, // auth_type_value
+ S_realm = 623, // realm
S_624_122 = 624, // $@122
- S_clients = 625, // clients
+ S_directory = 625, // directory
S_626_123 = 626, // $@123
- S_clients_list = 627, // clients_list
- S_not_empty_clients_list = 628, // not_empty_clients_list
- S_basic_auth = 629, // basic_auth
- S_630_124 = 630, // $@124
- S_clients_params = 631, // clients_params
- S_clients_param = 632, // clients_param
- S_user_file = 633, // user_file
- S_634_125 = 634, // $@125
- S_password_file = 635, // password_file
+ S_clients = 627, // clients
+ S_628_124 = 628, // $@124
+ S_clients_list = 629, // clients_list
+ S_not_empty_clients_list = 630, // not_empty_clients_list
+ S_basic_auth = 631, // basic_auth
+ S_632_125 = 632, // $@125
+ S_clients_params = 633, // clients_params
+ S_clients_param = 634, // clients_param
+ S_user_file = 635, // user_file
S_636_126 = 636, // $@126
- S_dhcp_queue_control = 637, // dhcp_queue_control
+ S_password_file = 637, // password_file
S_638_127 = 638, // $@127
- S_queue_control_params = 639, // queue_control_params
- S_queue_control_param = 640, // queue_control_param
- S_enable_queue = 641, // enable_queue
- S_queue_type = 642, // queue_type
- S_643_128 = 643, // $@128
- S_capacity = 644, // capacity
- S_arbitrary_map_entry = 645, // arbitrary_map_entry
- S_646_129 = 646, // $@129
- S_dhcp_ddns = 647, // dhcp_ddns
+ S_dhcp_queue_control = 639, // dhcp_queue_control
+ S_640_128 = 640, // $@128
+ S_queue_control_params = 641, // queue_control_params
+ S_queue_control_param = 642, // queue_control_param
+ S_enable_queue = 643, // enable_queue
+ S_queue_type = 644, // queue_type
+ S_645_129 = 645, // $@129
+ S_capacity = 646, // capacity
+ S_arbitrary_map_entry = 647, // arbitrary_map_entry
S_648_130 = 648, // $@130
- S_sub_dhcp_ddns = 649, // sub_dhcp_ddns
+ S_dhcp_ddns = 649, // dhcp_ddns
S_650_131 = 650, // $@131
- S_dhcp_ddns_params = 651, // dhcp_ddns_params
- S_dhcp_ddns_param = 652, // dhcp_ddns_param
- S_enable_updates = 653, // enable_updates
- S_server_ip = 654, // server_ip
- S_655_132 = 655, // $@132
- S_server_port = 656, // server_port
- S_sender_ip = 657, // sender_ip
- S_658_133 = 658, // $@133
- S_sender_port = 659, // sender_port
- S_max_queue_size = 660, // max_queue_size
- S_ncr_protocol = 661, // ncr_protocol
- S_662_134 = 662, // $@134
- S_ncr_protocol_value = 663, // ncr_protocol_value
- S_ncr_format = 664, // ncr_format
- S_665_135 = 665, // $@135
- S_config_control = 666, // config_control
+ S_sub_dhcp_ddns = 651, // sub_dhcp_ddns
+ S_652_132 = 652, // $@132
+ S_dhcp_ddns_params = 653, // dhcp_ddns_params
+ S_dhcp_ddns_param = 654, // dhcp_ddns_param
+ S_enable_updates = 655, // enable_updates
+ S_server_ip = 656, // server_ip
+ S_657_133 = 657, // $@133
+ S_server_port = 658, // server_port
+ S_sender_ip = 659, // sender_ip
+ S_660_134 = 660, // $@134
+ S_sender_port = 661, // sender_port
+ S_max_queue_size = 662, // max_queue_size
+ S_ncr_protocol = 663, // ncr_protocol
+ S_664_135 = 664, // $@135
+ S_ncr_protocol_value = 665, // ncr_protocol_value
+ S_ncr_format = 666, // ncr_format
S_667_136 = 667, // $@136
- S_sub_config_control = 668, // sub_config_control
+ S_config_control = 668, // config_control
S_669_137 = 669, // $@137
- S_config_control_params = 670, // config_control_params
- S_config_control_param = 671, // config_control_param
- S_config_databases = 672, // config_databases
- S_673_138 = 673, // $@138
- S_config_fetch_wait_time = 674, // config_fetch_wait_time
- S_loggers = 675, // loggers
- S_676_139 = 676, // $@139
- S_loggers_entries = 677, // loggers_entries
- S_logger_entry = 678, // logger_entry
- S_679_140 = 679, // $@140
- S_logger_params = 680, // logger_params
- S_logger_param = 681, // logger_param
- S_debuglevel = 682, // debuglevel
- S_severity = 683, // severity
- S_684_141 = 684, // $@141
- S_output_options_list = 685, // output_options_list
+ S_sub_config_control = 670, // sub_config_control
+ S_671_138 = 671, // $@138
+ S_config_control_params = 672, // config_control_params
+ S_config_control_param = 673, // config_control_param
+ S_config_databases = 674, // config_databases
+ S_675_139 = 675, // $@139
+ S_config_fetch_wait_time = 676, // config_fetch_wait_time
+ S_loggers = 677, // loggers
+ S_678_140 = 678, // $@140
+ S_loggers_entries = 679, // loggers_entries
+ S_logger_entry = 680, // logger_entry
+ S_681_141 = 681, // $@141
+ S_logger_params = 682, // logger_params
+ S_logger_param = 683, // logger_param
+ S_debuglevel = 684, // debuglevel
+ S_severity = 685, // severity
S_686_142 = 686, // $@142
- S_output_options_list_content = 687, // output_options_list_content
- S_output_entry = 688, // output_entry
- S_689_143 = 689, // $@143
- S_output_params_list = 690, // output_params_list
- S_output_params = 691, // output_params
- S_output = 692, // output
- S_693_144 = 693, // $@144
- S_flush = 694, // flush
- S_maxsize = 695, // maxsize
- S_maxver = 696, // maxver
- S_pattern = 697, // pattern
- S_698_145 = 698, // $@145
- S_compatibility = 699, // compatibility
+ S_output_options_list = 687, // output_options_list
+ S_688_143 = 688, // $@143
+ S_output_options_list_content = 689, // output_options_list_content
+ S_output_entry = 690, // output_entry
+ S_691_144 = 691, // $@144
+ S_output_params_list = 692, // output_params_list
+ S_output_params = 693, // output_params
+ S_output = 694, // output
+ S_695_145 = 695, // $@145
+ S_flush = 696, // flush
+ S_maxsize = 697, // maxsize
+ S_maxver = 698, // maxver
+ S_pattern = 699, // pattern
S_700_146 = 700, // $@146
- S_compatibility_params = 701, // compatibility_params
- S_compatibility_param = 702, // compatibility_param
- S_lenient_option_parsing = 703, // lenient_option_parsing
- S_ignore_dhcp_server_identifier = 704, // ignore_dhcp_server_identifier
- S_ignore_rai_link_selection = 705, // ignore_rai_link_selection
- S_exclude_first_last_24 = 706 // exclude_first_last_24
+ S_compatibility = 701, // compatibility
+ S_702_147 = 702, // $@147
+ S_compatibility_params = 703, // compatibility_params
+ S_compatibility_param = 704, // compatibility_param
+ S_lenient_option_parsing = 705, // lenient_option_parsing
+ S_ignore_dhcp_server_identifier = 706, // ignore_dhcp_server_identifier
+ S_ignore_rai_link_selection = 707, // ignore_rai_link_selection
+ S_exclude_first_last_24 = 708 // exclude_first_last_24
};
};
@@ -5656,8 +5658,8 @@ switch (yykind)
/// Constants.
enum
{
- yylast_ = 1569, ///< Last index in yytable_.
- yynnts_ = 476, ///< Number of nonterminal symbols.
+ yylast_ = 1581, ///< Last index in yytable_.
+ yynnts_ = 478, ///< Number of nonterminal symbols.
yyfinal_ = 28 ///< Termination state number.
};
@@ -5903,7 +5905,7 @@ switch (yykind)
#line 14 "dhcp4_parser.yy"
} } // isc::dhcp
-#line 5907 "dhcp4_parser.h"
+#line 5909 "dhcp4_parser.h"
diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy
index a12cb4a7e5..1f7fe4273e 100644
--- a/src/bin/dhcp4/dhcp4_parser.yy
+++ b/src/bin/dhcp4/dhcp4_parser.yy
@@ -1603,6 +1603,7 @@ subnet4_param: valid_lifetime
| interface
| id
| client_class
+ | network_client_classes
| require_client_classes
| evaluate_additional_classes
| reservations
@@ -1697,6 +1698,18 @@ client_class: CLIENT_CLASS {
ctx.leave();
};
+// Used by shared-network,subnet, and pool
+network_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();
+};
+
// Deprecated.
require_client_classes: REQUIRE_CLIENT_CLASSES {
ctx.unique("require-client-classes", ctx.loc2pos(@1));
@@ -1801,6 +1814,7 @@ shared_network_param: name
| reservations_in_subnet
| reservations_out_of_pool
| client_class
+ | network_client_classes
| require_client_classes
| evaluate_additional_classes
| valid_lifetime
@@ -2163,6 +2177,7 @@ pool_param: pool_entry
| pool_id
| option_data_list
| client_class
+ | network_client_classes
| require_client_classes
| evaluate_additional_classes
| user_context
diff --git a/src/bin/dhcp4/location.hh b/src/bin/dhcp4/location.hh
index d1d2ae7baf..860fbfa0c9 100644
--- a/src/bin/dhcp4/location.hh
+++ b/src/bin/dhcp4/location.hh
@@ -1,4 +1,3 @@
-// Generated 202411151018
// A Bison parser, made by GNU Bison 3.8.2.
// Locations for Bison parsers in C++
diff --git a/src/bin/dhcp4/tests/classify_unittest.cc b/src/bin/dhcp4/tests/classify_unittest.cc
index 91f27f9159..cd31b1d20e 100644
--- a/src/bin/dhcp4/tests/classify_unittest.cc
+++ b/src/bin/dhcp4/tests/classify_unittest.cc
@@ -315,13 +315,13 @@ const char* CONFIGS[] = {
" \"id\": 1,"
" \"pools\": [ "
" { \"pool\": \"10.0.0.10-10.0.0.49\","
- " \"client-class\": \"server1_and_telephones\" },"
+ " \"client-classes\": [ \"server1_and_telephones\" ] },"
" { \"pool\": \"10.0.0.60-10.0.0.99\","
- " \"client-class\": \"server1_and_computers\" },"
+ " \"client-classes\": [ \"server1_and_computers\" ] },"
" { \"pool\": \"10.0.0.110-10.0.0.149\","
- " \"client-class\": \"server2_and_telephones\" },"
+ " \"client-classes\": [ \"server2_and_telephones\" ] },"
" { \"pool\": \"10.0.0.160-10.0.0.199\","
- " \"client-class\": \"server2_and_computers\" } ]"
+ " \"client-classes\": [ \"server2_and_computers\" ] } ]"
" } ]"
"}",
@@ -2194,9 +2194,6 @@ TEST_F(ClassifyTest, classTaggingAndAlwaysSend) {
query1->setIface("eth1");
query1->setIndex(ETH1_INDEX);
- // Configure DHCP server.
- configure(config, srv);
-
// Process query
Pkt4Ptr response = srv.processDiscover(query1);
@@ -2263,9 +2260,6 @@ TEST_F(ClassifyTest, classTaggingAndNeverSend) {
query1->setIface("eth1");
query1->setIndex(ETH1_INDEX);
- // Configure DHCP server.
- configure(config, srv);
-
// Process query
Pkt4Ptr response = srv.processDiscover(query1);
@@ -2273,4 +2267,119 @@ TEST_F(ClassifyTest, classTaggingAndNeverSend) {
ASSERT_FALSE(response->getOption(DHO_HOST_NAME));
}
+// Verifies that client-classes specified at various
+// network scopes result in proper subnet selection.
+TEST_F(ClassifyTest, networkScopeClientClasses) {
+ IfaceMgrTestConfig test_config(true);
+ IfaceMgr::instance().openSockets4();
+
+ NakedDhcpv4Srv srv(0);
+
+ string config = R"^(
+ {
+ "interfaces-config": {
+ "interfaces": [ "*" ]
+ },
+ "client-classes":[{
+ "name": "in-net",
+ "test": "(substring(option[61].hex,0,1) == 'i')"
+ },{
+ "name": "subnet-1",
+ "test": "(substring(option[61].hex,1,1) == '1')"
+ },{
+ "name": "subnet-2",
+ "test": "(substring(option[61].hex,1,1) == '2')"
+ },{
+ "name": "pool-a",
+ "test": "(substring(option[61].hex,2,1) == 'a')"
+ },{
+ "name": "pool-b",
+ "test": "(substring(option[61].hex,2,1) == 'b')"
+ }],
+ "rebind-timer": 2000,
+ "renew-timer": 1000,
+ "valid-lifetime": 4000,
+ "shared-networks": [{
+ "name": "snet",
+ "interface": "eth0",
+ "client-classes": [ "in-net" ],
+ "subnet4": [{
+ "id": 1,
+ "client-classes": [ "subnet-1" ],
+ "subnet": "192.0.1.0/24",
+ "pools": [{
+ "client-classes": [ "pool-a" ],
+ "pool": "192.0.1.1 - 192.0.1.1"
+ },{
+ "client-classes": [ "pool-b" ],
+ "pool": "192.0.1.4 - 192.0.1.4"
+ }]
+ },{
+ "id": 2,
+ "client-classes": [ "subnet-2" ],
+ "subnet": "192.0.2.0/24",
+ "pools": [{
+ "pool": "192.0.2.1 - 192.0.2.1"
+ }]
+ },{
+ "id": 3,
+ "subnet": "192.0.3.0/24",
+ "pools": [{
+ "pool": "192.0.3.1 - 192.0.3.1"
+ }]
+ }]
+ }]
+ }
+ )^";
+
+ // Configure DHCP server.
+ configure(config, srv);
+
+ // Describes a single scenario.
+ struct Scenario {
+ std::vector<uint8_t> client_id_; // client-id to use
+ uint8_t exp_type_; // expected DHCP response type (if one)
+ std::string exp_address_; // expected value for offered address (if one)
+ };
+
+ // Scenarios to run.
+ std::list<Scenario> scenarios = {
+ { { 'i', '1', 'a' }, DHCPOFFER, "192.0.1.1" },
+ { { 'i', '1', 'b' }, DHCPOFFER, "192.0.1.4" },
+ { { 'i', '1', '-' }, DHCPOFFER, "192.0.3.1" },
+ { { 'i', '2', '-' }, DHCPOFFER, "192.0.2.1" },
+ { { 'i', 'x', '-' }, DHCPOFFER, "192.0.3.1" },
+ { { '-', '1', 'a' }, DHCP_NOTYPE, "" },
+ { { '-', '2', '-' }, DHCP_NOTYPE, "" },
+ { { '-', 'x', '-' }, DHCP_NOTYPE, "" }
+ };
+
+ // Run scenarios.
+ for (const auto& scenario : scenarios) {
+ ClientId id(scenario.client_id_);
+ SCOPED_TRACE(id.toText());
+ Pkt4Ptr query(new Pkt4(DHCPDISCOVER, 1234));
+ query->addOption(OptionPtr(new Option(Option::V4,
+ DHO_DHCP_CLIENT_IDENTIFIER,
+ id.getClientId())));
+ query->setIface("eth0");
+ query->setIndex(ETH0_INDEX);
+
+ // Classify packet
+ srv.classifyPacket(query);
+
+ // Process query
+ Pkt4Ptr response = srv.processDiscover(query);
+ if (scenario.exp_type_ == DHCP_NOTYPE) {
+ EXPECT_FALSE(response);
+ } else {
+ ASSERT_TRUE(response);
+ EXPECT_EQ(static_cast<int>(response->getType()), scenario.exp_type_);
+ if (!scenario.exp_address_.empty()) {
+ EXPECT_EQ(response->getYiaddr(), IOAddress(scenario.exp_address_));
+ }
+ }
+ }
+}
+
} // end of anonymous namespace
diff --git a/src/bin/dhcp4/tests/config_parser_unittest.cc b/src/bin/dhcp4/tests/config_parser_unittest.cc
index 8ebfe37be8..d34afd6c56 100644
--- a/src/bin/dhcp4/tests/config_parser_unittest.cc
+++ b/src/bin/dhcp4/tests/config_parser_unittest.cc
@@ -4787,7 +4787,7 @@ TEST_F(Dhcp4ParserTest, classifySubnets) {
" \"id\": 3,"
" \"pools\": [ { \"pool\": \"192.0.4.101 - 192.0.4.150\" } ],"
" \"subnet\": \"192.0.4.0/24\", "
- " \"client-class\": \"gamma\" "
+ " \"client-classes\": [ \"gamma\" ] "
" },"
" {"
" \"id\": 4,"
@@ -4871,15 +4871,15 @@ TEST_F(Dhcp4ParserTest, classifyPools) {
" \"id\": 1,"
" \"pools\": [ { "
" \"pool\": \"192.0.2.1 - 192.0.2.100\", "
- " \"client-class\": \"alpha\" "
+ " \"client-classes\": [ \"alpha\" ]"
" },"
" {"
" \"pool\": \"192.0.3.101 - 192.0.3.150\", "
- " \"client-class\": \"beta\" "
+ " \"client-classes\": [ \"beta\" ] "
" },"
" {"
" \"pool\": \"192.0.4.101 - 192.0.4.150\", "
- " \"client-class\": \"gamma\" "
+ " \"client-classes\": [ \"gamma\" ] "
" },"
" {"
" \"pool\": \"192.0.5.101 - 192.0.5.150\" "
@@ -6879,95 +6879,6 @@ TEST_F(Dhcp4ParserTest, sharedNetworksInterfacesMixed) {
"or the shared-network itself used eth0");
}
-// This test checks if client-class is derived properly.
-TEST_F(Dhcp4ParserTest, sharedNetworksDeriveClientClass) {
-
- // This config is structured in a way that the first shared network has
- // client-class defined. This should in general be inherited by subnets, but
- // it's also possible to override the values on subnet level.
- string config = "{\n"
- "\"renew-timer\": 1, \n" // global values here
- "\"rebind-timer\": 2, \n"
- "\"valid-lifetime\": 4, \n"
- "\"shared-networks\": [ {\n"
- " \"name\": \"foo\"\n," // shared network values here
- " \"client-class\": \"alpha\",\n"
- " \"subnet4\": [\n"
- " { \n"
- " \"id\": 1,\n"
- " \"subnet\": \"192.0.1.0/24\",\n"
- " \"pools\": [ { \"pool\": \"192.0.1.1-192.0.1.10\" } ]\n"
- " },\n"
- " { \n"
- " \"id\": 2,\n"
- " \"subnet\": \"192.0.2.0/24\",\n"
- " \"pools\": [ { \"pool\": \"192.0.2.1-192.0.2.10\" } ],\n"
- " \"client-class\": \"beta\"\n"
- " }\n"
- " ]\n"
- " },\n"
- "{ // second shared-network starts here\n"
- " \"name\": \"bar\",\n"
- " \"subnet4\": [\n"
- " {\n"
- " \"id\": 3,\n"
- " \"subnet\": \"192.0.3.0/24\",\n"
- " \"pools\": [ { \"pool\": \"192.0.3.1-192.0.3.10\" } ]\n"
- " }\n"
- " ]\n"
- " } ]\n"
- "} \n";
-
- configure(config, CONTROL_RESULT_SUCCESS, "");
-
- // Now verify that the shared network was indeed configured.
- CfgSharedNetworks4Ptr cfg_net = CfgMgr::instance().getStagingCfg()
- ->getCfgSharedNetworks4();
-
- // Two shared networks are expected.
- ASSERT_TRUE(cfg_net);
- const SharedNetwork4Collection* nets = cfg_net->getAll();
- ASSERT_TRUE(nets);
- ASSERT_EQ(2, nets->size());
-
- // Let's check the first one.
- SharedNetwork4Ptr net = nets->at(0);
- ASSERT_TRUE(net);
-
- EXPECT_EQ("alpha", net->getClientClass().get());
-
- // The first shared network has two subnets.
- const Subnet4SimpleCollection* subs = net->getAllSubnets();
- ASSERT_TRUE(subs);
- EXPECT_EQ(2, subs->size());
-
- // For the first subnet, the client-class should be inherited from
- // shared-network level.
- Subnet4Ptr s = checkSubnet(*subs, "192.0.1.0/24", 1, 2, 4);
- ASSERT_TRUE(s);
- EXPECT_EQ("alpha", s->getClientClass().get());
-
- // For the second subnet, the values are overridden on subnet level.
- // The value should not be inherited.
- s = checkSubnet(*subs, "192.0.2.0/24", 1, 2, 4);
- ASSERT_TRUE(s);
- EXPECT_EQ("beta", s->getClientClass().get()); // beta defined on subnet level
-
- // Ok, now check the second shared network. It doesn't have
- // anything defined on shared-network or subnet level, so
- // everything should have default values.
- net = nets->at(1);
- ASSERT_TRUE(net);
-
- subs = net->getAllSubnets();
- ASSERT_TRUE(subs);
- EXPECT_EQ(1, subs->size());
-
- // This subnet should derive its renew-timer from global scope.
- s = checkSubnet(*subs, "192.0.3.0/24", 1, 2, 4);
- EXPECT_TRUE(s->getClientClass().empty());
-}
-
// This test checks multiple host data sources.
TEST_F(Dhcp4ParserTest, hostsDatabases) {
diff --git a/src/bin/dhcp4/tests/get_config_unittest.cc b/src/bin/dhcp4/tests/get_config_unittest.cc
index 3f66ed6cc0..c9dbbe890d 100644
--- a/src/bin/dhcp4/tests/get_config_unittest.cc
+++ b/src/bin/dhcp4/tests/get_config_unittest.cc
@@ -1359,7 +1359,7 @@ const char* EXTRACTED_CONFIGS[] = {
" \"subnet\": \"192.0.3.0/24\"\n"
" },\n"
" {\n"
-" \"client-class\": \"gamma\",\n"
+" \"client-classes\": [ \"gamma\" ],\n"
" \"id\": 3,\n"
" \"pools\": [\n"
" {\n"
@@ -1393,15 +1393,15 @@ const char* EXTRACTED_CONFIGS[] = {
" \"id\": 1,\n"
" \"pools\": [\n"
" {\n"
-" \"client-class\": \"alpha\",\n"
+" \"client-classes\": [ \"alpha\" ],\n"
" \"pool\": \"192.0.2.1 - 192.0.2.100\"\n"
" },\n"
" {\n"
-" \"client-class\": \"beta\",\n"
+" \"client-classes\": [ \"beta\" ],\n"
" \"pool\": \"192.0.3.101 - 192.0.3.150\"\n"
" },\n"
" {\n"
-" \"client-class\": \"gamma\",\n"
+" \"client-classes\": [ \"gamma\" ],\n"
" \"pool\": \"192.0.4.101 - 192.0.4.150\"\n"
" },\n"
" {\n"
@@ -8318,7 +8318,7 @@ const char* UNPARSED_CONFIGS[] = {
" \"4o6-subnet\": \"\",\n"
" \"allocator\": \"iterative\",\n"
" \"calculate-tee-times\": false,\n"
-" \"client-class\": \"alpha\",\n"
+" \"client-classes\": [ \"alpha\" ],\n"
" \"id\": 1,\n"
" \"max-valid-lifetime\": 4000,\n"
" \"min-valid-lifetime\": 4000,\n"
@@ -8347,7 +8347,7 @@ const char* UNPARSED_CONFIGS[] = {
" \"4o6-subnet\": \"\",\n"
" \"allocator\": \"iterative\",\n"
" \"calculate-tee-times\": false,\n"
-" \"client-class\": \"beta\",\n"
+" \"client-classes\": [ \"beta\" ],\n"
" \"id\": 2,\n"
" \"max-valid-lifetime\": 4000,\n"
" \"min-valid-lifetime\": 4000,\n"
@@ -8376,7 +8376,7 @@ const char* UNPARSED_CONFIGS[] = {
" \"4o6-subnet\": \"\",\n"
" \"allocator\": \"iterative\",\n"
" \"calculate-tee-times\": false,\n"
-" \"client-class\": \"gamma\",\n"
+" \"client-classes\": [ \"gamma\" ],\n"
" \"id\": 3,\n"
" \"max-valid-lifetime\": 4000,\n"
" \"min-valid-lifetime\": 4000,\n"
@@ -8525,17 +8525,17 @@ const char* UNPARSED_CONFIGS[] = {
" \"option-data\": [ ],\n"
" \"pools\": [\n"
" {\n"
-" \"client-class\": \"alpha\",\n"
+" \"client-classes\": [ \"alpha\" ],\n"
" \"option-data\": [ ],\n"
" \"pool\": \"192.0.2.1-192.0.2.100\"\n"
" },\n"
" {\n"
-" \"client-class\": \"beta\",\n"
+" \"client-classes\": [ \"beta\" ],\n"
" \"option-data\": [ ],\n"
" \"pool\": \"192.0.3.101-192.0.3.150\"\n"
" },\n"
" {\n"
-" \"client-class\": \"gamma\",\n"
+" \"client-classes\": [ \"gamma\" ],\n"
" \"option-data\": [ ],\n"
" \"pool\": \"192.0.4.101-192.0.4.150\"\n"
" },\n"
diff --git a/src/bin/dhcp6/tests/config_parser_unittest.cc b/src/bin/dhcp6/tests/config_parser_unittest.cc
index 51ba912d5d..efe77a56de 100644
--- a/src/bin/dhcp6/tests/config_parser_unittest.cc
+++ b/src/bin/dhcp6/tests/config_parser_unittest.cc
@@ -7577,6 +7577,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworksInterfacesMixed) {
"or the shared-network itself used eth0");
}
+#if 0
// This test checks if client-class is derived properly.
TEST_F(Dhcp6ParserTest, sharedNetworksDeriveClientClass) {
@@ -7666,6 +7667,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDeriveClientClass) {
s = checkSubnet(*subs, "2001:db3::/48", 1, 2, 3, 4);
EXPECT_TRUE(s->getClientClass().empty());
}
+#endif
// Tests if rapid-commit is derived properly.
TEST_F(Dhcp6ParserTest, sharedNetworksRapidCommit) {