From: Thomas Markwalder Date: Tue, 9 Apr 2019 15:11:09 +0000 (-0400) Subject: [#365,!296] Regenned parsers, added ChangeLog and doc X-Git-Tag: Kea-1.6.0-beta~189 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9c8ca39bb95877c9be15e41b37c5c2aad7bf1723;p=thirdparty%2Fkea.git [#365,!296] Regenned parsers, added ChangeLog and doc ChangeLog - added proposed entry doc/guide/dhcp6-srv.xml added section describing calculate-tee-times, t1-percent, t2-percent src/bin/dhcp6/dhcp6_lexer.cc src/bin/dhcp6/dhcp6_parser.cc src/bin/dhcp6/dhcp6_parser.h src/bin/dhcp6/dhcp6_parser.yy Added missing parameter declares and regenned parsers src/bin/dhcp6/tests/config_parser_unittest.cc Updated expected timer values src/bin/dhcp6/tests/get_config_unittest.cc Updated generated tests /src/bin/dhcp6/tests/simple_parser6_unittest.cc TEST_F(SimpleParser6Test, globalDefaults6) - updated test --- diff --git a/ChangeLog b/ChangeLog index a14db87541..4b063567bf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +1566. [func] tmark + kea-dhcp6 can now be configured to calculate values to + send to clients for for T1 and T2 times. Prior to this + it was only possibly to specify explicit values. + (Gitlab #365,!296, git TBD) + 1565. [func] marcin MySQL Config Backend returns server tags associated with the configuration elements. diff --git a/doc/guide/dhcp6-srv.xml b/doc/guide/dhcp6-srv.xml index 5a979a6fc5..fdce353e02 100644 --- a/doc/guide/dhcp6-srv.xml +++ b/doc/guide/dhcp6-srv.xml @@ -2044,6 +2044,72 @@ should include options from the new option space: +
+ Controlling the Values Sent for T1 and T2 Times + According to RFC 3315, + servers should send values for T1 and T2 that are 50% and 80% + of the lease life time, repsectively. By default, kea-dhcp6 will + send zero for both values. It can be configured to send values that + are specified explicitly or that are calculated as percentages of + the valid lease time. The server's behavior is governed by combination of + configuration parameters, two of which have already been mentioned. + + To send specific, fixed values use the following two parameters: + + + renew-timer - specifies the value of T1 in + seconds. + + + + rebind-timer - specifies the value of T2 in + seconds. + + + + The server will only send T2 if it is less than valid lease time. T1 will + only be sent if a: T2 is being sent and T1 is less than T2 or b: T2 is not being + sent and T1 is less than the valid lease time. + + + Calculating the values is controlled by the following three parameters. + + + + calculate-tee-times - when true, T1 and T2 will be + calculated as percentages of the valid lease time. It defaults to false. + + + + + t1-percent - the percentage of the valid lease time to + use for T1. It is expressed as a real number between 0.0 and 1.0 and must + be less than t2-percent. The default value is 0.5 per RFC 3315. + + + + + t2-percent - the percentage of the valid lease time to + use for T2. It is expressed as a real number between 0.0 and 1.0 and must + be greater than t1-percent. The default value is 0.8 per RFC 3315. + + + + + + In the event that both explicit values are specified and + calculate-tee-times is true, the server will use the explicit + values. If you plan on having a mixture where some subnets or + share-networks will use explicit values and some will use + calculated values you must not define the explicit values at any + level higher than where they will be used. Inheriting them from + too high of a scope, such as global, will cause them to have + values at every level underneath (shared-networks and subnets), + effectively disabling calculated values. + +
+
IPv6 Subnet Selection diff --git a/src/bin/dhcp6/dhcp6_lexer.cc b/src/bin/dhcp6/dhcp6_lexer.cc index f247a88cdb..761354d852 100644 --- a/src/bin/dhcp6/dhcp6_lexer.cc +++ b/src/bin/dhcp6/dhcp6_lexer.cc @@ -691,8 +691,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 183 -#define YY_END_OF_BUFFER 184 +#define YY_NUM_RULES 186 +#define YY_END_OF_BUFFER 187 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -700,174 +700,178 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[1505] = +static const flex_int16_t yy_accept[1544] = { 0, - 176, 176, 0, 0, 0, 0, 0, 0, 0, 0, - 184, 182, 10, 11, 182, 1, 176, 173, 176, 176, - 182, 175, 174, 182, 182, 182, 182, 182, 169, 170, - 182, 182, 182, 171, 172, 5, 5, 5, 182, 182, - 182, 10, 11, 0, 0, 165, 0, 0, 0, 0, + 179, 179, 0, 0, 0, 0, 0, 0, 0, 0, + 187, 185, 10, 11, 185, 1, 179, 176, 179, 179, + 185, 178, 177, 185, 185, 185, 185, 185, 172, 173, + 185, 185, 185, 174, 175, 5, 5, 5, 185, 185, + 185, 10, 11, 0, 0, 168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 176, - 176, 0, 175, 176, 3, 2, 6, 0, 176, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1, 179, + 179, 0, 178, 179, 3, 2, 6, 0, 179, 0, 0, 0, 0, 0, 0, 4, 0, 0, 9, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, - 143, 0, 0, 144, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2, 0, 0, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 146, 0, 0, 147, 0, 0, 0, - 0, 0, 167, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 181, 179, 0, 178, 177, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 184, 182, 0, 181, - 0, 0, 142, 0, 0, 28, 0, 27, 0, 0, - 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 180, 0, 0, 0, 0, 0, 0, 0, 145, 0, + 0, 28, 0, 27, 0, 0, 105, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 180, 177, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 0, 0, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 183, 180, 0, 0, 0, 0, 0, 0, 0, + 0, 29, 0, 0, 31, 0, 0, 0, 0, 0, 0, 106, 0, 0, 0, 0, 0, 0, 0, 83, - 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, 0, 59, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 122, 147, 51, 0, 56, 0, - 0, 0, 0, 0, 0, 162, 37, 0, 34, 0, - 33, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, - 0, 0, 0, 0, 0, 0, 146, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 125, 150, 51, 0, + 56, 0, 0, 0, 0, 0, 0, 165, 37, 0, + 34, 0, 33, 0, 0, 0, 138, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 32, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 85, 0, 0, 0, 0, + 117, 0, 0, 0, 0, 0, 0, 0, 0, 149, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, 0, 136, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 85, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, + 0, 0, 0, 7, 35, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 131, 0, 0, 0, 0, 0, 0, 7, 35, + 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 119, 0, 0, 0, + + 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, + 0, 0, 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 113, 0, 0, + 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 0, 0, 0, 0, 0, 0, 113, 0, 0, - 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, + 0, 143, 114, 0, 0, 0, 0, 118, 52, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 95, 0, 0, 0, 0, 0, 0, 0, 0, 110, - 0, 0, 0, 0, 94, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 140, 111, 0, 0, 0, 0, 115, 52, + 132, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 57, 86, 0, 0, 0, 129, + 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 78, 0, 0, 0, 0, 0, 0, 163, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 0, - 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 57, 86, 0, 0, 0, 126, 0, 0, - 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, - + 0, 164, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, + + 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 16, 0, 0, 144, + 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 135, 0, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, + 0, 0, 0, 0, 0, 131, 148, 0, 40, 0, + 140, 0, 0, 0, 0, 0, 0, 0, 0, 20, + 0, 0, 0, 80, 0, 0, 0, 0, 142, 54, + 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, + 0, 0, 111, 112, 0, 0, 0, 0, 0, 0, + 0, 0, 84, 0, 0, 0, 0, 0, 0, 64, + 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 16, 0, 0, 141, 14, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 107, 0, 0, 0, 0, + 0, 81, 103, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, + 0, 17, 0, 15, 0, 162, 161, 0, 69, 0, + 0, 0, 0, 0, 30, 0, 124, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, - 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 128, 145, 0, - 40, 0, 137, 0, 0, 0, 0, 0, 0, 0, - 0, 20, 0, 0, 0, 80, 0, 0, 0, 0, - 139, 54, 0, 88, 0, 0, 0, 0, 0, 0, + 97, 0, 128, 43, 0, 61, 0, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 99, 75, 0, + 0, 136, 0, 0, 0, 0, 0, 127, 0, 0, + 0, 0, 0, 93, 0, 167, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 0, 0, + 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 84, 0, 0, 0, 0, 0, 64, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, - 0, 0, 0, 0, 0, 0, 0, 134, 0, 0, + 0, 0, 68, 0, 0, 0, 0, 122, 47, 0, + 0, 0, 70, 160, 38, 0, 0, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 45, 0, 0, + 44, 18, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 107, 0, 0, 0, 0, 0, - 81, 103, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, - 17, 0, 15, 0, 159, 158, 0, 69, 0, 0, - 0, 0, 0, 30, 121, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, - 125, 43, 0, 61, 0, 0, 0, 0, 19, 0, - - 0, 0, 0, 0, 0, 99, 75, 0, 0, 133, - 0, 0, 0, 0, 0, 124, 0, 0, 0, 0, - 0, 93, 0, 164, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 91, 0, 0, 148, 0, 0, + 0, 73, 0, 0, 0, 0, 62, 0, 0, 89, + 0, 0, 0, 0, 0, 141, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 67, 0, 0, 0, 79, 0, 36, + 0, 48, 0, 0, 0, 0, 0, 0, 24, 0, + + 0, 0, 0, 0, 0, 157, 0, 126, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 42, 0, 0, 68, - 0, 0, 0, 119, 47, 0, 0, 0, 70, 157, - 38, 0, 0, 12, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 45, 0, 0, 44, 18, 0, 0, - - 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, - 0, 62, 0, 0, 89, 0, 0, 0, 0, 0, - 138, 0, 0, 0, 46, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, - 0, 0, 79, 0, 36, 48, 0, 0, 0, 0, - 0, 0, 24, 0, 0, 0, 0, 0, 0, 154, - 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 25, 39, 0, 0, 0, 0, 0, - - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 0, 0, 0, 0, 0, 0, 153, 0, 0, - 21, 72, 0, 0, 0, 0, 0, 65, 0, 0, - 0, 90, 0, 0, 152, 0, 0, 71, 0, 0, - 66, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 25, 39, 0, 0, 0, 0, 0, 13, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 163, 0, + 0, 0, 0, 0, 0, 156, 0, 0, 21, 72, + 0, 0, 0, 0, 0, 65, 0, 110, 0, 0, + 90, 0, 0, 155, 0, 0, 71, 0, 0, 66, + 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, - 0, 0, 0, 22, 0, 108, 120, 0, 0, 0, - 0, 0, 0, 150, 155, 76, 0, 0, 0, 0, - 149, 0, 0, 26, 0, 0, 0, 0, 0, 109, - 0, 0, 151, 0 + 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, + 0, 0, 22, 0, 108, 123, 0, 0, 0, 0, + 0, 0, 153, 158, 76, 0, 0, 0, 0, 152, + 0, 0, 26, 0, 0, 0, 0, 0, 109, 0, + 0, 154, 0 } ; static const YY_CHAR yy_ec[256] = @@ -876,16 +880,16 @@ static const YY_CHAR yy_ec[256] = 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 6, 7, 5, 5, 5, 5, 5, - 5, 8, 9, 10, 11, 12, 13, 14, 14, 14, - 14, 15, 14, 16, 14, 14, 14, 17, 5, 18, - 5, 19, 20, 5, 21, 22, 23, 24, 25, 26, - 5, 27, 5, 28, 5, 29, 5, 30, 31, 32, - 5, 33, 34, 35, 36, 37, 38, 5, 39, 5, - 40, 41, 42, 5, 43, 5, 44, 45, 46, 47, - - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 5, 71, 5, 5, 5, 5, 5, + 5, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 14, 17, 14, 18, 14, 14, 14, 19, 5, 20, + 5, 21, 22, 5, 23, 24, 25, 26, 27, 28, + 5, 29, 5, 30, 5, 31, 5, 32, 33, 34, + 5, 35, 36, 37, 38, 39, 40, 5, 41, 5, + 42, 43, 44, 5, 45, 5, 46, 47, 48, 49, + + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 5, 73, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, @@ -902,595 +906,612 @@ static const YY_CHAR yy_ec[256] = 5, 5, 5, 5, 5 } ; -static const YY_CHAR yy_meta[72] = +static const YY_CHAR yy_meta[74] = { 0, 1, 1, 2, 3, 3, 4, 3, 3, 3, 3, - 3, 3, 3, 5, 5, 5, 3, 3, 3, 3, - 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 5, 5, 5, 5, 5, 5, 3, + 3, 3, 3, 5, 5, 5, 5, 5, 3, 3, + 3, 3, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 5, 5, 5, 5, 5, + 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3 + 3, 3, 3 } ; -static const flex_int16_t yy_base[1517] = +static const flex_int16_t yy_base[1556] = { 0, - 0, 70, 19, 29, 41, 49, 52, 58, 87, 95, - 1868, 1869, 32, 1864, 141, 0, 201, 1869, 206, 88, - 11, 213, 1869, 1846, 114, 25, 2, 6, 1869, 1869, - 73, 11, 17, 1869, 1869, 1869, 104, 1852, 1807, 0, - 1844, 107, 1859, 217, 241, 1869, 185, 1803, 1809, 1829, - 93, 58, 190, 91, 211, 200, 14, 267, 213, 175, - 269, 64, 231, 184, 187, 75, 1810, 274, 215, 290, - 278, 297, 1793, 207, 302, 316, 316, 1812, 0, 355, - 360, 372, 377, 380, 1869, 0, 1869, 295, 383, 227, - 296, 283, 327, 361, 293, 1869, 1809, 1848, 1869, 237, - - 1869, 394, 363, 1796, 1806, 1845, 375, 321, 403, 1800, - 369, 378, 376, 382, 388, 1843, 0, 445, 407, 1787, - 1795, 364, 1791, 1780, 1781, 372, 1797, 1780, 1789, 387, - 308, 378, 1783, 1781, 391, 1770, 1826, 416, 1773, 1824, - 1766, 1789, 1786, 1786, 1780, 214, 1773, 1766, 1771, 1765, - 382, 1776, 1769, 1760, 1759, 1773, 362, 1809, 1758, 414, - 1770, 1773, 1757, 441, 1758, 417, 1770, 1767, 1768, 1766, - 422, 1748, 1753, 1749, 1741, 1758, 1750, 0, 422, 450, - 440, 446, 454, 470, 1749, 1869, 0, 476, 1740, 1743, - 1869, 465, 447, 1869, 1795, 1750, 477, 1793, 481, 1792, - - 477, 1791, 1869, 521, 1790, 489, 1751, 1746, 1745, 1736, - 491, 1785, 1779, 1745, 1724, 1732, 1738, 1726, 1740, 1736, - 1737, 1737, 1732, 1724, 1726, 1710, 1714, 1727, 1729, 1726, - 1718, 1708, 1711, 1725, 1869, 1711, 1719, 1722, 1703, 1702, - 1752, 1701, 1711, 1749, 452, 1710, 1698, 1709, 1745, 490, - 1749, 1686, 1701, 9, 1691, 1707, 1688, 1690, 1686, 1692, - 1683, 1682, 1695, 1688, 1690, 1694, 1693, 1687, 80, 1694, - 1689, 1681, 1671, 1686, 1681, 1685, 459, 1683, 1669, 1675, - 1682, 1670, 230, 1663, 1677, 1676, 1679, 1661, 1669, 491, - 1869, 1869, 501, 1869, 1869, 1656, 0, 376, 1658, 497, - - 503, 1712, 1869, 1665, 489, 1869, 1710, 1869, 1704, 557, - 1869, 484, 1646, 1656, 1706, 1663, 1658, 1661, 1656, 304, - 1869, 1658, 549, 1656, 1653, 1654, 303, 1658, 1696, 1646, - 1641, 1638, 1634, 1636, 1685, 1644, 1633, 1649, 1681, 1629, - 550, 1642, 1642, 1625, 1626, 1639, 1626, 1636, 1631, 1638, - 1633, 1618, 470, 1627, 1630, 1625, 1621, 1669, 515, 524, - 1869, 1663, 1615, 1614, 1607, 1609, 1613, 1602, 1609, 1614, - 513, 1659, 1614, 510, 1611, 1615, 1613, 1602, 1602, 1614, - 502, 1589, 1590, 1611, 536, 1593, 1590, 1604, 1607, 1602, - 1588, 1600, 1599, 1598, 1597, 532, 1638, 1637, 1636, 1580, - - 581, 1593, 1869, 1869, 1592, 0, 556, 1580, 1631, 1630, - 1588, 1628, 1869, 1576, 1626, 1869, 563, 609, 557, 1625, - 1567, 1869, 1572, 1578, 1581, 1564, 1579, 1566, 1565, 1869, - 1575, 1566, 1563, 1575, 549, 1560, 1562, 1869, 1568, 1553, - 1555, 1566, 1564, 1559, 588, 1566, 1554, 1547, 1596, 1869, - 1545, 1561, 1593, 1597, 1555, 1549, 1551, 1552, 1554, 1586, - 1539, 1534, 1533, 1535, 1528, 1543, 1521, 1528, 1533, 1581, - 1869, 1528, 1524, 1578, 1531, 1525, 1532, 1517, 1527, 1530, - 1519, 1518, 1513, 1869, 1568, 1869, 1512, 1511, 1504, 1521, - 1558, 1505, 1510, 1519, 1513, 1507, 1516, 602, 1551, 1515, - - 1498, 1498, 1493, 1489, 1495, 1500, 1493, 1501, 1505, 1488, - 1544, 1486, 1500, 1489, 1869, 1869, 1869, 1489, 1869, 1499, - 1533, 1495, 0, 1536, 1486, 1869, 1869, 1483, 1869, 1489, - 1869, 569, 565, 604, 1869, 1527, 1474, 1525, 1472, 1471, - 1470, 1477, 1470, 1478, 1481, 1480, 1464, 1479, 1461, 1508, - 1475, 1511, 1457, 1459, 1471, 1471, 1470, 1869, 1455, 1452, - 1508, 1465, 1457, 1463, 1454, 1462, 1869, 1447, 1458, 1462, - 1444, 1458, 530, 1440, 1434, 1439, 1436, 1451, 1452, 1449, - 1490, 1447, 1869, 1433, 1435, 1869, 1443, 1480, 1479, 605, - 1442, 1425, 1426, 1431, 1422, 1869, 1436, 1422, 630, 1414, - - 1435, 1432, 1424, 1467, 1421, 1428, 1464, 1869, 1412, 1410, - 1424, 1408, 1422, 1425, 1457, 1456, 1455, 1454, 1401, 1452, - 1451, 1869, 622, 1413, 1413, 1411, 1400, 1402, 1869, 1869, - 1445, 1393, 1448, 579, 591, 1391, 1406, 1445, 597, 1439, - 1401, 1437, 1436, 1390, 1384, 1379, 1432, 1394, 1384, 1392, - 1428, 1391, 1373, 1381, 1383, 1387, 1422, 1426, 1383, 1382, - 1869, 1383, 1376, 1365, 1378, 1381, 1376, 1371, 1376, 1373, - 1372, 1368, 1374, 1369, 1410, 1409, 1353, 1349, 582, 1406, - 1869, 1405, 1354, 1346, 1397, 1360, 1347, 1869, 1347, 1356, - 1355, 1355, 1339, 1394, 1337, 1350, 1869, 1342, 1334, 1343, - - 1336, 1347, 1324, 1328, 1379, 1343, 1325, 1323, 1334, 1374, - 1373, 1372, 1319, 1335, 593, 1334, 607, 1311, 1321, 604, - 1869, 1371, 1317, 1327, 1327, 1316, 1320, 1327, 1364, 1869, - 17, 587, 11, 69, 1869, 68, 202, 236, 296, 375, - 389, 470, 497, 549, 569, 570, 600, 588, 587, 601, - 656, 604, 620, 603, 657, 614, 1869, 625, 625, 618, - 629, 627, 670, 614, 617, 632, 634, 621, 678, 637, - 623, 626, 1869, 1869, 642, 641, 646, 634, 1869, 1869, - 648, 635, 633, 651, 638, 638, 687, 639, 695, 696, - 1869, 643, 657, 657, 700, 650, 652, 646, 704, 659, - - 649, 650, 646, 656, 660, 671, 655, 673, 668, 670, - 663, 665, 666, 678, 668, 683, 722, 681, 686, 663, - 1869, 688, 678, 723, 672, 687, 688, 1869, 707, 715, - 684, 698, 686, 681, 682, 694, 701, 690, 691, 687, - 705, 697, 692, 743, 749, 708, 699, 1869, 711, 696, - 712, 702, 714, 709, 754, 723, 707, 708, 1869, 724, - 727, 710, 712, 768, 713, 1869, 730, 733, 713, 732, - 770, 730, 726, 721, 739, 738, 724, 739, 731, 727, - 745, 730, 1869, 1869, 738, 783, 738, 1869, 746, 741, - 792, 1869, 743, 748, 790, 744, 745, 757, 751, 755, - - 753, 751, 762, 805, 751, 756, 808, 809, 755, 767, - 1869, 755, 763, 761, 766, 778, 762, 776, 777, 778, - 794, 799, 781, 769, 769, 789, 788, 779, 768, 785, - 792, 833, 777, 835, 784, 788, 1869, 833, 784, 802, - 799, 837, 788, 806, 807, 793, 801, 810, 792, 807, - 814, 854, 855, 1869, 810, 857, 858, 811, 821, 823, - 807, 808, 815, 824, 867, 816, 815, 832, 871, 823, - 827, 825, 823, 876, 877, 829, 879, 875, 835, 1869, - 840, 833, 824, 843, 837, 832, 842, 839, 844, 840, - 852, 1869, 836, 838, 1869, 1869, 838, 896, 837, 856, - - 857, 855, 840, 861, 843, 848, 855, 888, 879, 909, - 854, 856, 873, 868, 872, 915, 865, 869, 1869, 866, - 1869, 880, 878, 881, 865, 866, 924, 879, 884, 871, - 882, 874, 881, 877, 895, 896, 897, 1869, 1869, 896, - 1869, 898, 1869, 883, 884, 903, 893, 943, 898, 940, - 906, 1869, 898, 890, 949, 1869, 950, 899, 906, 948, - 1869, 1869, 908, 1869, 899, 899, 902, 916, 921, 904, - 915, 962, 921, 922, 923, 961, 919, 968, 923, 970, - 1869, 919, 972, 973, 915, 975, 936, 920, 932, 922, - 952, 981, 1869, 982, 931, 946, 980, 934, 1869, 930, - - 946, 934, 952, 940, 940, 993, 952, 1869, 954, 953, - 955, 948, 957, 958, 955, 945, 948, 948, 1005, 954, - 1007, 1009, 954, 1011, 1869, 949, 964, 957, 1015, 970, - 1869, 1869, 967, 977, 962, 979, 965, 1025, 1026, 972, - 982, 1029, 988, 1869, 980, 980, 982, 984, 1035, 980, - 1869, 981, 1869, 983, 1869, 1869, 997, 1869, 991, 1041, - 992, 1043, 1025, 1869, 1869, 989, 997, 991, 988, 991, - 994, 994, 990, 996, 1054, 1004, 1869, 1000, 1057, 1012, - 1003, 1018, 1018, 1021, 1021, 1018, 1060, 1024, 1869, 1017, - 1869, 1869, 1027, 1869, 1028, 1029, 1026, 1068, 1869, 1019, - - 1019, 1025, 1024, 1036, 1036, 1869, 1869, 1075, 1024, 1869, - 1041, 1026, 1026, 1028, 1034, 1869, 1087, 1031, 1041, 1090, - 1053, 1869, 1050, 1869, 1069, 1094, 1095, 1054, 1059, 1041, - 1099, 1100, 1101, 1056, 1869, 1046, 1104, 1869, 1044, 1101, - 1066, 1062, 1104, 1054, 1059, 1057, 1114, 1072, 1116, 1117, - 1080, 1069, 1064, 1080, 1123, 1067, 1084, 1069, 1084, 1068, - 1124, 1125, 1126, 1075, 1128, 1093, 1869, 1093, 1080, 1869, - 1091, 1138, 1110, 1869, 1869, 1084, 1095, 1142, 1869, 1869, - 1869, 1091, 1089, 1869, 1145, 1093, 1142, 1087, 1092, 1151, - 1101, 1111, 1112, 1869, 1155, 1110, 1869, 1869, 1101, 1116, - - 1104, 1119, 1869, 1156, 1124, 1117, 1118, 1127, 1109, 1116, - 1118, 1171, 1132, 1131, 1123, 1175, 1126, 1869, 1177, 1178, - 1122, 1869, 1129, 1129, 1869, 1133, 1128, 1127, 1185, 1140, - 1869, 1182, 1135, 1132, 1869, 1146, 1149, 1192, 1147, 1194, - 1137, 1139, 1147, 1137, 1153, 1154, 1148, 1164, 1869, 1154, - 1204, 1165, 1869, 1201, 1869, 1869, 1202, 1203, 1160, 1168, - 1159, 1166, 1869, 1163, 1168, 1166, 1216, 1217, 1162, 1869, - 1177, 1869, 1167, 1179, 1180, 1223, 1167, 1175, 1169, 1177, - 1190, 1869, 1167, 1190, 1174, 1179, 1233, 1183, 1195, 1186, - 1195, 1197, 1201, 1869, 1869, 1240, 1185, 1201, 1243, 1244, - - 1869, 1240, 1204, 1201, 1206, 1193, 1250, 1189, 1206, 1211, - 1869, 1254, 1213, 1214, 1257, 1216, 1219, 1869, 1260, 1223, - 1869, 1869, 1205, 1263, 1212, 1265, 1210, 1869, 1227, 1218, - 1214, 1869, 1214, 1216, 1869, 1221, 1231, 1869, 1217, 1229, - 1869, 1225, 1869, 1235, 1229, 1237, 1234, 1225, 1277, 1226, - 1234, 1243, 1236, 1231, 1232, 1247, 1290, 1239, 1246, 1233, - 1248, 1253, 1296, 1255, 1298, 1299, 1244, 1869, 1260, 1251, - 1265, 1261, 1254, 1869, 1306, 1869, 1869, 1307, 1308, 1265, - 1264, 1265, 1255, 1869, 1869, 1869, 1313, 1257, 1273, 1316, - 1869, 1312, 1263, 1869, 1262, 1264, 1275, 1322, 1273, 1869, - - 1282, 1325, 1869, 1869, 1331, 1336, 1341, 1346, 1351, 1356, - 1361, 1364, 1338, 1343, 1345, 1358 + 0, 72, 21, 31, 43, 51, 54, 60, 91, 99, + 1944, 1945, 34, 1940, 145, 0, 207, 1945, 214, 221, + 13, 228, 1945, 1920, 118, 25, 2, 6, 1945, 1945, + 73, 11, 17, 1945, 1945, 1945, 104, 1928, 1881, 0, + 1918, 108, 1935, 24, 256, 1945, 67, 1877, 1883, 1903, + 84, 75, 189, 88, 226, 91, 89, 284, 196, 206, + 219, 191, 210, 197, 60, 242, 1884, 278, 230, 298, + 275, 305, 1867, 212, 306, 345, 314, 1886, 0, 367, + 374, 389, 404, 396, 1945, 0, 1945, 411, 418, 314, + 322, 292, 345, 399, 331, 1945, 1883, 1924, 1945, 331, + + 1945, 431, 398, 1870, 1880, 1921, 408, 10, 327, 1874, + 401, 408, 405, 411, 248, 1919, 0, 484, 407, 1861, + 1866, 1868, 392, 1864, 1853, 1854, 401, 1870, 1853, 1862, + 411, 314, 411, 1856, 1854, 235, 1843, 1901, 403, 1846, + 1899, 1839, 1862, 1859, 1859, 1853, 404, 1846, 1839, 1844, + 1838, 416, 1849, 1842, 1833, 1832, 1846, 399, 1884, 1831, + 421, 1843, 1846, 1830, 480, 1831, 454, 1843, 1840, 1841, + 1839, 1874, 1873, 426, 1819, 1824, 1820, 1812, 1829, 1821, + 0, 431, 448, 443, 450, 449, 465, 1820, 1945, 0, + 497, 1811, 1814, 1945, 452, 486, 1945, 1868, 1821, 496, + + 1866, 497, 1865, 490, 1864, 1945, 536, 1863, 502, 1822, + 1819, 1816, 1815, 1806, 506, 1857, 1851, 1815, 1794, 1802, + 1808, 1796, 1810, 1806, 1807, 1807, 1802, 1794, 1796, 1780, + 1784, 1797, 1799, 1796, 1788, 1778, 1781, 1795, 1945, 1781, + 1789, 1792, 1773, 1772, 1824, 1771, 1781, 1821, 508, 1780, + 1768, 1779, 1817, 528, 1821, 1756, 1771, 518, 1761, 1777, + 1758, 1760, 1756, 1762, 1753, 1752, 1765, 1758, 1760, 1764, + 1763, 1757, 509, 1764, 1759, 1751, 1741, 1756, 1751, 1755, + 513, 1753, 1739, 1745, 1752, 1740, 1737, 1736, 562, 1731, + 1745, 1744, 1747, 1729, 1737, 531, 1945, 1945, 547, 1945, + + 1945, 1724, 0, 535, 1726, 572, 550, 1782, 1945, 1733, + 553, 1945, 1780, 1945, 1774, 603, 1945, 552, 1714, 1717, + 1723, 1775, 1730, 1725, 1728, 1723, 80, 1945, 1725, 585, + 1723, 1720, 1721, 584, 1725, 1765, 1713, 1708, 1705, 1701, + 1703, 1754, 1711, 1700, 1716, 1750, 1696, 596, 1709, 1709, + 1692, 1693, 1706, 1693, 1703, 1698, 1705, 1700, 1685, 441, + 1694, 1697, 1692, 1688, 1738, 326, 569, 1945, 1732, 1682, + 1681, 1674, 1676, 1680, 1669, 1676, 1681, 530, 1728, 1681, + 549, 1678, 1682, 1680, 1669, 1669, 1681, 547, 1656, 1657, + 1678, 558, 1660, 1657, 1671, 1674, 1669, 1655, 1667, 1666, + + 1665, 1664, 1663, 1662, 555, 1705, 1704, 1703, 1645, 627, + 1658, 1945, 1945, 1657, 0, 573, 1645, 1698, 1697, 1653, + 1695, 1945, 1641, 1693, 1945, 581, 647, 603, 1692, 1640, + 1631, 1945, 1636, 1642, 1645, 1628, 1643, 1630, 1629, 1945, + 1639, 1630, 1627, 1639, 574, 1624, 1626, 1945, 1632, 1617, + 1619, 1630, 1628, 1623, 635, 1630, 1618, 1611, 1662, 1945, + 1609, 1625, 1659, 1663, 1619, 1613, 1615, 1616, 1618, 1652, + 1603, 1598, 1597, 1599, 1592, 1607, 1585, 1592, 1597, 1647, + 1945, 1592, 1588, 1644, 1595, 1589, 1596, 1581, 1591, 1594, + 1583, 1582, 1577, 1945, 1634, 1945, 1576, 1575, 1568, 1585, + + 1624, 1569, 1574, 1583, 1577, 1571, 1580, 637, 1617, 1579, + 1562, 1562, 1557, 1553, 1559, 1564, 1557, 1565, 1569, 1552, + 1610, 1550, 1551, 1550, 1562, 1551, 1945, 1945, 1945, 1551, + 1945, 1561, 1597, 1557, 0, 1600, 1548, 1945, 1945, 1545, + 1945, 1551, 1945, 623, 622, 670, 1945, 1556, 1590, 1535, + 1588, 1533, 1532, 1531, 1538, 1531, 1539, 1542, 1541, 1525, + 1540, 1522, 1569, 1536, 1574, 1518, 1520, 1532, 1532, 1531, + 1945, 1516, 1513, 1571, 1526, 1518, 1524, 1515, 1523, 1945, + 1508, 1519, 1523, 1505, 1519, 576, 1501, 1495, 1500, 1497, + 1512, 1513, 1510, 1553, 1508, 1945, 1494, 1496, 1945, 1504, + + 1543, 1542, 16, 1503, 1486, 1487, 1492, 1483, 1945, 1497, + 1483, 671, 1475, 1496, 1493, 1485, 1530, 1482, 1489, 1527, + 1945, 1473, 1471, 1485, 1469, 1483, 1486, 1520, 1519, 1518, + 1517, 1462, 1515, 1514, 1945, 629, 1476, 1475, 1472, 1472, + 1470, 1459, 1461, 1945, 1945, 1506, 1452, 1509, 621, 618, + 1450, 1448, 1464, 1505, 639, 1499, 1459, 1497, 1496, 1448, + 1442, 1437, 1492, 1452, 1442, 1450, 1488, 1449, 1431, 1439, + 1441, 1445, 1482, 1486, 1441, 1440, 1945, 1441, 1434, 1423, + 1436, 1439, 1434, 1429, 1434, 1431, 1430, 1426, 1432, 1427, + 1470, 1469, 1411, 1407, 609, 1466, 1945, 1465, 1412, 1404, + + 1457, 1418, 1405, 1945, 1405, 1414, 1413, 1413, 1397, 1454, + 1395, 1408, 1945, 1400, 1392, 1401, 1394, 1405, 1382, 1386, + 1439, 1401, 1383, 1381, 1392, 20, 130, 266, 274, 309, + 630, 348, 638, 419, 479, 641, 1945, 534, 506, 542, + 573, 594, 610, 619, 625, 634, 683, 1945, 690, 666, + 654, 655, 650, 1945, 648, 663, 660, 646, 653, 652, + 650, 669, 666, 667, 657, 670, 656, 656, 662, 718, + 664, 680, 663, 717, 672, 1945, 683, 683, 676, 687, + 685, 730, 672, 674, 689, 690, 678, 737, 694, 680, + 683, 1945, 1945, 699, 698, 703, 691, 1945, 1945, 705, + + 692, 690, 708, 695, 695, 746, 696, 754, 755, 1945, + 700, 714, 714, 759, 707, 709, 703, 763, 716, 706, + 707, 703, 713, 717, 728, 712, 730, 725, 727, 720, + 722, 723, 735, 725, 740, 781, 738, 743, 720, 1945, + 732, 733, 747, 737, 784, 732, 747, 747, 1945, 766, + 774, 743, 792, 758, 746, 741, 742, 754, 761, 750, + 751, 747, 765, 757, 752, 805, 811, 768, 759, 1945, + 771, 756, 772, 762, 775, 769, 817, 783, 767, 768, + 1945, 784, 787, 770, 772, 830, 773, 1945, 790, 793, + 773, 792, 832, 790, 786, 781, 799, 798, 784, 799, + + 791, 787, 805, 790, 1945, 1945, 798, 845, 798, 1945, + 806, 801, 854, 1945, 803, 808, 852, 804, 805, 817, + 811, 815, 813, 811, 822, 867, 811, 816, 870, 871, + 815, 827, 1945, 815, 823, 821, 818, 819, 828, 840, + 824, 838, 839, 840, 856, 861, 843, 830, 832, 832, + 852, 851, 842, 831, 848, 855, 898, 840, 900, 847, + 851, 1945, 898, 847, 865, 862, 902, 851, 869, 870, + 856, 864, 875, 855, 870, 877, 919, 920, 1945, 873, + 922, 923, 874, 884, 886, 870, 871, 878, 887, 932, + 879, 878, 895, 936, 886, 890, 888, 886, 941, 942, + + 892, 944, 940, 898, 1945, 903, 896, 887, 906, 900, + 895, 905, 902, 907, 903, 915, 1945, 899, 901, 1945, + 1945, 901, 961, 900, 919, 920, 965, 966, 920, 905, + 926, 908, 913, 920, 953, 944, 976, 933, 920, 922, + 939, 934, 938, 983, 931, 935, 1945, 932, 1945, 946, + 944, 947, 931, 932, 992, 945, 950, 937, 948, 941, + 947, 943, 961, 962, 964, 1945, 1945, 962, 1945, 964, + 1945, 949, 950, 969, 959, 1011, 964, 1008, 972, 1945, + 964, 956, 1017, 1945, 1018, 965, 972, 1016, 1945, 1945, + 974, 1945, 965, 965, 968, 982, 987, 970, 981, 1030, + + 987, 988, 989, 1029, 985, 1036, 989, 1038, 1945, 985, + 1040, 1041, 1945, 1945, 981, 1043, 1002, 986, 998, 988, + 1018, 1049, 1945, 1006, 1051, 998, 1013, 1049, 1001, 1945, + 997, 1013, 1001, 1019, 1007, 1007, 1062, 1019, 1945, 1021, + 1020, 1022, 1015, 1024, 1025, 1022, 1012, 1015, 1015, 1074, + 1021, 1077, 1078, 1021, 1080, 1945, 1016, 1031, 1024, 1084, + 1037, 1945, 1945, 1033, 1044, 1029, 1046, 1032, 1093, 1094, + 1039, 1049, 1098, 1055, 1945, 1047, 1047, 1049, 1051, 1104, + 1047, 1945, 1048, 1945, 1050, 1945, 1945, 1064, 1945, 1058, + 1110, 1059, 1112, 1092, 1945, 1109, 1945, 1057, 1065, 1059, + + 1056, 1059, 1062, 1062, 1058, 1064, 1124, 1072, 1945, 1068, + 1127, 1080, 1071, 1086, 1086, 1089, 1089, 1086, 1130, 1093, + 1945, 1085, 1945, 1945, 1095, 1945, 1096, 1097, 1094, 1138, + 1945, 1087, 1087, 1093, 1092, 1104, 1104, 1945, 1945, 1145, + 1092, 1945, 1109, 1094, 1094, 1096, 1102, 1945, 1157, 1099, + 1109, 1160, 1121, 1945, 1118, 1945, 1137, 1105, 1165, 1166, + 1123, 1128, 1110, 1170, 1171, 1172, 1125, 1945, 1115, 1175, + 1945, 1113, 1172, 1135, 1131, 1175, 1123, 1128, 1126, 1185, + 1141, 1187, 1188, 1149, 1139, 1133, 1149, 1194, 1136, 1153, + 1138, 1153, 1137, 1195, 1196, 1197, 1144, 1199, 1162, 1945, + + 1162, 1149, 1945, 1160, 1209, 1179, 1163, 1945, 1945, 1154, + 1165, 1214, 1945, 1945, 1945, 1161, 1159, 1945, 1217, 1163, + 1214, 1157, 1162, 1223, 1171, 1181, 1182, 1945, 1227, 1180, + 1945, 1945, 1171, 1186, 1174, 1189, 1945, 1228, 1194, 1187, + 1188, 1197, 1180, 1186, 1188, 1242, 1202, 1201, 1193, 1247, + 1196, 1945, 1249, 1198, 1251, 1193, 1945, 1200, 1200, 1945, + 1204, 1199, 1198, 1258, 1211, 1945, 1255, 1206, 1203, 1945, + 1217, 1220, 1265, 1218, 1267, 1208, 1210, 1218, 1208, 1224, + 1225, 1219, 1235, 1945, 1225, 1277, 1236, 1945, 1274, 1945, + 1236, 1945, 1276, 1277, 1232, 1240, 1231, 1238, 1945, 1235, + + 1240, 1238, 1290, 1291, 1234, 1945, 1249, 1945, 1239, 1251, + 1252, 1297, 1239, 1247, 1241, 1249, 1262, 1945, 1239, 1262, + 1247, 1247, 1252, 1308, 1256, 1268, 1259, 1268, 1270, 1274, + 1945, 1945, 1315, 1258, 1274, 1318, 1319, 1945, 1315, 1277, + 1274, 1279, 1266, 1325, 1262, 1327, 1280, 1285, 1945, 1330, + 1287, 1288, 1333, 1290, 1293, 1945, 1336, 1297, 1945, 1945, + 1279, 1339, 1286, 1341, 1284, 1945, 1301, 1945, 1292, 1288, + 1945, 1288, 1290, 1945, 1295, 1305, 1945, 1291, 1303, 1945, + 1299, 1945, 1309, 1303, 1311, 1308, 1299, 1353, 1300, 1308, + 1317, 1310, 1305, 1306, 1321, 1366, 1313, 1320, 1307, 1322, + + 1327, 1372, 1329, 1374, 1375, 1318, 1945, 1334, 1325, 1339, + 1335, 1328, 1945, 1382, 1945, 1945, 1383, 1384, 1339, 1338, + 1339, 1329, 1945, 1945, 1945, 1389, 1331, 1347, 1392, 1945, + 1388, 1337, 1945, 1336, 1338, 1349, 1398, 1347, 1945, 1356, + 1401, 1945, 1945, 1407, 1412, 1417, 1422, 1427, 1432, 1437, + 1440, 1414, 1419, 1421, 1434 } ; -static const flex_int16_t yy_def[1517] = +static const flex_int16_t yy_def[1556] = { 0, - 1505, 1505, 1506, 1506, 1505, 1505, 1505, 1505, 1505, 1505, - 1504, 1504, 1504, 1504, 1504, 1507, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1508, - 1504, 1504, 1504, 1509, 15, 1504, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1510, 45, 45, + 1544, 1544, 1545, 1545, 1544, 1544, 1544, 1544, 1544, 1544, + 1543, 1543, 1543, 1543, 1543, 1546, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1547, + 1543, 1543, 1543, 1548, 15, 1543, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1549, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1507, 1504, - 1504, 1504, 1504, 1504, 1504, 1511, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1508, 1504, 1509, + 45, 45, 45, 45, 45, 45, 45, 45, 1546, 1543, + 1543, 1543, 1543, 1543, 1543, 1550, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1547, 1543, 1548, - 1504, 1504, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1512, 45, 1510, 45, 45, + 1543, 1543, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1551, 45, 1549, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1511, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1513, 45, 45, 45, - 1504, 45, 45, 1504, 45, 45, 45, 45, 45, 45, + 1550, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1552, + 45, 45, 45, 1543, 45, 45, 1543, 45, 45, 45, - 45, 1512, 1504, 1510, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1551, 1543, 1549, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1504, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1514, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1543, 1543, 1543, 1543, 1543, - 45, 45, 1504, 45, 45, 1504, 45, 1504, 45, 1510, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1543, 1543, 1553, 45, 45, 45, 45, 45, 1543, 45, + 45, 1543, 45, 1543, 45, 1549, 1543, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1504, 1504, 1504, 1515, 45, 45, 45, 45, - 45, 45, 1504, 45, 45, 1504, 45, 1510, 45, 45, - 45, 1504, 45, 45, 45, 45, 45, 45, 45, 1504, - 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1543, 1543, 1543, 1554, 45, 45, 45, 45, 45, + 45, 1543, 45, 45, 1543, 45, 1549, 45, 45, 45, + 45, 1543, 45, 45, 45, 45, 45, 45, 45, 1543, + 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1504, 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1543, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1504, 1504, 1504, 45, 1504, 45, - 45, 1504, 1516, 45, 45, 1504, 1504, 45, 1504, 45, - 1504, 45, 45, 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45, - 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1543, 1543, 1543, 45, + 1543, 45, 45, 1543, 1555, 45, 45, 1543, 1543, 45, + 1543, 45, 1543, 45, 45, 45, 1543, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1504, 45, 45, 1504, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 1504, 45, 45, 45, 45, + 1543, 45, 45, 45, 45, 45, 45, 45, 45, 1543, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1543, 45, 45, 1543, 45, - 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1504, 45, 45, 45, 45, 45, 45, 1504, 1504, + 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, + 45, 45, 45, 1543, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, + + 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, + 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 1504, 45, 45, - 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, + 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 1543, 1543, 45, 45, 45, 45, 1543, 1543, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 1504, - 45, 45, 45, 45, 1504, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, + 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1504, 1504, 45, 45, 45, 45, 1504, 1504, + 1543, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1543, 1543, 45, 45, 45, 1543, + 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45, - 45, 45, 45, 45, 45, 1504, 45, 45, 45, 45, + 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1504, 1504, 45, 45, 45, 1504, 45, 45, - 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45, + + 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1543, 45, 45, 1543, + 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1504, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 1543, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 1504, + 45, 45, 45, 45, 45, 1543, 1543, 45, 1543, 45, + 1543, 45, 45, 45, 45, 45, 45, 45, 45, 1543, + 45, 45, 45, 1543, 45, 45, 45, 45, 1543, 1543, + 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, + + 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, + 45, 45, 1543, 1543, 45, 45, 45, 45, 45, 45, + 45, 45, 1543, 45, 45, 45, 45, 45, 45, 1543, + 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1504, 45, 45, 1504, 1504, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, + 45, 1543, 1543, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, + 45, 1543, 45, 1543, 45, 1543, 1543, 45, 1543, 45, + 45, 45, 45, 45, 1543, 45, 1543, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1504, 1504, 45, - 1504, 45, 1504, 45, 45, 45, 45, 45, 45, 45, - 45, 1504, 45, 45, 45, 1504, 45, 45, 45, 45, - 1504, 1504, 45, 1504, 45, 45, 45, 45, 45, 45, + 1543, 45, 1543, 1543, 45, 1543, 45, 45, 45, 45, + 1543, 45, 45, 45, 45, 45, 45, 1543, 1543, 45, + 45, 1543, 45, 45, 45, 45, 45, 1543, 45, 45, + 45, 45, 45, 1543, 45, 1543, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, + 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 1504, 45, 45, 45, 45, 45, 1504, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 1543, - 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45, + 45, 45, 1543, 45, 45, 45, 45, 1543, 1543, 45, + 45, 45, 1543, 1543, 1543, 45, 45, 1543, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, + 1543, 1543, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1504, 45, 45, 45, 45, 45, - 1504, 1504, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1504, 45, 45, 45, 45, 45, 45, - 1504, 45, 1504, 45, 1504, 1504, 45, 1504, 45, 45, - 45, 45, 45, 1504, 1504, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1504, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45, - 1504, 1504, 45, 1504, 45, 45, 45, 45, 1504, 45, - - 45, 45, 45, 45, 45, 1504, 1504, 45, 45, 1504, - 45, 45, 45, 45, 45, 1504, 45, 45, 45, 45, - 45, 1504, 45, 1504, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 1504, 45, 45, 1504, 45, 45, + 45, 1543, 45, 45, 45, 45, 1543, 45, 45, 1543, + 45, 45, 45, 45, 45, 1543, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 1543, 45, 45, 45, 1543, 45, 1543, + 45, 1543, 45, 45, 45, 45, 45, 45, 1543, 45, + + 45, 45, 45, 45, 45, 1543, 45, 1543, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 1504, 45, 45, 1504, - 45, 45, 45, 1504, 1504, 45, 45, 45, 1504, 1504, - 1504, 45, 45, 1504, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1504, 45, 45, 1504, 1504, 45, 45, - - 45, 45, 1504, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45, - 45, 1504, 45, 45, 1504, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 1504, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 1504, 45, - 45, 45, 1504, 45, 1504, 1504, 45, 45, 45, 45, - 45, 45, 1504, 45, 45, 45, 45, 45, 45, 1504, - 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 1504, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 1504, 1504, 45, 45, 45, 45, 45, - - 1504, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 1504, 45, 45, 45, 45, 45, 45, 1504, 45, 45, - 1504, 1504, 45, 45, 45, 45, 45, 1504, 45, 45, - 45, 1504, 45, 45, 1504, 45, 45, 1504, 45, 45, - 1504, 45, 1504, 45, 45, 45, 45, 45, 45, 45, + 1543, 1543, 45, 45, 45, 45, 45, 1543, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 1543, 45, + 45, 45, 45, 45, 45, 1543, 45, 45, 1543, 1543, + 45, 45, 45, 45, 45, 1543, 45, 1543, 45, 45, + 1543, 45, 45, 1543, 45, 45, 1543, 45, 45, 1543, + 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 1504, 45, 45, - 45, 45, 45, 1504, 45, 1504, 1504, 45, 45, 45, - 45, 45, 45, 1504, 1504, 1504, 45, 45, 45, 45, - 1504, 45, 45, 1504, 45, 45, 45, 45, 45, 1504, - 45, 45, 1504, 0, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504 + 45, 45, 45, 45, 45, 45, 1543, 45, 45, 45, + 45, 45, 1543, 45, 1543, 1543, 45, 45, 45, 45, + 45, 45, 1543, 1543, 1543, 45, 45, 45, 45, 1543, + 45, 45, 1543, 45, 45, 45, 45, 45, 1543, 45, + 45, 1543, 0, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543 } ; -static const flex_int16_t yy_nxt[1941] = +static const flex_int16_t yy_nxt[2019] = { 0, - 1504, 13, 14, 13, 1504, 15, 16, 1504, 17, 18, - 19, 20, 21, 22, 22, 22, 23, 24, 85, 364, - 37, 14, 37, 86, 25, 26, 38, 829, 1504, 27, - 37, 14, 37, 42, 28, 42, 38, 91, 92, 29, - 115, 30, 13, 14, 13, 90, 91, 25, 31, 92, - 13, 14, 13, 13, 14, 13, 32, 40, 831, 13, - 14, 13, 33, 40, 115, 91, 92, 365, 90, 34, - 35, 13, 14, 13, 94, 15, 16, 95, 17, 18, - 19, 20, 21, 22, 22, 22, 23, 24, 13, 14, - 13, 108, 39, 90, 25, 26, 13, 14, 13, 27, - - 39, 84, 84, 84, 28, 42, 41, 42, 42, 29, - 42, 30, 82, 107, 41, 111, 93, 25, 31, 108, - 130, 138, 88, 832, 88, 833, 32, 89, 89, 89, - 131, 139, 33, 140, 380, 82, 107, 381, 111, 34, - 35, 44, 44, 44, 45, 45, 46, 45, 45, 45, + 1543, 13, 14, 13, 1543, 15, 16, 1543, 17, 18, + 19, 20, 21, 22, 22, 22, 22, 22, 23, 24, + 85, 704, 37, 14, 37, 86, 25, 26, 38, 101, + 825, 27, 37, 14, 37, 42, 28, 42, 38, 91, + 92, 29, 196, 30, 13, 14, 13, 90, 91, 25, + 31, 92, 13, 14, 13, 13, 14, 13, 32, 40, + 705, 13, 14, 13, 33, 40, 102, 91, 92, 196, + 90, 34, 35, 13, 14, 13, 94, 15, 16, 95, + 17, 18, 19, 20, 21, 22, 22, 22, 22, 22, + 23, 24, 13, 14, 13, 90, 39, 103, 25, 26, + + 13, 14, 13, 27, 39, 42, 107, 42, 28, 42, + 108, 42, 41, 29, 111, 30, 114, 115, 93, 136, + 41, 25, 31, 103, 137, 437, 88, 138, 88, 107, + 32, 89, 89, 89, 89, 89, 33, 111, 108, 114, + 826, 115, 438, 34, 35, 44, 44, 44, 45, 45, + 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 47, 45, 48, + 49, 50, 51, 45, 52, 53, 54, 45, 45, 45, + 45, 55, 56, 45, 57, 45, 45, 58, 45, 45, + 59, 45, 60, 61, 62, 63, 64, 65, 66, 52, + + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 57, 45, 45, 45, 45, 45, 80, 109, + 81, 81, 81, 81, 81, 80, 103, 83, 83, 83, + 83, 83, 107, 82, 84, 84, 84, 84, 84, 80, + 82, 83, 83, 83, 83, 83, 134, 82, 110, 131, + 112, 121, 119, 135, 82, 107, 82, 164, 120, 132, + 113, 165, 122, 82, 126, 123, 133, 124, 127, 125, + 82, 128, 129, 112, 204, 147, 827, 82, 45, 148, + 45, 45, 45, 45, 130, 45, 45, 45, 113, 117, + 139, 234, 45, 45, 235, 45, 45, 204, 236, 149, + + 140, 45, 141, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 47, 45, 48, 49, 50, 51, 45, 52, 53, - 54, 45, 45, 45, 45, 55, 56, 45, 57, 45, - 45, 58, 45, 45, 59, 45, 60, 61, 62, 63, - 64, 65, 66, 52, 67, 68, 69, 70, 71, 72, - - 73, 74, 75, 76, 77, 78, 57, 45, 45, 45, - 45, 45, 80, 103, 81, 81, 81, 80, 109, 83, - 83, 83, 101, 114, 80, 82, 83, 83, 83, 121, - 82, 133, 122, 112, 123, 306, 124, 82, 134, 103, - 396, 103, 101, 113, 135, 834, 114, 110, 82, 136, - 163, 107, 137, 82, 164, 179, 112, 102, 146, 244, - 82, 45, 147, 45, 45, 45, 45, 119, 45, 45, - 45, 113, 117, 120, 107, 45, 45, 102, 45, 45, - 245, 179, 148, 835, 45, 132, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 45, 89, 89, - 89, 45, 125, 435, 111, 45, 126, 436, 181, 127, - 128, 142, 143, 45, 180, 144, 152, 45, 181, 45, - 118, 145, 129, 149, 153, 150, 154, 151, 112, 114, - 157, 155, 156, 158, 159, 165, 181, 427, 113, 166, - 180, 193, 167, 224, 160, 179, 184, 161, 836, 168, - 169, 171, 114, 172, 428, 170, 225, 173, 84, 84, - 84, 80, 175, 81, 81, 81, 113, 176, 193, 82, - 88, 182, 88, 174, 82, 89, 89, 89, 80, 180, - 83, 83, 83, 84, 84, 84, 89, 89, 89, 100, - - 188, 82, 82, 192, 82, 197, 100, 82, 194, 198, - 209, 199, 201, 200, 407, 183, 215, 216, 197, 210, - 211, 235, 256, 257, 82, 226, 217, 82, 188, 192, - 221, 837, 222, 197, 100, 201, 198, 195, 100, 199, - 200, 227, 100, 407, 188, 230, 250, 838, 231, 223, - 100, 266, 232, 198, 100, 290, 100, 187, 204, 204, - 204, 205, 353, 236, 292, 204, 204, 204, 204, 204, - 204, 260, 206, 276, 261, 262, 302, 277, 291, 290, - 283, 278, 291, 290, 267, 268, 269, 292, 204, 204, - 204, 204, 204, 204, 292, 270, 298, 271, 301, 272, - - 273, 305, 274, 302, 291, 307, 309, 293, 294, 298, - 389, 409, 410, 354, 305, 403, 355, 295, 484, 298, - 411, 415, 407, 390, 305, 403, 301, 412, 307, 465, - 466, 839, 312, 309, 310, 310, 310, 360, 403, 317, - 840, 310, 310, 310, 310, 310, 310, 318, 404, 415, - 412, 419, 319, 320, 430, 450, 415, 488, 496, 431, - 451, 489, 497, 472, 310, 310, 310, 310, 310, 310, - 418, 418, 418, 473, 485, 672, 673, 418, 418, 418, - 418, 418, 418, 501, 474, 513, 519, 502, 514, 524, - 524, 520, 532, 558, 533, 548, 841, 635, 559, 634, - - 418, 418, 418, 418, 418, 418, 452, 608, 549, 630, - 688, 453, 609, 731, 636, 732, 842, 524, 534, 532, - 830, 533, 45, 45, 45, 635, 634, 721, 843, 45, - 45, 45, 45, 45, 45, 697, 777, 722, 732, 778, - 698, 731, 736, 737, 811, 738, 844, 689, 830, 845, - 846, 812, 45, 45, 45, 45, 45, 45, 814, 847, - 819, 848, 849, 850, 851, 815, 820, 852, 853, 816, - 854, 855, 856, 857, 858, 859, 861, 699, 862, 863, - 860, 864, 865, 866, 867, 868, 869, 870, 871, 872, - 873, 874, 875, 876, 877, 879, 880, 881, 878, 882, - - 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, - 903, 904, 905, 906, 907, 909, 910, 911, 912, 913, - 914, 915, 916, 917, 918, 919, 908, 920, 921, 922, - 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, - 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, - 943, 944, 922, 945, 946, 921, 947, 948, 949, 950, - 951, 952, 953, 954, 957, 958, 959, 960, 955, 961, - 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, - 972, 974, 975, 976, 977, 978, 979, 980, 981, 982, - - 983, 973, 984, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, - 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1010, 1009, 956, - 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, - 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, - 1031, 1032, 1033, 1034, 1008, 1009, 1035, 1036, 1037, 1038, - 1039, 1040, 1041, 1043, 1045, 1046, 1047, 1042, 1048, 1049, - 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, - 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, - 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, - - 1080, 1081, 1082, 1083, 1084, 1044, 1085, 1086, 1087, 1088, - 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, - 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, - 1109, 1110, 1111, 1112, 1113, 1091, 1114, 1115, 1116, 1117, - 1118, 1092, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, - 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, - 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, - 1147, 1148, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, - 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1167, 1168, - 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, - 1189, 1190, 1191, 1163, 1192, 1193, 1194, 1195, 1196, 1198, - 1199, 1200, 1149, 1201, 1202, 1203, 1197, 1204, 1205, 1166, - 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, - 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, - 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, - 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, - 1246, 1247, 1225, 1248, 1249, 1250, 1251, 1252, 1253, 1254, - 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, - 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, - - 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, - 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, - 1296, 1297, 1298, 1299, 1300, 1273, 1301, 1302, 1303, 1304, - 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, - 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, - 1325, 1327, 1328, 1329, 1330, 1326, 1331, 1332, 1333, 1334, - 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, - 1345, 1346, 1319, 1347, 1348, 1295, 1349, 1350, 1351, 1352, - 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, - 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, - - 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, - 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, - 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, - 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, - 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, - 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, - 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, - 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, - 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, - 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, - - 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, - 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, - 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, - 1503, 12, 12, 12, 12, 12, 36, 36, 36, 36, - 36, 79, 297, 79, 79, 79, 98, 406, 98, 523, - 98, 100, 100, 100, 100, 100, 116, 116, 116, 116, - 116, 178, 100, 178, 178, 178, 202, 202, 202, 828, - 827, 826, 825, 824, 823, 822, 821, 818, 817, 813, - 810, 809, 808, 807, 806, 805, 804, 803, 802, 801, - 800, 799, 798, 797, 796, 795, 794, 793, 792, 791, - - 790, 789, 788, 787, 786, 785, 784, 783, 782, 781, - 780, 779, 776, 775, 774, 773, 772, 771, 770, 769, - 768, 767, 766, 765, 764, 763, 762, 761, 760, 759, - 758, 757, 756, 755, 754, 753, 752, 751, 750, 749, - 748, 747, 746, 745, 744, 743, 742, 741, 740, 739, - 735, 734, 733, 730, 729, 728, 727, 726, 725, 724, - 723, 720, 719, 718, 717, 716, 715, 714, 713, 712, - 711, 710, 709, 708, 707, 706, 705, 704, 703, 702, - 701, 700, 696, 695, 694, 693, 692, 691, 690, 687, - 686, 685, 684, 683, 682, 681, 680, 679, 678, 677, - - 676, 675, 674, 671, 670, 669, 668, 667, 666, 665, - 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, - 654, 653, 652, 651, 650, 649, 648, 647, 646, 645, - 644, 643, 642, 641, 640, 639, 638, 637, 633, 632, - 631, 630, 629, 628, 627, 626, 625, 624, 623, 622, - 621, 620, 619, 618, 617, 616, 615, 614, 613, 612, - 611, 610, 607, 606, 605, 604, 603, 602, 601, 600, - 599, 598, 597, 596, 595, 594, 593, 592, 591, 590, - 589, 588, 587, 586, 585, 584, 583, 582, 581, 580, - 579, 578, 577, 576, 575, 574, 573, 572, 571, 570, - - 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, - 557, 556, 555, 554, 553, 552, 551, 550, 547, 546, - 545, 544, 543, 542, 541, 540, 539, 538, 537, 536, - 535, 531, 530, 529, 528, 527, 526, 525, 522, 521, - 518, 517, 516, 515, 512, 511, 510, 509, 508, 507, - 506, 505, 504, 503, 500, 499, 498, 495, 494, 493, - 492, 491, 490, 487, 486, 483, 482, 481, 480, 479, - 478, 477, 476, 475, 471, 470, 469, 468, 467, 464, - 463, 462, 461, 460, 459, 458, 457, 456, 455, 454, - 449, 448, 447, 446, 445, 444, 443, 442, 441, 440, - - 439, 438, 437, 434, 433, 432, 429, 426, 425, 424, - 423, 422, 421, 420, 417, 416, 414, 413, 408, 405, - 402, 401, 400, 399, 398, 397, 395, 394, 393, 392, - 391, 388, 387, 386, 385, 384, 383, 382, 379, 378, - 377, 376, 375, 374, 373, 372, 371, 370, 369, 368, - 367, 366, 363, 362, 361, 359, 358, 357, 356, 352, - 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, - 341, 340, 339, 338, 337, 336, 335, 334, 333, 332, - 331, 330, 329, 328, 327, 326, 325, 324, 323, 322, - 321, 316, 315, 314, 313, 311, 203, 308, 306, 304, - - 303, 300, 299, 296, 289, 288, 287, 286, 285, 284, - 282, 281, 280, 279, 275, 265, 264, 263, 259, 258, - 255, 254, 253, 252, 251, 249, 248, 247, 246, 243, - 242, 241, 240, 239, 238, 237, 234, 233, 229, 228, - 220, 219, 218, 214, 213, 212, 208, 207, 203, 196, - 191, 190, 189, 186, 185, 177, 162, 141, 106, 105, - 104, 43, 99, 97, 96, 87, 43, 1504, 11, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504 + 45, 45, 45, 45, 111, 153, 45, 143, 144, 184, + 45, 145, 197, 154, 45, 155, 101, 146, 828, 114, + 156, 157, 45, 150, 182, 151, 45, 152, 45, 118, + 158, 166, 183, 159, 160, 167, 829, 184, 168, 172, + 173, 228, 114, 198, 161, 169, 170, 162, 184, 112, + 182, 171, 178, 102, 229, 182, 482, 179, 183, 113, + 84, 84, 84, 84, 84, 80, 483, 81, 81, 81, + 81, 81, 174, 82, 175, 832, 187, 88, 176, 88, + + 82, 185, 89, 89, 89, 89, 89, 113, 239, 84, + 84, 84, 84, 84, 177, 80, 82, 83, 83, 83, + 83, 83, 82, 82, 89, 89, 89, 89, 89, 183, + 82, 89, 89, 89, 89, 89, 100, 191, 195, 200, + 213, 201, 202, 100, 203, 82, 191, 219, 220, 214, + 215, 248, 240, 82, 200, 186, 225, 221, 226, 201, + 230, 260, 261, 208, 195, 191, 296, 200, 201, 298, + 202, 203, 249, 100, 209, 227, 231, 100, 297, 297, + 264, 100, 254, 265, 266, 296, 289, 307, 836, 100, + 270, 298, 298, 100, 296, 100, 190, 207, 207, 207, + + 207, 207, 475, 476, 297, 300, 207, 207, 207, 207, + 207, 207, 280, 299, 301, 307, 281, 308, 360, 304, + 282, 315, 311, 313, 304, 271, 272, 273, 371, 207, + 207, 207, 207, 207, 207, 494, 274, 837, 275, 840, + 276, 277, 304, 278, 308, 311, 313, 318, 315, 316, + 316, 316, 316, 316, 311, 841, 324, 412, 316, 316, + 316, 316, 316, 316, 325, 387, 396, 312, 388, 326, + 327, 361, 405, 412, 362, 416, 421, 367, 372, 397, + 412, 316, 316, 316, 316, 316, 316, 424, 418, 419, + 440, 842, 416, 495, 445, 441, 413, 420, 498, 421, + + 446, 460, 499, 424, 416, 506, 461, 511, 536, 507, + 525, 512, 544, 526, 545, 424, 427, 427, 427, 427, + 427, 428, 561, 688, 689, 427, 427, 427, 427, 427, + 427, 484, 531, 843, 737, 562, 536, 532, 536, 544, + 571, 545, 621, 844, 750, 572, 738, 622, 427, 427, + 427, 427, 427, 427, 462, 649, 650, 749, 845, 463, + 45, 45, 45, 45, 45, 796, 546, 750, 797, 45, + 45, 45, 45, 45, 45, 645, 713, 846, 847, 848, + 651, 714, 649, 830, 650, 749, 755, 756, 849, 757, + 831, 833, 45, 45, 45, 45, 45, 45, 834, 838, + + 850, 851, 835, 852, 853, 839, 854, 855, 856, 857, + 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, + 715, 868, 869, 870, 871, 872, 873, 874, 875, 851, + 876, 877, 878, 879, 880, 881, 883, 884, 885, 886, + 882, 887, 888, 889, 890, 891, 892, 893, 894, 895, + 896, 897, 898, 899, 901, 902, 903, 900, 904, 905, + 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, + 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, + 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, + 937, 938, 939, 940, 941, 930, 942, 943, 944, 945, + + 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, + 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, + 966, 967, 968, 946, 969, 970, 945, 971, 972, 973, + 974, 975, 976, 977, 978, 979, 982, 983, 984, 985, + 980, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 995, 996, 997, 999, 1000, 1001, 1002, 1003, 1004, 1005, + 1006, 1007, 1008, 998, 1009, 1010, 1011, 1012, 1013, 1014, + 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, + 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, + 1035, 1037, 1036, 981, 1038, 1039, 1040, 1041, 1042, 1043, + + 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, + 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1035, 1036, + 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1071, 1073, + 1074, 1075, 1070, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, + 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, + 1113, 1114, 1072, 1115, 1116, 1117, 1118, 1119, 1120, 1121, + 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, + 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, + + 1142, 1143, 1121, 1144, 1145, 1146, 1147, 1148, 1122, 1149, + 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, + 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, + 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, + 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, + 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1199, 1200, 1201, + 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, + 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, + 1222, 1194, 1223, 1224, 1225, 1226, 1227, 1228, 1230, 1231, + 1232, 1233, 1180, 1234, 1235, 1229, 1236, 1237, 1238, 1239, + + 1198, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, + 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, + 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, + 1279, 1257, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, + 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, + 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, + 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, + 1328, 1330, 1331, 1332, 1333, 1306, 1334, 1335, 1336, 1337, + + 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, + 1358, 1359, 1360, 1362, 1363, 1364, 1365, 1361, 1366, 1367, + 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, + 1378, 1379, 1380, 1353, 1381, 1382, 1383, 1384, 1329, 1385, + 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, + 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, + 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, + 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, + 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, + + 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, + 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, + 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, + 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, + 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, + 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, + 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, + 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, + 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, + 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, + + 1536, 1537, 1538, 1539, 1540, 1541, 1542, 12, 12, 12, + 12, 12, 36, 36, 36, 36, 36, 79, 303, 79, + 79, 79, 98, 415, 98, 535, 98, 100, 100, 100, + 100, 100, 116, 116, 116, 116, 116, 181, 100, 181, + 181, 181, 205, 205, 205, 824, 823, 822, 821, 820, + 819, 818, 817, 816, 815, 814, 813, 812, 811, 810, + 809, 808, 807, 806, 805, 804, 803, 802, 801, 800, + 799, 798, 795, 794, 793, 792, 791, 790, 789, 788, + 787, 786, 785, 784, 783, 782, 781, 780, 779, 778, + 777, 776, 775, 774, 773, 772, 771, 770, 769, 768, + + 767, 766, 765, 764, 763, 762, 761, 760, 759, 758, + 754, 753, 752, 751, 748, 747, 746, 745, 744, 743, + 742, 741, 740, 739, 736, 735, 734, 733, 732, 731, + 730, 729, 728, 727, 726, 725, 724, 723, 722, 721, + 720, 719, 718, 717, 716, 712, 711, 710, 709, 708, + 707, 706, 703, 702, 701, 700, 699, 698, 697, 696, + 695, 694, 693, 692, 691, 690, 687, 686, 685, 684, + 683, 682, 681, 680, 679, 678, 677, 676, 675, 674, + 673, 672, 671, 670, 669, 668, 667, 666, 665, 664, + 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, + + 653, 652, 648, 647, 646, 645, 644, 643, 642, 641, + 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, + 630, 629, 628, 627, 626, 625, 624, 623, 620, 619, + 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, + 608, 607, 606, 605, 604, 603, 602, 601, 600, 599, + 598, 597, 596, 595, 594, 593, 592, 591, 590, 589, + 588, 587, 586, 585, 584, 583, 582, 581, 580, 579, + 578, 577, 576, 575, 574, 573, 570, 569, 568, 567, + 566, 565, 564, 563, 560, 559, 558, 557, 556, 555, + 554, 553, 552, 551, 550, 549, 548, 547, 543, 542, + + 541, 540, 539, 538, 537, 534, 533, 530, 529, 528, + 527, 524, 523, 522, 521, 520, 519, 518, 517, 516, + 515, 514, 513, 510, 509, 508, 505, 504, 503, 502, + 501, 500, 497, 496, 493, 492, 491, 490, 489, 488, + 487, 486, 485, 481, 480, 479, 478, 477, 474, 473, + 472, 471, 470, 469, 468, 467, 466, 465, 464, 459, + 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, + 448, 447, 444, 443, 442, 439, 436, 435, 434, 433, + 432, 431, 430, 429, 426, 425, 423, 422, 417, 414, + 411, 410, 409, 408, 407, 406, 404, 403, 402, 401, + + 400, 399, 398, 395, 394, 393, 392, 391, 390, 389, + 386, 385, 384, 383, 382, 381, 380, 379, 378, 377, + 376, 375, 374, 373, 370, 369, 368, 366, 365, 364, + 363, 359, 358, 357, 356, 355, 354, 353, 352, 351, + 350, 349, 348, 347, 346, 345, 344, 343, 342, 341, + 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, + 330, 329, 328, 323, 322, 321, 320, 319, 317, 206, + 314, 312, 310, 309, 306, 305, 302, 295, 294, 293, + 292, 291, 290, 288, 287, 286, 285, 284, 283, 279, + 269, 268, 267, 263, 262, 259, 258, 257, 256, 255, + + 253, 252, 251, 250, 247, 246, 245, 244, 243, 242, + 241, 238, 237, 233, 232, 224, 223, 222, 218, 217, + 216, 212, 211, 210, 206, 199, 194, 193, 192, 189, + 188, 180, 163, 142, 106, 105, 104, 43, 99, 97, + 96, 87, 43, 1543, 11, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543 } ; -static const flex_int16_t yy_chk[1941] = +static const flex_int16_t yy_chk[2019] = { 0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 21, 254, - 3, 3, 3, 21, 1, 1, 3, 731, 0, 1, - 4, 4, 4, 13, 1, 13, 4, 27, 28, 1, - 57, 1, 5, 5, 5, 26, 32, 1, 1, 33, - 6, 6, 6, 7, 7, 7, 1, 7, 733, 8, - 8, 8, 1, 8, 57, 27, 28, 254, 26, 1, - 1, 2, 2, 2, 32, 2, 2, 33, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 9, 9, - 9, 52, 5, 31, 2, 2, 10, 10, 10, 2, - - 6, 20, 20, 20, 2, 37, 9, 37, 42, 2, - 42, 2, 20, 51, 10, 54, 31, 2, 2, 52, - 62, 66, 25, 734, 25, 736, 2, 25, 25, 25, - 62, 66, 2, 66, 269, 20, 51, 269, 54, 2, - 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 21, 603, 3, 3, 3, 21, 1, 1, 3, 44, + 726, 1, 4, 4, 4, 13, 1, 13, 4, 27, + 28, 1, 108, 1, 5, 5, 5, 26, 32, 1, + 1, 33, 6, 6, 6, 7, 7, 7, 1, 7, + 603, 8, 8, 8, 1, 8, 44, 27, 28, 108, + 26, 1, 1, 2, 2, 2, 32, 2, 2, 33, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 9, 9, 9, 31, 5, 47, 2, 2, + + 10, 10, 10, 2, 6, 37, 51, 37, 2, 42, + 52, 42, 9, 2, 54, 2, 56, 57, 31, 65, + 10, 2, 2, 47, 65, 327, 25, 65, 25, 51, + 2, 25, 25, 25, 25, 25, 2, 54, 52, 56, + 727, 57, 327, 2, 2, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1498,196 +1519,205 @@ static const flex_int16_t yy_chk[1941] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 17, 47, 17, 17, 17, 19, 53, 19, - 19, 19, 44, 56, 22, 17, 22, 22, 22, 60, - 19, 64, 60, 55, 60, 283, 60, 22, 64, 47, - 283, 59, 100, 55, 65, 737, 56, 53, 17, 65, - 74, 63, 65, 19, 74, 90, 55, 44, 69, 146, - 22, 45, 69, 45, 45, 45, 45, 59, 45, 45, - 45, 55, 58, 59, 63, 45, 45, 100, 45, 58, - 146, 90, 69, 738, 45, 63, 45, 45, 45, 45, + 15, 15, 15, 15, 15, 15, 15, 15, 17, 53, + 17, 17, 17, 17, 17, 19, 59, 19, 19, 19, + 19, 19, 63, 17, 20, 20, 20, 20, 20, 22, + 19, 22, 22, 22, 22, 22, 64, 20, 53, 62, + 55, 60, 59, 64, 22, 63, 17, 74, 59, 62, + 55, 74, 60, 19, 61, 60, 63, 60, 61, 60, + 20, 61, 61, 55, 115, 69, 728, 22, 45, 69, + 45, 45, 45, 45, 61, 45, 45, 45, 55, 58, + 66, 136, 45, 45, 136, 45, 58, 115, 136, 69, + + 66, 45, 66, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - - 45, 45, 45, 45, 45, 45, 45, 58, 88, 88, - 88, 58, 61, 327, 70, 58, 61, 327, 92, 61, - 61, 68, 68, 58, 91, 68, 71, 58, 95, 58, - 58, 68, 61, 70, 71, 70, 71, 70, 76, 77, - 72, 71, 71, 72, 72, 75, 92, 320, 76, 75, - 91, 108, 75, 131, 72, 93, 95, 72, 739, 75, - 75, 76, 77, 76, 320, 75, 131, 76, 80, 80, - 80, 81, 77, 81, 81, 81, 76, 77, 108, 80, - 82, 93, 82, 76, 81, 82, 82, 82, 83, 94, - 83, 83, 83, 84, 84, 84, 89, 89, 89, 102, - - 103, 83, 80, 107, 84, 111, 102, 81, 109, 112, - 122, 113, 115, 114, 298, 94, 126, 126, 151, 122, - 122, 138, 157, 157, 83, 132, 126, 84, 103, 107, - 130, 740, 130, 111, 102, 115, 112, 109, 102, 113, - 114, 132, 102, 298, 119, 135, 151, 741, 135, 130, - 102, 164, 135, 171, 102, 179, 102, 102, 118, 118, - 118, 119, 245, 138, 181, 118, 118, 118, 118, 118, - 118, 160, 119, 166, 160, 160, 193, 166, 180, 182, - 171, 166, 183, 179, 164, 164, 164, 181, 118, 118, - 118, 118, 118, 118, 184, 164, 188, 164, 192, 164, - - 164, 197, 164, 193, 180, 199, 201, 182, 183, 206, - 277, 300, 300, 245, 250, 290, 245, 184, 371, 188, - 300, 305, 312, 277, 197, 293, 192, 301, 199, 353, - 353, 742, 206, 201, 204, 204, 204, 250, 290, 211, - 743, 204, 204, 204, 204, 204, 204, 211, 293, 305, - 301, 312, 211, 211, 323, 341, 360, 374, 381, 323, - 341, 374, 381, 359, 204, 204, 204, 204, 204, 204, - 310, 310, 310, 359, 371, 573, 573, 310, 310, 310, - 310, 310, 310, 385, 360, 396, 401, 385, 396, 407, - 419, 401, 417, 445, 417, 435, 744, 533, 445, 532, - - 310, 310, 310, 310, 310, 310, 341, 498, 435, 534, - 590, 341, 498, 634, 534, 635, 745, 407, 419, 417, - 732, 417, 418, 418, 418, 533, 532, 623, 746, 418, - 418, 418, 418, 418, 418, 599, 679, 623, 635, 679, - 599, 634, 639, 639, 715, 639, 747, 590, 732, 748, - 749, 715, 418, 418, 418, 418, 418, 418, 717, 750, - 720, 751, 752, 753, 754, 717, 720, 755, 756, 717, - 758, 759, 760, 761, 762, 763, 764, 599, 765, 766, - 763, 767, 768, 769, 770, 771, 772, 775, 776, 777, - 778, 781, 782, 783, 784, 785, 786, 787, 784, 788, - - 789, 790, 792, 793, 794, 795, 796, 797, 798, 799, - 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, - 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, - 820, 822, 823, 824, 825, 826, 814, 827, 829, 830, - 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, - 841, 842, 843, 844, 845, 846, 847, 849, 850, 851, - 852, 853, 830, 854, 855, 829, 856, 857, 858, 860, - 861, 862, 863, 864, 865, 867, 868, 869, 864, 870, - 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, - 881, 882, 885, 886, 887, 889, 890, 891, 893, 894, - - 895, 881, 896, 897, 898, 899, 900, 901, 902, 903, - 904, 905, 906, 907, 908, 909, 910, 912, 913, 914, - 915, 916, 917, 918, 919, 920, 921, 923, 922, 864, - 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, - 934, 935, 936, 938, 939, 940, 941, 942, 943, 944, - 945, 946, 947, 948, 921, 922, 949, 950, 951, 952, - 953, 955, 956, 957, 958, 959, 960, 956, 961, 962, - 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, - 973, 974, 975, 976, 977, 978, 979, 981, 982, 983, - 984, 985, 986, 987, 988, 989, 990, 991, 993, 994, - - 997, 998, 999, 1000, 1001, 957, 1002, 1003, 1004, 1005, - 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, - 1016, 1017, 1018, 1020, 1022, 1023, 1024, 1025, 1026, 1027, - 1028, 1029, 1030, 1031, 1032, 1008, 1033, 1034, 1035, 1036, - 1037, 1009, 1040, 1042, 1044, 1045, 1046, 1047, 1048, 1049, - 1050, 1051, 1053, 1054, 1055, 1057, 1058, 1059, 1060, 1063, - 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, - 1075, 1076, 1077, 1078, 1079, 1080, 1082, 1083, 1084, 1085, - 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1094, 1095, 1096, - 1097, 1098, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, - - 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, - 1119, 1120, 1121, 1091, 1122, 1123, 1124, 1126, 1127, 1128, - 1129, 1130, 1076, 1133, 1134, 1135, 1127, 1136, 1137, 1094, - 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147, 1148, - 1149, 1150, 1152, 1154, 1157, 1159, 1160, 1161, 1162, 1163, - 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, - 1176, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, - 1187, 1188, 1163, 1190, 1193, 1195, 1196, 1197, 1198, 1200, - 1201, 1202, 1203, 1204, 1205, 1208, 1209, 1211, 1212, 1213, - 1214, 1215, 1217, 1218, 1219, 1220, 1221, 1223, 1225, 1226, - - 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1236, 1237, - 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1246, 1247, - 1248, 1249, 1250, 1251, 1252, 1225, 1253, 1254, 1255, 1256, - 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1268, 1269, 1271, 1272, 1273, 1276, 1277, 1278, 1282, 1283, - 1285, 1286, 1287, 1288, 1289, 1285, 1290, 1291, 1292, 1293, - 1295, 1296, 1299, 1300, 1301, 1302, 1304, 1305, 1306, 1307, - 1308, 1309, 1273, 1310, 1311, 1247, 1312, 1313, 1314, 1315, - 1316, 1317, 1319, 1320, 1321, 1323, 1324, 1326, 1327, 1328, - 1329, 1330, 1332, 1333, 1334, 1336, 1337, 1338, 1339, 1340, - - 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1350, 1351, - 1352, 1354, 1357, 1358, 1359, 1360, 1361, 1362, 1364, 1365, - 1366, 1367, 1368, 1369, 1371, 1373, 1374, 1375, 1376, 1377, - 1378, 1379, 1380, 1381, 1383, 1384, 1385, 1386, 1387, 1388, - 1389, 1390, 1391, 1392, 1393, 1396, 1397, 1398, 1399, 1400, - 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1412, - 1413, 1414, 1415, 1416, 1417, 1419, 1420, 1423, 1424, 1425, - 1426, 1427, 1429, 1430, 1431, 1433, 1434, 1436, 1437, 1439, - 1440, 1442, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, - 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, - - 1462, 1463, 1464, 1465, 1466, 1467, 1469, 1470, 1471, 1472, - 1473, 1475, 1478, 1479, 1480, 1481, 1482, 1483, 1487, 1488, - 1489, 1490, 1492, 1493, 1495, 1496, 1497, 1498, 1499, 1501, - 1502, 1505, 1505, 1505, 1505, 1505, 1506, 1506, 1506, 1506, - 1506, 1507, 1513, 1507, 1507, 1507, 1508, 1514, 1508, 1515, - 1508, 1509, 1509, 1509, 1509, 1509, 1510, 1510, 1510, 1510, - 1510, 1511, 1516, 1511, 1511, 1511, 1512, 1512, 1512, 729, - 728, 727, 726, 725, 724, 723, 722, 719, 718, 716, - 714, 713, 712, 711, 710, 709, 708, 707, 706, 705, - 704, 703, 702, 701, 700, 699, 698, 696, 695, 694, - - 693, 692, 691, 690, 689, 687, 686, 685, 684, 683, - 682, 680, 678, 677, 676, 675, 674, 673, 672, 671, - 670, 669, 668, 667, 666, 665, 664, 663, 662, 660, - 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, - 649, 648, 647, 646, 645, 644, 643, 642, 641, 640, - 638, 637, 636, 633, 632, 631, 628, 627, 626, 625, - 624, 621, 620, 619, 618, 617, 616, 615, 614, 613, - 612, 611, 610, 609, 607, 606, 605, 604, 603, 602, - 601, 600, 598, 597, 595, 594, 593, 592, 591, 589, - 588, 587, 585, 584, 582, 581, 580, 579, 578, 577, - - 576, 575, 574, 572, 571, 570, 569, 568, 566, 565, - 564, 563, 562, 561, 560, 559, 557, 556, 555, 554, - 553, 552, 551, 550, 549, 548, 547, 546, 545, 544, - 543, 542, 541, 540, 539, 538, 537, 536, 530, 528, - 525, 524, 522, 521, 520, 518, 514, 513, 512, 511, - 510, 509, 508, 507, 506, 505, 504, 503, 502, 501, - 500, 499, 497, 496, 495, 494, 493, 492, 491, 490, - 489, 488, 487, 485, 483, 482, 481, 480, 479, 478, - 477, 476, 475, 474, 473, 472, 470, 469, 468, 467, - 466, 465, 464, 463, 462, 461, 460, 459, 458, 457, - - 456, 455, 454, 453, 452, 451, 449, 448, 447, 446, - 444, 443, 442, 441, 440, 439, 437, 436, 434, 433, - 432, 431, 429, 428, 427, 426, 425, 424, 423, 421, - 420, 415, 414, 412, 411, 410, 409, 408, 405, 402, - 400, 399, 398, 397, 395, 394, 393, 392, 391, 390, - 389, 388, 387, 386, 384, 383, 382, 380, 379, 378, - 377, 376, 375, 373, 372, 370, 369, 368, 367, 366, - 365, 364, 363, 362, 358, 357, 356, 355, 354, 352, - 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, - 340, 339, 338, 337, 336, 335, 334, 333, 332, 331, - - 330, 329, 328, 326, 325, 324, 322, 319, 318, 317, - 316, 315, 314, 313, 309, 307, 304, 302, 299, 296, - 289, 288, 287, 286, 285, 284, 282, 281, 280, 279, - 278, 276, 275, 274, 273, 272, 271, 270, 268, 267, - 266, 265, 264, 263, 262, 261, 260, 259, 258, 257, - 256, 255, 253, 252, 251, 249, 248, 247, 246, 244, - 243, 242, 241, 240, 239, 238, 237, 236, 234, 233, - 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, - 222, 221, 220, 219, 218, 217, 216, 215, 214, 213, - 212, 210, 209, 208, 207, 205, 202, 200, 198, 196, - - 195, 190, 189, 185, 177, 176, 175, 174, 173, 172, - 170, 169, 168, 167, 165, 163, 162, 161, 159, 158, - 156, 155, 154, 153, 152, 150, 149, 148, 147, 145, - 144, 143, 142, 141, 140, 139, 137, 136, 134, 133, - 129, 128, 127, 125, 124, 123, 121, 120, 116, 110, - 106, 105, 104, 98, 97, 78, 73, 67, 50, 49, - 48, 43, 41, 39, 38, 24, 14, 11, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, - 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1504 + 45, 45, 45, 45, 70, 71, 58, 68, 68, 92, + 58, 68, 109, 71, 58, 71, 100, 68, 729, 77, + 71, 71, 58, 70, 90, 70, 58, 70, 58, 58, + 72, 75, 91, 72, 72, 75, 730, 92, 75, 76, + 76, 132, 77, 109, 72, 75, 75, 72, 95, 76, + 90, 75, 77, 100, 132, 93, 366, 77, 91, 76, + 80, 80, 80, 80, 80, 81, 366, 81, 81, 81, + 81, 81, 76, 80, 76, 732, 95, 82, 76, 82, + + 81, 93, 82, 82, 82, 82, 82, 76, 139, 84, + 84, 84, 84, 84, 76, 83, 80, 83, 83, 83, + 83, 83, 84, 81, 88, 88, 88, 88, 88, 94, + 83, 89, 89, 89, 89, 89, 102, 103, 107, 111, + 123, 112, 113, 102, 114, 84, 119, 127, 127, 123, + 123, 147, 139, 83, 152, 94, 131, 127, 131, 174, + 133, 158, 158, 119, 107, 103, 182, 111, 112, 184, + 113, 114, 147, 102, 119, 131, 133, 102, 183, 186, + 161, 102, 152, 161, 161, 185, 174, 195, 734, 102, + 165, 187, 184, 102, 182, 102, 102, 118, 118, 118, + + 118, 118, 360, 360, 183, 186, 118, 118, 118, 118, + 118, 118, 167, 185, 187, 195, 167, 196, 249, 191, + 167, 204, 200, 202, 209, 165, 165, 165, 258, 118, + 118, 118, 118, 118, 118, 378, 165, 735, 165, 738, + 165, 165, 191, 165, 196, 200, 202, 209, 204, 207, + 207, 207, 207, 207, 254, 739, 215, 296, 207, 207, + 207, 207, 207, 207, 215, 273, 281, 289, 273, 215, + 215, 249, 289, 299, 249, 304, 307, 254, 258, 281, + 296, 207, 207, 207, 207, 207, 207, 311, 306, 306, + 330, 740, 318, 378, 334, 330, 299, 306, 381, 307, + + 334, 348, 381, 367, 304, 388, 348, 392, 416, 388, + 405, 392, 426, 405, 426, 311, 316, 316, 316, 316, + 316, 318, 445, 586, 586, 316, 316, 316, 316, 316, + 316, 367, 410, 741, 636, 445, 416, 410, 428, 426, + 455, 426, 508, 742, 650, 455, 636, 508, 316, 316, + 316, 316, 316, 316, 348, 544, 545, 649, 743, 348, + 427, 427, 427, 427, 427, 695, 428, 650, 695, 427, + 427, 427, 427, 427, 427, 546, 612, 744, 745, 746, + 546, 612, 544, 731, 545, 649, 655, 655, 747, 655, + 731, 733, 427, 427, 427, 427, 427, 427, 733, 736, + + 749, 750, 733, 751, 752, 736, 753, 755, 756, 757, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, + 612, 768, 769, 770, 771, 772, 773, 774, 775, 750, + 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, + 782, 787, 788, 789, 790, 791, 794, 795, 796, 797, + 800, 801, 802, 803, 804, 805, 806, 803, 807, 808, + 809, 811, 812, 813, 814, 815, 816, 817, 818, 819, + 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, + 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, + 841, 842, 843, 844, 845, 833, 846, 847, 848, 850, + + 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, + 861, 862, 863, 864, 865, 866, 867, 868, 869, 871, + 872, 873, 874, 851, 875, 876, 850, 877, 878, 879, + 880, 882, 883, 884, 885, 886, 887, 889, 890, 891, + 886, 892, 893, 894, 895, 896, 897, 898, 899, 900, + 901, 902, 903, 904, 907, 908, 909, 911, 912, 913, + 915, 916, 917, 903, 918, 919, 920, 921, 922, 923, + 924, 925, 926, 927, 928, 929, 930, 931, 932, 934, + 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, + 945, 947, 946, 886, 948, 949, 950, 951, 952, 953, + + 954, 955, 956, 957, 958, 959, 960, 961, 963, 964, + 965, 966, 967, 968, 969, 970, 971, 972, 945, 946, + 973, 974, 975, 976, 977, 978, 980, 981, 982, 983, + 984, 985, 981, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, + 1003, 1004, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, + 1014, 1015, 1016, 1018, 1019, 1022, 1023, 1024, 1025, 1026, + 1027, 1028, 982, 1029, 1030, 1031, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, + 1046, 1048, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, + + 1058, 1059, 1035, 1060, 1061, 1062, 1063, 1064, 1036, 1065, + 1068, 1070, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, + 1081, 1082, 1083, 1085, 1086, 1087, 1088, 1091, 1093, 1094, + 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, + 1105, 1106, 1107, 1108, 1110, 1111, 1112, 1115, 1116, 1117, + 1118, 1119, 1120, 1121, 1122, 1124, 1125, 1126, 1127, 1128, + 1129, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1140, + 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1121, 1152, 1153, 1154, 1155, 1157, 1158, 1159, 1160, + 1161, 1164, 1104, 1165, 1166, 1158, 1167, 1168, 1169, 1170, + + 1125, 1171, 1172, 1173, 1174, 1176, 1177, 1178, 1179, 1180, + 1181, 1183, 1185, 1188, 1190, 1191, 1192, 1193, 1194, 1196, + 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, + 1208, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, + 1219, 1194, 1220, 1222, 1225, 1227, 1228, 1229, 1230, 1232, + 1233, 1234, 1235, 1236, 1237, 1240, 1241, 1243, 1244, 1245, + 1246, 1247, 1249, 1250, 1251, 1252, 1253, 1255, 1257, 1258, + 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1269, + 1270, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1279, + 1280, 1281, 1282, 1283, 1284, 1257, 1285, 1286, 1287, 1288, + + 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, + 1299, 1301, 1302, 1304, 1305, 1306, 1307, 1310, 1311, 1312, + 1316, 1317, 1319, 1320, 1321, 1322, 1323, 1319, 1324, 1325, + 1326, 1327, 1329, 1330, 1333, 1334, 1335, 1336, 1338, 1339, + 1340, 1341, 1342, 1306, 1343, 1344, 1345, 1346, 1280, 1347, + 1348, 1349, 1350, 1351, 1353, 1354, 1355, 1356, 1358, 1359, + 1361, 1362, 1363, 1364, 1365, 1367, 1368, 1369, 1371, 1372, + 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, + 1383, 1385, 1386, 1387, 1389, 1391, 1393, 1394, 1395, 1396, + 1397, 1398, 1400, 1401, 1402, 1403, 1404, 1405, 1407, 1409, + + 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1419, 1420, + 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, + 1433, 1434, 1435, 1436, 1437, 1439, 1440, 1441, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, 1450, 1451, 1452, 1453, 1454, + 1455, 1457, 1458, 1461, 1462, 1463, 1464, 1465, 1467, 1469, + 1470, 1472, 1473, 1475, 1476, 1478, 1479, 1481, 1483, 1484, + 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, + 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, + 1505, 1506, 1508, 1509, 1510, 1511, 1512, 1514, 1517, 1518, + 1519, 1520, 1521, 1522, 1526, 1527, 1528, 1529, 1531, 1532, + + 1534, 1535, 1536, 1537, 1538, 1540, 1541, 1544, 1544, 1544, + 1544, 1544, 1545, 1545, 1545, 1545, 1545, 1546, 1552, 1546, + 1546, 1546, 1547, 1553, 1547, 1554, 1547, 1548, 1548, 1548, + 1548, 1548, 1549, 1549, 1549, 1549, 1549, 1550, 1555, 1550, + 1550, 1550, 1551, 1551, 1551, 725, 724, 723, 722, 721, + 720, 719, 718, 717, 716, 715, 714, 712, 711, 710, + 709, 708, 707, 706, 705, 703, 702, 701, 700, 699, + 698, 696, 694, 693, 692, 691, 690, 689, 688, 687, + 686, 685, 684, 683, 682, 681, 680, 679, 678, 676, + 675, 674, 673, 672, 671, 670, 669, 668, 667, 666, + + 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, + 654, 653, 652, 651, 648, 647, 646, 643, 642, 641, + 640, 639, 638, 637, 634, 633, 632, 631, 630, 629, + 628, 627, 626, 625, 624, 623, 622, 620, 619, 618, + 617, 616, 615, 614, 613, 611, 610, 608, 607, 606, + 605, 604, 602, 601, 600, 598, 597, 595, 594, 593, + 592, 591, 590, 589, 588, 587, 585, 584, 583, 582, + 581, 579, 578, 577, 576, 575, 574, 573, 572, 570, + 569, 568, 567, 566, 565, 564, 563, 562, 561, 560, + 559, 558, 557, 556, 555, 554, 553, 552, 551, 550, + + 549, 548, 542, 540, 537, 536, 534, 533, 532, 530, + 526, 525, 524, 523, 522, 521, 520, 519, 518, 517, + 516, 515, 514, 513, 512, 511, 510, 509, 507, 506, + 505, 504, 503, 502, 501, 500, 499, 498, 497, 495, + 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, + 483, 482, 480, 479, 478, 477, 476, 475, 474, 473, + 472, 471, 470, 469, 468, 467, 466, 465, 464, 463, + 462, 461, 459, 458, 457, 456, 454, 453, 452, 451, + 450, 449, 447, 446, 444, 443, 442, 441, 439, 438, + 437, 436, 435, 434, 433, 431, 430, 429, 424, 423, + + 421, 420, 419, 418, 417, 414, 411, 409, 408, 407, + 406, 404, 403, 402, 401, 400, 399, 398, 397, 396, + 395, 394, 393, 391, 390, 389, 387, 386, 385, 384, + 383, 382, 380, 379, 377, 376, 375, 374, 373, 372, + 371, 370, 369, 365, 364, 363, 362, 361, 359, 358, + 357, 356, 355, 354, 353, 352, 351, 350, 349, 347, + 346, 345, 344, 343, 342, 341, 340, 339, 338, 337, + 336, 335, 333, 332, 331, 329, 326, 325, 324, 323, + 322, 321, 320, 319, 315, 313, 310, 308, 305, 302, + 295, 294, 293, 292, 291, 290, 288, 287, 286, 285, + + 284, 283, 282, 280, 279, 278, 277, 276, 275, 274, + 272, 271, 270, 269, 268, 267, 266, 265, 264, 263, + 262, 261, 260, 259, 257, 256, 255, 253, 252, 251, + 250, 248, 247, 246, 245, 244, 243, 242, 241, 240, + 238, 237, 236, 235, 234, 233, 232, 231, 230, 229, + 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, + 218, 217, 216, 214, 213, 212, 211, 210, 208, 205, + 203, 201, 199, 198, 193, 192, 188, 180, 179, 178, + 177, 176, 175, 173, 172, 171, 170, 169, 168, 166, + 164, 163, 162, 160, 159, 157, 156, 155, 154, 153, + + 151, 150, 149, 148, 146, 145, 144, 143, 142, 141, + 140, 138, 137, 135, 134, 130, 129, 128, 126, 125, + 124, 122, 121, 120, 116, 110, 106, 105, 104, 98, + 97, 78, 73, 67, 50, 49, 48, 43, 41, 39, + 38, 24, 14, 11, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543, + 1543, 1543, 1543, 1543, 1543, 1543, 1543, 1543 } ; static yy_state_type yy_last_accepting_state; @@ -1696,7 +1726,7 @@ static char *yy_last_accepting_cpos; extern int yy_flex_debug; int yy_flex_debug = 1; -static const flex_int16_t yy_rule_linenum[183] = +static const flex_int16_t yy_rule_linenum[186] = { 0, 149, 151, 153, 158, 159, 164, 165, 166, 178, 181, 186, 193, 202, 211, 220, 229, 238, 247, 256, 265, @@ -1710,14 +1740,14 @@ static const flex_int16_t yy_rule_linenum[183] = 972, 981, 990, 1012, 1034, 1043, 1053, 1063, 1072, 1082, 1093, 1102, 1111, 1120, 1129, 1138, 1148, 1157, 1166, 1175, - 1184, 1193, 1202, 1211, 1220, 1229, 1239, 1248, 1257, 1267, - 1279, 1292, 1301, 1310, 1320, 1330, 1339, 1350, 1360, 1369, - 1379, 1389, 1398, 1407, 1416, 1425, 1435, 1444, 1454, 1463, - 1472, 1481, 1490, 1499, 1508, 1517, 1526, 1535, 1544, 1553, - 1562, 1571, 1580, 1589, 1598, 1607, 1616, 1625, 1634, 1643, - 1652, 1661, 1670, 1679, 1689, 1788, 1793, 1798, 1803, 1804, - 1805, 1806, 1807, 1808, 1810, 1828, 1841, 1846, 1850, 1852, - 1854, 1856 + 1186, 1197, 1208, 1217, 1226, 1235, 1244, 1253, 1262, 1272, + 1281, 1290, 1300, 1312, 1325, 1334, 1343, 1353, 1363, 1372, + 1383, 1393, 1402, 1412, 1422, 1431, 1440, 1449, 1458, 1468, + 1477, 1487, 1496, 1505, 1514, 1523, 1532, 1541, 1550, 1559, + 1568, 1577, 1586, 1595, 1604, 1613, 1622, 1631, 1640, 1649, + 1658, 1667, 1676, 1685, 1694, 1703, 1712, 1722, 1821, 1826, + 1831, 1836, 1837, 1838, 1839, 1840, 1841, 1843, 1861, 1874, + 1879, 1883, 1885, 1887, 1889 } ; /* The intent behind this definition is that it'll catch @@ -1770,7 +1800,7 @@ using namespace isc::dhcp; /* To avoid the call to exit... oops! */ #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg) -#line 1774 "dhcp6_lexer.cc" +#line 1804 "dhcp6_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 @@ -1796,8 +1826,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 1800 "dhcp6_lexer.cc" -#line 1801 "dhcp6_lexer.cc" +#line 1830 "dhcp6_lexer.cc" +#line 1831 "dhcp6_lexer.cc" #define INITIAL 0 #define COMMENT 1 @@ -2129,7 +2159,7 @@ YY_DECL } -#line 2133 "dhcp6_lexer.cc" +#line 2163 "dhcp6_lexer.cc" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -2158,13 +2188,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1505 ) + if ( yy_current_state >= 1544 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } - while ( yy_current_state != 1504 ); + while ( yy_current_state != 1543 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -2183,13 +2213,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 183 ) + else if ( yy_act < 186 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 183 ) + else if ( yy_act == 186 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 184 ) + else if ( yy_act == 187 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3572,6 +3602,48 @@ YY_RULE_SETUP case 110: YY_RULE_SETUP #line 1175 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_CALCULATE_TEE_TIMES(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("calculate-tee-times", driver.loc_); + } +} + YY_BREAK +case 111: +YY_RULE_SETUP +#line 1186 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_T1_PERCENT(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("t1-percent", driver.loc_); + } +} + YY_BREAK +case 112: +YY_RULE_SETUP +#line 1197 "dhcp6_lexer.ll" +{ + switch(driver.ctx_) { + case isc::dhcp::Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::SHARED_NETWORK: + return isc::dhcp::Dhcp6Parser::make_T2_PERCENT(driver.loc_); + default: + return isc::dhcp::Dhcp6Parser::make_STRING("t2-percent", driver.loc_); + } +} + YY_BREAK +case 113: +YY_RULE_SETUP +#line 1208 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -3581,9 +3653,9 @@ YY_RULE_SETUP } } YY_BREAK -case 111: +case 114: YY_RULE_SETUP -#line 1184 "dhcp6_lexer.ll" +#line 1217 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGING: @@ -3593,9 +3665,9 @@ YY_RULE_SETUP } } YY_BREAK -case 112: +case 115: YY_RULE_SETUP -#line 1193 "dhcp6_lexer.ll" +#line 1226 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3605,9 +3677,9 @@ YY_RULE_SETUP } } YY_BREAK -case 113: +case 116: YY_RULE_SETUP -#line 1202 "dhcp6_lexer.ll" +#line 1235 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3617,9 +3689,9 @@ YY_RULE_SETUP } } YY_BREAK -case 114: +case 117: YY_RULE_SETUP -#line 1211 "dhcp6_lexer.ll" +#line 1244 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3629,9 +3701,9 @@ YY_RULE_SETUP } } YY_BREAK -case 115: +case 118: YY_RULE_SETUP -#line 1220 "dhcp6_lexer.ll" +#line 1253 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3641,9 +3713,9 @@ YY_RULE_SETUP } } YY_BREAK -case 116: +case 119: YY_RULE_SETUP -#line 1229 "dhcp6_lexer.ll" +#line 1262 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OUTPUT_OPTIONS: @@ -3653,9 +3725,9 @@ YY_RULE_SETUP } } YY_BREAK -case 117: +case 120: YY_RULE_SETUP -#line 1239 "dhcp6_lexer.ll" +#line 1272 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3665,9 +3737,9 @@ YY_RULE_SETUP } } YY_BREAK -case 118: +case 121: YY_RULE_SETUP -#line 1248 "dhcp6_lexer.ll" +#line 1281 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::LOGGERS: @@ -3677,9 +3749,9 @@ YY_RULE_SETUP } } YY_BREAK -case 119: +case 122: YY_RULE_SETUP -#line 1257 "dhcp6_lexer.ll" +#line 1290 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3690,9 +3762,9 @@ YY_RULE_SETUP } } YY_BREAK -case 120: +case 123: YY_RULE_SETUP -#line 1267 "dhcp6_lexer.ll" +#line 1300 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3705,9 +3777,9 @@ YY_RULE_SETUP } } YY_BREAK -case 121: +case 124: YY_RULE_SETUP -#line 1279 "dhcp6_lexer.ll" +#line 1312 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3721,9 +3793,9 @@ YY_RULE_SETUP } } YY_BREAK -case 122: +case 125: YY_RULE_SETUP -#line 1292 "dhcp6_lexer.ll" +#line 1325 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -3733,9 +3805,9 @@ YY_RULE_SETUP } } YY_BREAK -case 123: +case 126: YY_RULE_SETUP -#line 1301 "dhcp6_lexer.ll" +#line 1334 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CLIENT_CLASSES: @@ -3745,9 +3817,9 @@ YY_RULE_SETUP } } YY_BREAK -case 124: +case 127: YY_RULE_SETUP -#line 1310 "dhcp6_lexer.ll" +#line 1343 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3758,9 +3830,9 @@ YY_RULE_SETUP } } YY_BREAK -case 125: +case 128: YY_RULE_SETUP -#line 1320 "dhcp6_lexer.ll" +#line 1353 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3771,9 +3843,9 @@ YY_RULE_SETUP } } YY_BREAK -case 126: +case 129: YY_RULE_SETUP -#line 1330 "dhcp6_lexer.ll" +#line 1363 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3783,9 +3855,9 @@ YY_RULE_SETUP } } YY_BREAK -case 127: +case 130: YY_RULE_SETUP -#line 1339 "dhcp6_lexer.ll" +#line 1372 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::MAC_SOURCES: @@ -3797,9 +3869,9 @@ YY_RULE_SETUP } } YY_BREAK -case 128: +case 131: YY_RULE_SETUP -#line 1350 "dhcp6_lexer.ll" +#line 1383 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -3810,9 +3882,9 @@ YY_RULE_SETUP } } YY_BREAK -case 129: +case 132: YY_RULE_SETUP -#line 1360 "dhcp6_lexer.ll" +#line 1393 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RESERVATIONS: @@ -3822,9 +3894,9 @@ YY_RULE_SETUP } } YY_BREAK -case 130: +case 133: YY_RULE_SETUP -#line 1369 "dhcp6_lexer.ll" +#line 1402 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS: @@ -3835,9 +3907,9 @@ YY_RULE_SETUP } } YY_BREAK -case 131: +case 134: YY_RULE_SETUP -#line 1379 "dhcp6_lexer.ll" +#line 1412 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3848,9 +3920,9 @@ YY_RULE_SETUP } } YY_BREAK -case 132: +case 135: YY_RULE_SETUP -#line 1389 "dhcp6_lexer.ll" +#line 1422 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DATA: @@ -3860,9 +3932,9 @@ YY_RULE_SETUP } } YY_BREAK -case 133: +case 136: YY_RULE_SETUP -#line 1398 "dhcp6_lexer.ll" +#line 1431 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3872,9 +3944,9 @@ YY_RULE_SETUP } } YY_BREAK -case 134: +case 137: YY_RULE_SETUP -#line 1407 "dhcp6_lexer.ll" +#line 1440 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3884,9 +3956,9 @@ YY_RULE_SETUP } } YY_BREAK -case 135: +case 138: YY_RULE_SETUP -#line 1416 "dhcp6_lexer.ll" +#line 1449 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::OPTION_DEF: @@ -3896,9 +3968,9 @@ YY_RULE_SETUP } } YY_BREAK -case 136: +case 139: YY_RULE_SETUP -#line 1425 "dhcp6_lexer.ll" +#line 1458 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: @@ -3909,9 +3981,9 @@ YY_RULE_SETUP } } YY_BREAK -case 137: +case 140: YY_RULE_SETUP -#line 1435 "dhcp6_lexer.ll" +#line 1468 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: @@ -3921,9 +3993,9 @@ YY_RULE_SETUP } } YY_BREAK -case 138: +case 141: YY_RULE_SETUP -#line 1444 "dhcp6_lexer.ll" +#line 1477 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3933,9 +4005,9 @@ YY_RULE_SETUP } } YY_BREAK -case 139: +case 142: YY_RULE_SETUP -#line 1454 "dhcp6_lexer.ll" +#line 1487 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -3945,9 +4017,9 @@ YY_RULE_SETUP } } YY_BREAK -case 140: +case 143: YY_RULE_SETUP -#line 1463 "dhcp6_lexer.ll" +#line 1496 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::HOOKS_LIBRARIES: @@ -3957,9 +4029,9 @@ YY_RULE_SETUP } } YY_BREAK -case 141: +case 144: YY_RULE_SETUP -#line 1472 "dhcp6_lexer.ll" +#line 1505 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -3969,9 +4041,9 @@ YY_RULE_SETUP } } YY_BREAK -case 142: +case 145: YY_RULE_SETUP -#line 1481 "dhcp6_lexer.ll" +#line 1514 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -3981,9 +4053,9 @@ YY_RULE_SETUP } } YY_BREAK -case 143: +case 146: YY_RULE_SETUP -#line 1490 "dhcp6_lexer.ll" +#line 1523 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -3993,9 +4065,9 @@ YY_RULE_SETUP } } YY_BREAK -case 144: +case 147: YY_RULE_SETUP -#line 1499 "dhcp6_lexer.ll" +#line 1532 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DUID_TYPE: @@ -4005,9 +4077,9 @@ YY_RULE_SETUP } } YY_BREAK -case 145: +case 148: YY_RULE_SETUP -#line 1508 "dhcp6_lexer.ll" +#line 1541 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4017,9 +4089,9 @@ YY_RULE_SETUP } } YY_BREAK -case 146: +case 149: YY_RULE_SETUP -#line 1517 "dhcp6_lexer.ll" +#line 1550 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4029,9 +4101,9 @@ YY_RULE_SETUP } } YY_BREAK -case 147: +case 150: YY_RULE_SETUP -#line 1526 "dhcp6_lexer.ll" +#line 1559 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4041,9 +4113,9 @@ YY_RULE_SETUP } } YY_BREAK -case 148: +case 151: YY_RULE_SETUP -#line 1535 "dhcp6_lexer.ll" +#line 1568 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SERVER_ID: @@ -4053,9 +4125,9 @@ YY_RULE_SETUP } } YY_BREAK -case 149: +case 152: YY_RULE_SETUP -#line 1544 "dhcp6_lexer.ll" +#line 1577 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4065,9 +4137,9 @@ YY_RULE_SETUP } } YY_BREAK -case 150: +case 153: YY_RULE_SETUP -#line 1553 "dhcp6_lexer.ll" +#line 1586 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4077,9 +4149,9 @@ YY_RULE_SETUP } } YY_BREAK -case 151: +case 154: YY_RULE_SETUP -#line 1562 "dhcp6_lexer.ll" +#line 1595 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4089,9 +4161,9 @@ YY_RULE_SETUP } } YY_BREAK -case 152: +case 155: YY_RULE_SETUP -#line 1571 "dhcp6_lexer.ll" +#line 1604 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4101,9 +4173,9 @@ YY_RULE_SETUP } } YY_BREAK -case 153: +case 156: YY_RULE_SETUP -#line 1580 "dhcp6_lexer.ll" +#line 1613 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4113,9 +4185,9 @@ YY_RULE_SETUP } } YY_BREAK -case 154: +case 157: YY_RULE_SETUP -#line 1589 "dhcp6_lexer.ll" +#line 1622 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4125,9 +4197,9 @@ YY_RULE_SETUP } } YY_BREAK -case 155: +case 158: YY_RULE_SETUP -#line 1598 "dhcp6_lexer.ll" +#line 1631 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING: @@ -4137,9 +4209,9 @@ YY_RULE_SETUP } } YY_BREAK -case 156: +case 159: YY_RULE_SETUP -#line 1607 "dhcp6_lexer.ll" +#line 1640 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4149,9 +4221,9 @@ YY_RULE_SETUP } } YY_BREAK -case 157: +case 160: YY_RULE_SETUP -#line 1616 "dhcp6_lexer.ll" +#line 1649 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4161,9 +4233,9 @@ YY_RULE_SETUP } } YY_BREAK -case 158: +case 161: YY_RULE_SETUP -#line 1625 "dhcp6_lexer.ll" +#line 1658 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4173,9 +4245,9 @@ YY_RULE_SETUP } } YY_BREAK -case 159: +case 162: YY_RULE_SETUP -#line 1634 "dhcp6_lexer.ll" +#line 1667 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONTROL_SOCKET: @@ -4185,9 +4257,9 @@ YY_RULE_SETUP } } YY_BREAK -case 160: +case 163: YY_RULE_SETUP -#line 1643 "dhcp6_lexer.ll" +#line 1676 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4197,9 +4269,9 @@ YY_RULE_SETUP } } YY_BREAK -case 161: +case 164: YY_RULE_SETUP -#line 1652 "dhcp6_lexer.ll" +#line 1685 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: @@ -4209,9 +4281,9 @@ YY_RULE_SETUP } } YY_BREAK -case 162: +case 165: YY_RULE_SETUP -#line 1661 "dhcp6_lexer.ll" +#line 1694 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4221,9 +4293,9 @@ YY_RULE_SETUP } } YY_BREAK -case 163: +case 166: YY_RULE_SETUP -#line 1670 "dhcp6_lexer.ll" +#line 1703 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4233,9 +4305,9 @@ YY_RULE_SETUP } } YY_BREAK -case 164: +case 167: YY_RULE_SETUP -#line 1679 "dhcp6_lexer.ll" +#line 1712 "dhcp6_lexer.ll" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::CONFIG: @@ -4245,9 +4317,9 @@ YY_RULE_SETUP } } YY_BREAK -case 165: +case 168: YY_RULE_SETUP -#line 1689 "dhcp6_lexer.ll" +#line 1722 "dhcp6_lexer.ll" { /* A string has been matched. It contains the actual string and single quotes. We need to get those quotes out of the way and just use its content, e.g. @@ -4347,65 +4419,65 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_); } YY_BREAK -case 166: -/* rule 166 can match eol */ +case 169: +/* rule 169 can match eol */ YY_RULE_SETUP -#line 1788 "dhcp6_lexer.ll" +#line 1821 "dhcp6_lexer.ll" { /* Bad string with a forbidden control character inside */ driver.error(driver.loc_, "Invalid control in " + std::string(yytext)); } YY_BREAK -case 167: -/* rule 167 can match eol */ +case 170: +/* rule 170 can match eol */ YY_RULE_SETUP -#line 1793 "dhcp6_lexer.ll" +#line 1826 "dhcp6_lexer.ll" { /* Bad string with a bad escape inside */ driver.error(driver.loc_, "Bad escape in " + std::string(yytext)); } YY_BREAK -case 168: +case 171: YY_RULE_SETUP -#line 1798 "dhcp6_lexer.ll" +#line 1831 "dhcp6_lexer.ll" { /* Bad string with an open escape at the end */ driver.error(driver.loc_, "Overflow escape in " + std::string(yytext)); } YY_BREAK -case 169: +case 172: YY_RULE_SETUP -#line 1803 "dhcp6_lexer.ll" +#line 1836 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 170: +case 173: YY_RULE_SETUP -#line 1804 "dhcp6_lexer.ll" +#line 1837 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); } YY_BREAK -case 171: +case 174: YY_RULE_SETUP -#line 1805 "dhcp6_lexer.ll" +#line 1838 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); } YY_BREAK -case 172: +case 175: YY_RULE_SETUP -#line 1806 "dhcp6_lexer.ll" +#line 1839 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); } YY_BREAK -case 173: +case 176: YY_RULE_SETUP -#line 1807 "dhcp6_lexer.ll" +#line 1840 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); } YY_BREAK -case 174: +case 177: YY_RULE_SETUP -#line 1808 "dhcp6_lexer.ll" +#line 1841 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); } YY_BREAK -case 175: +case 178: YY_RULE_SETUP -#line 1810 "dhcp6_lexer.ll" +#line 1843 "dhcp6_lexer.ll" { /* An integer was found. */ std::string tmp(yytext); @@ -4424,9 +4496,9 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_); } YY_BREAK -case 176: +case 179: YY_RULE_SETUP -#line 1828 "dhcp6_lexer.ll" +#line 1861 "dhcp6_lexer.ll" { /* A floating point was found. */ std::string tmp(yytext); @@ -4440,43 +4512,43 @@ YY_RULE_SETUP return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_); } YY_BREAK -case 177: +case 180: YY_RULE_SETUP -#line 1841 "dhcp6_lexer.ll" +#line 1874 "dhcp6_lexer.ll" { string tmp(yytext); return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_); } YY_BREAK -case 178: +case 181: YY_RULE_SETUP -#line 1846 "dhcp6_lexer.ll" +#line 1879 "dhcp6_lexer.ll" { return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_); } YY_BREAK -case 179: +case 182: YY_RULE_SETUP -#line 1850 "dhcp6_lexer.ll" +#line 1883 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON true reserved keyword is lower case only"); YY_BREAK -case 180: +case 183: YY_RULE_SETUP -#line 1852 "dhcp6_lexer.ll" +#line 1885 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON false reserved keyword is lower case only"); YY_BREAK -case 181: +case 184: YY_RULE_SETUP -#line 1854 "dhcp6_lexer.ll" +#line 1887 "dhcp6_lexer.ll" driver.error (driver.loc_, "JSON null reserved keyword is lower case only"); YY_BREAK -case 182: +case 185: YY_RULE_SETUP -#line 1856 "dhcp6_lexer.ll" +#line 1889 "dhcp6_lexer.ll" driver.error (driver.loc_, "Invalid character: " + std::string(yytext)); YY_BREAK case YY_STATE_EOF(INITIAL): -#line 1858 "dhcp6_lexer.ll" +#line 1891 "dhcp6_lexer.ll" { if (driver.states_.empty()) { return isc::dhcp::Dhcp6Parser::make_END(driver.loc_); @@ -4500,12 +4572,12 @@ case YY_STATE_EOF(INITIAL): BEGIN(DIR_EXIT); } YY_BREAK -case 183: +case 186: YY_RULE_SETUP -#line 1881 "dhcp6_lexer.ll" +#line 1914 "dhcp6_lexer.ll" ECHO; YY_BREAK -#line 4509 "dhcp6_lexer.cc" +#line 4581 "dhcp6_lexer.cc" case YY_END_OF_BUFFER: { @@ -4824,7 +4896,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1505 ) + if ( yy_current_state >= 1544 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; @@ -4857,11 +4929,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 1505 ) + if ( yy_current_state >= 1544 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 1504); + yy_is_jam = (yy_current_state == 1543); return yy_is_jam ? 0 : yy_current_state; } @@ -5610,7 +5682,7 @@ void yyfree (void * ptr ) /* %ok-for-header */ -#line 1881 "dhcp6_lexer.ll" +#line 1914 "dhcp6_lexer.ll" using namespace isc::dhcp; diff --git a/src/bin/dhcp6/dhcp6_parser.cc b/src/bin/dhcp6/dhcp6_parser.cc index 4b9143ad97..6404bb3d06 100644 --- a/src/bin/dhcp6/dhcp6_parser.cc +++ b/src/bin/dhcp6/dhcp6_parser.cc @@ -245,29 +245,29 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 195: // value - case 199: // map_value - case 253: // db_type - case 346: // hr_mode - case 482: // duid_type - case 517: // ncr_protocol_value - case 524: // replace_client_name_value + case 198: // value + case 202: // map_value + case 259: // db_type + case 352: // hr_mode + case 488: // duid_type + case 523: // ncr_protocol_value + case 530: // replace_client_name_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (that.value)); break; - case 177: // "boolean" + case 180: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (that.value)); break; - case 176: // "floating point" + case 179: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (that.value)); break; - case 175: // "integer" + case 178: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (that.value)); break; - case 174: // "constant string" + case 177: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (that.value)); break; @@ -286,29 +286,29 @@ namespace isc { namespace dhcp { { switch (that.type_get ()) { - case 195: // value - case 199: // map_value - case 253: // db_type - case 346: // hr_mode - case 482: // duid_type - case 517: // ncr_protocol_value - case 524: // replace_client_name_value + case 198: // value + case 202: // map_value + case 259: // db_type + case 352: // hr_mode + case 488: // duid_type + case 523: // ncr_protocol_value + case 530: // replace_client_name_value value.move< ElementPtr > (YY_MOVE (that.value)); break; - case 177: // "boolean" + case 180: // "boolean" value.move< bool > (YY_MOVE (that.value)); break; - case 176: // "floating point" + case 179: // "floating point" value.move< double > (YY_MOVE (that.value)); break; - case 175: // "integer" + case 178: // "integer" value.move< int64_t > (YY_MOVE (that.value)); break; - case 174: // "constant string" + case 177: // "constant string" value.move< std::string > (YY_MOVE (that.value)); break; @@ -327,29 +327,29 @@ namespace isc { namespace dhcp { state = that.state; switch (that.type_get ()) { - case 195: // value - case 199: // map_value - case 253: // db_type - case 346: // hr_mode - case 482: // duid_type - case 517: // ncr_protocol_value - case 524: // replace_client_name_value + case 198: // value + case 202: // map_value + case 259: // db_type + case 352: // hr_mode + case 488: // duid_type + case 523: // ncr_protocol_value + case 530: // replace_client_name_value value.move< ElementPtr > (that.value); break; - case 177: // "boolean" + case 180: // "boolean" value.move< bool > (that.value); break; - case 176: // "floating point" + case 179: // "floating point" value.move< double > (that.value); break; - case 175: // "integer" + case 178: // "integer" value.move< int64_t > (that.value); break; - case 174: // "constant string" + case 177: // "constant string" value.move< std::string > (that.value); break; @@ -390,79 +390,79 @@ namespace isc { namespace dhcp { << yysym.location << ": "; switch (yytype) { - case 174: // "constant string" + case 177: // "constant string" -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< std::string > (); } #line 398 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 175: // "integer" + case 178: // "integer" -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< int64_t > (); } #line 405 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 176: // "floating point" + case 179: // "floating point" -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< double > (); } #line 412 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 177: // "boolean" + case 180: // "boolean" -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< bool > (); } #line 419 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 195: // value + case 198: // value -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 426 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 199: // map_value + case 202: // map_value -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 433 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 253: // db_type + case 259: // db_type -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 440 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 346: // hr_mode + case 352: // hr_mode -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 447 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 482: // duid_type + case 488: // duid_type -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 454 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 517: // ncr_protocol_value + case 523: // ncr_protocol_value -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 461 "dhcp6_parser.cc" // lalr1.cc:672 break; - case 524: // replace_client_name_value + case 530: // replace_client_name_value -#line 253 "dhcp6_parser.yy" // lalr1.cc:672 +#line 256 "dhcp6_parser.yy" // lalr1.cc:672 { yyoutput << yysym.value.template as< ElementPtr > (); } #line 468 "dhcp6_parser.cc" // lalr1.cc:672 break; @@ -674,29 +674,29 @@ namespace isc { namespace dhcp { when using variants. */ switch (yyr1_[yyn]) { - case 195: // value - case 199: // map_value - case 253: // db_type - case 346: // hr_mode - case 482: // duid_type - case 517: // ncr_protocol_value - case 524: // replace_client_name_value + case 198: // value + case 202: // map_value + case 259: // db_type + case 352: // hr_mode + case 488: // duid_type + case 523: // ncr_protocol_value + case 530: // replace_client_name_value yylhs.value.emplace< ElementPtr > (); break; - case 177: // "boolean" + case 180: // "boolean" yylhs.value.emplace< bool > (); break; - case 176: // "floating point" + case 179: // "floating point" yylhs.value.emplace< double > (); break; - case 175: // "integer" + case 178: // "integer" yylhs.value.emplace< int64_t > (); break; - case 174: // "constant string" + case 177: // "constant string" yylhs.value.emplace< std::string > (); break; @@ -721,139 +721,139 @@ namespace isc { namespace dhcp { switch (yyn) { case 2: -#line 262 "dhcp6_parser.yy" // lalr1.cc:907 +#line 265 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.NO_KEYWORD; } #line 727 "dhcp6_parser.cc" // lalr1.cc:907 break; case 4: -#line 263 "dhcp6_parser.yy" // lalr1.cc:907 +#line 266 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.CONFIG; } #line 733 "dhcp6_parser.cc" // lalr1.cc:907 break; case 6: -#line 264 "dhcp6_parser.yy" // lalr1.cc:907 +#line 267 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DHCP6; } #line 739 "dhcp6_parser.cc" // lalr1.cc:907 break; case 8: -#line 265 "dhcp6_parser.yy" // lalr1.cc:907 +#line 268 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.INTERFACES_CONFIG; } #line 745 "dhcp6_parser.cc" // lalr1.cc:907 break; case 10: -#line 266 "dhcp6_parser.yy" // lalr1.cc:907 +#line 269 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.SUBNET6; } #line 751 "dhcp6_parser.cc" // lalr1.cc:907 break; case 12: -#line 267 "dhcp6_parser.yy" // lalr1.cc:907 +#line 270 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.POOLS; } #line 757 "dhcp6_parser.cc" // lalr1.cc:907 break; case 14: -#line 268 "dhcp6_parser.yy" // lalr1.cc:907 +#line 271 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.PD_POOLS; } #line 763 "dhcp6_parser.cc" // lalr1.cc:907 break; case 16: -#line 269 "dhcp6_parser.yy" // lalr1.cc:907 +#line 272 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.RESERVATIONS; } #line 769 "dhcp6_parser.cc" // lalr1.cc:907 break; case 18: -#line 270 "dhcp6_parser.yy" // lalr1.cc:907 +#line 273 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DHCP6; } #line 775 "dhcp6_parser.cc" // lalr1.cc:907 break; case 20: -#line 271 "dhcp6_parser.yy" // lalr1.cc:907 +#line 274 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.OPTION_DEF; } #line 781 "dhcp6_parser.cc" // lalr1.cc:907 break; case 22: -#line 272 "dhcp6_parser.yy" // lalr1.cc:907 +#line 275 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.OPTION_DATA; } #line 787 "dhcp6_parser.cc" // lalr1.cc:907 break; case 24: -#line 273 "dhcp6_parser.yy" // lalr1.cc:907 +#line 276 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.HOOKS_LIBRARIES; } #line 793 "dhcp6_parser.cc" // lalr1.cc:907 break; case 26: -#line 274 "dhcp6_parser.yy" // lalr1.cc:907 +#line 277 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.DHCP_DDNS; } #line 799 "dhcp6_parser.cc" // lalr1.cc:907 break; case 28: -#line 275 "dhcp6_parser.yy" // lalr1.cc:907 +#line 278 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.LOGGING; } #line 805 "dhcp6_parser.cc" // lalr1.cc:907 break; case 30: -#line 276 "dhcp6_parser.yy" // lalr1.cc:907 +#line 279 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.ctx_ = ctx.CONFIG_CONTROL; } #line 811 "dhcp6_parser.cc" // lalr1.cc:907 break; case 32: -#line 284 "dhcp6_parser.yy" // lalr1.cc:907 +#line 287 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); } #line 817 "dhcp6_parser.cc" // lalr1.cc:907 break; case 33: -#line 285 "dhcp6_parser.yy" // lalr1.cc:907 +#line 288 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); } #line 823 "dhcp6_parser.cc" // lalr1.cc:907 break; case 34: -#line 286 "dhcp6_parser.yy" // lalr1.cc:907 +#line 289 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); } #line 829 "dhcp6_parser.cc" // lalr1.cc:907 break; case 35: -#line 287 "dhcp6_parser.yy" // lalr1.cc:907 +#line 290 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); } #line 835 "dhcp6_parser.cc" // lalr1.cc:907 break; case 36: -#line 288 "dhcp6_parser.yy" // lalr1.cc:907 +#line 291 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new NullElement(ctx.loc2pos(yystack_[0].location))); } #line 841 "dhcp6_parser.cc" // lalr1.cc:907 break; case 37: -#line 289 "dhcp6_parser.yy" // lalr1.cc:907 +#line 292 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 847 "dhcp6_parser.cc" // lalr1.cc:907 break; case 38: -#line 290 "dhcp6_parser.yy" // lalr1.cc:907 +#line 293 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 853 "dhcp6_parser.cc" // lalr1.cc:907 break; case 39: -#line 293 "dhcp6_parser.yy" // lalr1.cc:907 +#line 296 "dhcp6_parser.yy" // lalr1.cc:907 { // Push back the JSON value on the stack ctx.stack_.push_back(yystack_[0].value.as< ElementPtr > ()); @@ -862,7 +862,7 @@ namespace isc { namespace dhcp { break; case 40: -#line 298 "dhcp6_parser.yy" // lalr1.cc:907 +#line 301 "dhcp6_parser.yy" // lalr1.cc:907 { // This code is executed when we're about to start parsing // the content of the map @@ -873,7 +873,7 @@ namespace isc { namespace dhcp { break; case 41: -#line 303 "dhcp6_parser.yy" // lalr1.cc:907 +#line 306 "dhcp6_parser.yy" // lalr1.cc:907 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -883,13 +883,13 @@ namespace isc { namespace dhcp { break; case 42: -#line 309 "dhcp6_parser.yy" // lalr1.cc:907 +#line 312 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ctx.stack_.back(); ctx.stack_.pop_back(); } #line 889 "dhcp6_parser.cc" // lalr1.cc:907 break; case 45: -#line 316 "dhcp6_parser.yy" // lalr1.cc:907 +#line 319 "dhcp6_parser.yy" // lalr1.cc:907 { // map containing a single entry ctx.stack_.back()->set(yystack_[2].value.as< std::string > (), yystack_[0].value.as< ElementPtr > ()); @@ -898,7 +898,7 @@ namespace isc { namespace dhcp { break; case 46: -#line 320 "dhcp6_parser.yy" // lalr1.cc:907 +#line 323 "dhcp6_parser.yy" // lalr1.cc:907 { // map consisting of a shorter map followed by // comma and string:value @@ -908,7 +908,7 @@ namespace isc { namespace dhcp { break; case 47: -#line 327 "dhcp6_parser.yy" // lalr1.cc:907 +#line 330 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(l); @@ -917,7 +917,7 @@ namespace isc { namespace dhcp { break; case 48: -#line 330 "dhcp6_parser.yy" // lalr1.cc:907 +#line 333 "dhcp6_parser.yy" // lalr1.cc:907 { // list parsing complete. Put any sanity checking here } @@ -925,7 +925,7 @@ namespace isc { namespace dhcp { break; case 51: -#line 338 "dhcp6_parser.yy" // lalr1.cc:907 +#line 341 "dhcp6_parser.yy" // lalr1.cc:907 { // List consisting of a single element. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -934,7 +934,7 @@ namespace isc { namespace dhcp { break; case 52: -#line 342 "dhcp6_parser.yy" // lalr1.cc:907 +#line 345 "dhcp6_parser.yy" // lalr1.cc:907 { // List ending with , and a value. ctx.stack_.back()->add(yystack_[0].value.as< ElementPtr > ()); @@ -943,7 +943,7 @@ namespace isc { namespace dhcp { break; case 53: -#line 349 "dhcp6_parser.yy" // lalr1.cc:907 +#line 352 "dhcp6_parser.yy" // lalr1.cc:907 { // List parsing about to start } @@ -951,7 +951,7 @@ namespace isc { namespace dhcp { break; case 54: -#line 351 "dhcp6_parser.yy" // lalr1.cc:907 +#line 354 "dhcp6_parser.yy" // lalr1.cc:907 { // list parsing complete. Put any sanity checking here //ctx.stack_.pop_back(); @@ -960,7 +960,7 @@ namespace isc { namespace dhcp { break; case 57: -#line 360 "dhcp6_parser.yy" // lalr1.cc:907 +#line 363 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -969,7 +969,7 @@ namespace isc { namespace dhcp { break; case 58: -#line 364 "dhcp6_parser.yy" // lalr1.cc:907 +#line 367 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(s); @@ -978,7 +978,7 @@ namespace isc { namespace dhcp { break; case 59: -#line 375 "dhcp6_parser.yy" // lalr1.cc:907 +#line 378 "dhcp6_parser.yy" // lalr1.cc:907 { const std::string& where = ctx.contextName(); const std::string& keyword = yystack_[1].value.as< std::string > (); @@ -989,7 +989,7 @@ namespace isc { namespace dhcp { break; case 60: -#line 385 "dhcp6_parser.yy" // lalr1.cc:907 +#line 388 "dhcp6_parser.yy" // lalr1.cc:907 { // This code is executed when we're about to start parsing // the content of the map @@ -1000,7 +1000,7 @@ namespace isc { namespace dhcp { break; case 61: -#line 390 "dhcp6_parser.yy" // lalr1.cc:907 +#line 393 "dhcp6_parser.yy" // lalr1.cc:907 { // map parsing completed. If we ever want to do any wrap up // (maybe some sanity checking), this would be the best place @@ -1013,7 +1013,7 @@ namespace isc { namespace dhcp { break; case 70: -#line 413 "dhcp6_parser.yy" // lalr1.cc:907 +#line 416 "dhcp6_parser.yy" // lalr1.cc:907 { // This code is executed when we're about to start parsing // the content of the map @@ -1026,7 +1026,7 @@ namespace isc { namespace dhcp { break; case 71: -#line 420 "dhcp6_parser.yy" // lalr1.cc:907 +#line 423 "dhcp6_parser.yy" // lalr1.cc:907 { // No global parameter is required ctx.stack_.pop_back(); @@ -1036,7 +1036,7 @@ namespace isc { namespace dhcp { break; case 72: -#line 428 "dhcp6_parser.yy" // lalr1.cc:907 +#line 431 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the Dhcp6 map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); @@ -1046,7 +1046,7 @@ namespace isc { namespace dhcp { break; case 73: -#line 432 "dhcp6_parser.yy" // lalr1.cc:907 +#line 435 "dhcp6_parser.yy" // lalr1.cc:907 { // No global parameter is required // parsing completed @@ -1054,16 +1054,16 @@ namespace isc { namespace dhcp { #line 1055 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 109: -#line 478 "dhcp6_parser.yy" // lalr1.cc:907 + case 112: +#line 484 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } #line 1063 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 110: -#line 480 "dhcp6_parser.yy" // lalr1.cc:907 + case 113: +#line 486 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr datadir(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data-directory", datadir); @@ -1072,8 +1072,8 @@ namespace isc { namespace dhcp { #line 1073 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 111: -#line 486 "dhcp6_parser.yy" // lalr1.cc:907 + case 114: +#line 492 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("preferred-lifetime", prf); @@ -1081,8 +1081,8 @@ namespace isc { namespace dhcp { #line 1082 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 112: -#line 491 "dhcp6_parser.yy" // lalr1.cc:907 + case 115: +#line 497 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("valid-lifetime", prf); @@ -1090,8 +1090,8 @@ namespace isc { namespace dhcp { #line 1091 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 113: -#line 496 "dhcp6_parser.yy" // lalr1.cc:907 + case 116: +#line 502 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("renew-timer", prf); @@ -1099,8 +1099,8 @@ namespace isc { namespace dhcp { #line 1100 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 114: -#line 501 "dhcp6_parser.yy" // lalr1.cc:907 + case 117: +#line 507 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rebind-timer", prf); @@ -1108,491 +1108,518 @@ namespace isc { namespace dhcp { #line 1109 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 115: -#line 506 "dhcp6_parser.yy" // lalr1.cc:907 + case 118: +#line 512 "dhcp6_parser.yy" // lalr1.cc:907 + { + ElementPtr ctt(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("calculate-tee-times", ctt); +} +#line 1118 "dhcp6_parser.cc" // lalr1.cc:907 + break; + + case 119: +#line 517 "dhcp6_parser.yy" // lalr1.cc:907 + { + ElementPtr t1(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("t1-percent", t1); +} +#line 1127 "dhcp6_parser.cc" // lalr1.cc:907 + break; + + case 120: +#line 522 "dhcp6_parser.yy" // lalr1.cc:907 + { + ElementPtr t2(new DoubleElement(yystack_[0].value.as< double > (), ctx.loc2pos(yystack_[0].location))); + ctx.stack_.back()->set("t2-percent", t2); +} +#line 1136 "dhcp6_parser.cc" // lalr1.cc:907 + break; + + case 121: +#line 527 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr dpp(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("decline-probation-period", dpp); } -#line 1118 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1145 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 116: -#line 511 "dhcp6_parser.yy" // lalr1.cc:907 + case 122: +#line 532 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1126 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1153 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 117: -#line 513 "dhcp6_parser.yy" // lalr1.cc:907 + case 123: +#line 534 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr stag(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-tag", stag); ctx.leave(); } -#line 1136 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1163 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 118: -#line 519 "dhcp6_parser.yy" // lalr1.cc:907 + case 124: +#line 540 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces-config", i); ctx.stack_.push_back(i); ctx.enter(ctx.INTERFACES_CONFIG); } -#line 1147 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1174 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 119: -#line 524 "dhcp6_parser.yy" // lalr1.cc:907 + case 125: +#line 545 "dhcp6_parser.yy" // lalr1.cc:907 { // No interfaces config param is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1157 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1184 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 120: -#line 530 "dhcp6_parser.yy" // lalr1.cc:907 + case 126: +#line 551 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the interfaces-config map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1167 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1194 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 121: -#line 534 "dhcp6_parser.yy" // lalr1.cc:907 + case 127: +#line 555 "dhcp6_parser.yy" // lalr1.cc:907 { // No interfaces config param is required // parsing completed } -#line 1176 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1203 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 129: -#line 550 "dhcp6_parser.yy" // lalr1.cc:907 + case 135: +#line 571 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interfaces", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1187 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1214 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 130: -#line 555 "dhcp6_parser.yy" // lalr1.cc:907 + case 136: +#line 576 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1196 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1223 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 131: -#line 560 "dhcp6_parser.yy" // lalr1.cc:907 + case 137: +#line 581 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("re-detect", b); } -#line 1205 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1232 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 132: -#line 566 "dhcp6_parser.yy" // lalr1.cc:907 + case 138: +#line 587 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lease-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.LEASE_DATABASE); } -#line 1216 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1243 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 133: -#line 571 "dhcp6_parser.yy" // lalr1.cc:907 + case 139: +#line 592 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 1227 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1254 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 134: -#line 578 "dhcp6_parser.yy" // lalr1.cc:907 + case 140: +#line 599 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-database", i); ctx.stack_.push_back(i); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1238 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1265 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 135: -#line 583 "dhcp6_parser.yy" // lalr1.cc:907 + case 141: +#line 604 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 1249 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1276 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 136: -#line 590 "dhcp6_parser.yy" // lalr1.cc:907 + case 142: +#line 611 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hosts-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOSTS_DATABASE); } -#line 1260 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1287 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 137: -#line 595 "dhcp6_parser.yy" // lalr1.cc:907 + case 143: +#line 616 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1269 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1296 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 142: -#line 608 "dhcp6_parser.yy" // lalr1.cc:907 + case 148: +#line 629 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1279 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1306 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 143: -#line 612 "dhcp6_parser.yy" // lalr1.cc:907 + case 149: +#line 633 "dhcp6_parser.yy" // lalr1.cc:907 { // The type parameter is required ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1289 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1316 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 166: -#line 644 "dhcp6_parser.yy" // lalr1.cc:907 + case 172: +#line 665 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.DATABASE_TYPE); } -#line 1297 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1324 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 167: -#line 646 "dhcp6_parser.yy" // lalr1.cc:907 + case 173: +#line 667 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1306 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1333 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 168: -#line 651 "dhcp6_parser.yy" // lalr1.cc:907 + case 174: +#line 672 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("memfile", ctx.loc2pos(yystack_[0].location))); } -#line 1312 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1339 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 169: -#line 652 "dhcp6_parser.yy" // lalr1.cc:907 + case 175: +#line 673 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("mysql", ctx.loc2pos(yystack_[0].location))); } -#line 1318 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1345 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 170: -#line 653 "dhcp6_parser.yy" // lalr1.cc:907 + case 176: +#line 674 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("postgresql", ctx.loc2pos(yystack_[0].location))); } -#line 1324 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1351 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 171: -#line 654 "dhcp6_parser.yy" // lalr1.cc:907 + case 177: +#line 675 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("cql", ctx.loc2pos(yystack_[0].location))); } -#line 1330 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1357 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 172: -#line 657 "dhcp6_parser.yy" // lalr1.cc:907 + case 178: +#line 678 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1338 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1365 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 173: -#line 659 "dhcp6_parser.yy" // lalr1.cc:907 + case 179: +#line 680 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr user(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("user", user); ctx.leave(); } -#line 1348 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1375 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 174: -#line 665 "dhcp6_parser.yy" // lalr1.cc:907 + case 180: +#line 686 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1356 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1383 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 175: -#line 667 "dhcp6_parser.yy" // lalr1.cc:907 + case 181: +#line 688 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr pwd(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("password", pwd); ctx.leave(); } -#line 1366 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1393 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 176: -#line 673 "dhcp6_parser.yy" // lalr1.cc:907 + case 182: +#line 694 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1374 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1401 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 177: -#line 675 "dhcp6_parser.yy" // lalr1.cc:907 + case 183: +#line 696 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr h(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host", h); ctx.leave(); } -#line 1384 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1411 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 178: -#line 681 "dhcp6_parser.yy" // lalr1.cc:907 + case 184: +#line 702 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr p(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("port", p); } -#line 1393 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1420 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 179: -#line 686 "dhcp6_parser.yy" // lalr1.cc:907 + case 185: +#line 707 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1401 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1428 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 180: -#line 688 "dhcp6_parser.yy" // lalr1.cc:907 + case 186: +#line 709 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr name(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("name", name); ctx.leave(); } -#line 1411 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1438 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 181: -#line 694 "dhcp6_parser.yy" // lalr1.cc:907 + case 187: +#line 715 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("persist", n); } -#line 1420 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1447 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 182: -#line 699 "dhcp6_parser.yy" // lalr1.cc:907 + case 188: +#line 720 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("lfc-interval", n); } -#line 1429 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1456 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 183: -#line 704 "dhcp6_parser.yy" // lalr1.cc:907 + case 189: +#line 725 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("readonly", n); } -#line 1438 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1465 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 184: -#line 709 "dhcp6_parser.yy" // lalr1.cc:907 + case 190: +#line 730 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("connect-timeout", n); } -#line 1447 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1474 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 185: -#line 714 "dhcp6_parser.yy" // lalr1.cc:907 + case 191: +#line 735 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reconnect-wait-time", n); } -#line 1456 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1483 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 186: -#line 719 "dhcp6_parser.yy" // lalr1.cc:907 + case 192: +#line 740 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("request-timeout", n); } -#line 1465 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1492 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 187: -#line 724 "dhcp6_parser.yy" // lalr1.cc:907 + case 193: +#line 745 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-keepalive", n); } -#line 1474 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1501 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 188: -#line 729 "dhcp6_parser.yy" // lalr1.cc:907 + case 194: +#line 750 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("tcp-nodelay", n); } -#line 1483 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1510 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 189: -#line 734 "dhcp6_parser.yy" // lalr1.cc:907 + case 195: +#line 755 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1491 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1518 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 190: -#line 736 "dhcp6_parser.yy" // lalr1.cc:907 + case 196: +#line 757 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr cp(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("contact-points", cp); ctx.leave(); } -#line 1501 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1528 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 191: -#line 742 "dhcp6_parser.yy" // lalr1.cc:907 + case 197: +#line 763 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr n(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reconnect-tries", n); } -#line 1510 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1537 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 192: -#line 747 "dhcp6_parser.yy" // lalr1.cc:907 + case 198: +#line 768 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1518 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1545 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 193: -#line 749 "dhcp6_parser.yy" // lalr1.cc:907 + case 199: +#line 770 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr ks(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("keyspace", ks); ctx.leave(); } -#line 1528 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1555 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 194: -#line 755 "dhcp6_parser.yy" // lalr1.cc:907 + case 200: +#line 776 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1536 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1563 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 195: -#line 757 "dhcp6_parser.yy" // lalr1.cc:907 + case 201: +#line 778 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("consistency", c); ctx.leave(); } -#line 1546 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1573 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 196: -#line 763 "dhcp6_parser.yy" // lalr1.cc:907 + case 202: +#line 784 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1554 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1581 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 197: -#line 765 "dhcp6_parser.yy" // lalr1.cc:907 + case 203: +#line 786 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr c(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("serial-consistency", c); ctx.leave(); } -#line 1564 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1591 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 198: -#line 771 "dhcp6_parser.yy" // lalr1.cc:907 + case 204: +#line 792 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sanity-checks", m); ctx.stack_.push_back(m); ctx.enter(ctx.SANITY_CHECKS); } -#line 1575 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1602 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 199: -#line 776 "dhcp6_parser.yy" // lalr1.cc:907 + case 205: +#line 797 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1584 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1611 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 203: -#line 786 "dhcp6_parser.yy" // lalr1.cc:907 + case 209: +#line 807 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1592 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1619 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 204: -#line 788 "dhcp6_parser.yy" // lalr1.cc:907 + case 210: +#line 809 "dhcp6_parser.yy" // lalr1.cc:907 { if ( (string(yystack_[0].value.as< std::string > ()) == "none") || @@ -1608,307 +1635,307 @@ namespace isc { namespace dhcp { ", supported values are: none, warn, fix, fix-del, del"); } } -#line 1612 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1639 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 205: -#line 804 "dhcp6_parser.yy" // lalr1.cc:907 + case 211: +#line 825 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("mac-sources", l); ctx.stack_.push_back(l); ctx.enter(ctx.MAC_SOURCES); } -#line 1623 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1650 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 206: -#line 809 "dhcp6_parser.yy" // lalr1.cc:907 + case 212: +#line 830 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1632 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1659 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 211: -#line 822 "dhcp6_parser.yy" // lalr1.cc:907 + case 217: +#line 843 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr duid(new StringElement("duid", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1641 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1668 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 212: -#line 827 "dhcp6_parser.yy" // lalr1.cc:907 + case 218: +#line 848 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr duid(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(duid); } -#line 1650 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1677 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 213: -#line 832 "dhcp6_parser.yy" // lalr1.cc:907 + case 219: +#line 853 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("host-reservation-identifiers", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOST_RESERVATION_IDENTIFIERS); } -#line 1661 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1688 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 214: -#line 837 "dhcp6_parser.yy" // lalr1.cc:907 + case 220: +#line 858 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1670 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1697 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 220: -#line 851 "dhcp6_parser.yy" // lalr1.cc:907 + case 226: +#line 872 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr hwaddr(new StringElement("hw-address", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(hwaddr); } -#line 1679 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1706 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 221: -#line 856 "dhcp6_parser.yy" // lalr1.cc:907 + case 227: +#line 877 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr flex_id(new StringElement("flex-id", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(flex_id); } -#line 1688 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1715 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 222: -#line 863 "dhcp6_parser.yy" // lalr1.cc:907 + case 228: +#line 884 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay-supplied-options", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 1699 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1726 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 223: -#line 868 "dhcp6_parser.yy" // lalr1.cc:907 + case 229: +#line 889 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1708 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1735 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 224: -#line 873 "dhcp6_parser.yy" // lalr1.cc:907 + case 230: +#line 894 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hooks-libraries", l); ctx.stack_.push_back(l); ctx.enter(ctx.HOOKS_LIBRARIES); } -#line 1719 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1746 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 225: -#line 878 "dhcp6_parser.yy" // lalr1.cc:907 + case 231: +#line 899 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1728 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1755 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 230: -#line 891 "dhcp6_parser.yy" // lalr1.cc:907 + case 236: +#line 912 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1738 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1765 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 231: -#line 895 "dhcp6_parser.yy" // lalr1.cc:907 + case 237: +#line 916 "dhcp6_parser.yy" // lalr1.cc:907 { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1748 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1775 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 232: -#line 901 "dhcp6_parser.yy" // lalr1.cc:907 + case 238: +#line 922 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the hooks-libraries list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1758 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1785 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 233: -#line 905 "dhcp6_parser.yy" // lalr1.cc:907 + case 239: +#line 926 "dhcp6_parser.yy" // lalr1.cc:907 { // The library hooks parameter is required ctx.require("library", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1768 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1795 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 239: -#line 920 "dhcp6_parser.yy" // lalr1.cc:907 + case 245: +#line 941 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1776 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1803 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 240: -#line 922 "dhcp6_parser.yy" // lalr1.cc:907 + case 246: +#line 943 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr lib(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("library", lib); ctx.leave(); } -#line 1786 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1813 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 241: -#line 928 "dhcp6_parser.yy" // lalr1.cc:907 + case 247: +#line 949 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1794 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1821 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 242: -#line 930 "dhcp6_parser.yy" // lalr1.cc:907 + case 248: +#line 951 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("parameters", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 1803 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1830 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 243: -#line 936 "dhcp6_parser.yy" // lalr1.cc:907 + case 249: +#line 957 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("expired-leases-processing", m); ctx.stack_.push_back(m); ctx.enter(ctx.EXPIRED_LEASES_PROCESSING); } -#line 1814 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1841 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 244: -#line 941 "dhcp6_parser.yy" // lalr1.cc:907 + case 250: +#line 962 "dhcp6_parser.yy" // lalr1.cc:907 { // No expired lease parameter is required ctx.stack_.pop_back(); ctx.leave(); } -#line 1824 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1851 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 253: -#line 959 "dhcp6_parser.yy" // lalr1.cc:907 + case 259: +#line 980 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reclaim-timer-wait-time", value); } -#line 1833 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1860 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 254: -#line 964 "dhcp6_parser.yy" // lalr1.cc:907 + case 260: +#line 985 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush-reclaimed-timer-wait-time", value); } -#line 1842 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1869 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 255: -#line 969 "dhcp6_parser.yy" // lalr1.cc:907 + case 261: +#line 990 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hold-reclaimed-time", value); } -#line 1851 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1878 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 256: -#line 974 "dhcp6_parser.yy" // lalr1.cc:907 + case 262: +#line 995 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-leases", value); } -#line 1860 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1887 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 257: -#line 979 "dhcp6_parser.yy" // lalr1.cc:907 + case 263: +#line 1000 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-reclaim-time", value); } -#line 1869 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1896 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 258: -#line 984 "dhcp6_parser.yy" // lalr1.cc:907 + case 264: +#line 1005 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr value(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("unwarned-reclaim-cycles", value); } -#line 1878 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1905 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 259: -#line 992 "dhcp6_parser.yy" // lalr1.cc:907 + case 265: +#line 1013 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet6", l); ctx.stack_.push_back(l); ctx.enter(ctx.SUBNET6); } -#line 1889 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1916 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 260: -#line 997 "dhcp6_parser.yy" // lalr1.cc:907 + case 266: +#line 1018 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 1898 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1925 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 265: -#line 1017 "dhcp6_parser.yy" // lalr1.cc:907 + case 271: +#line 1038 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 1908 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1935 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 266: -#line 1021 "dhcp6_parser.yy" // lalr1.cc:907 + case 272: +#line 1042 "dhcp6_parser.yy" // lalr1.cc:907 { // Once we reached this place, the subnet parsing is now complete. // If we want to, we can implement default values here. @@ -1930,267 +1957,267 @@ namespace isc { namespace dhcp { ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 1934 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1961 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 267: -#line 1043 "dhcp6_parser.yy" // lalr1.cc:907 + case 273: +#line 1064 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the subnet6 list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 1944 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1971 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 268: -#line 1047 "dhcp6_parser.yy" // lalr1.cc:907 + case 274: +#line 1068 "dhcp6_parser.yy" // lalr1.cc:907 { // The subnet subnet6 parameter is required ctx.require("subnet", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 1954 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1981 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 291: -#line 1081 "dhcp6_parser.yy" // lalr1.cc:907 + case 300: +#line 1105 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1962 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1989 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 292: -#line 1083 "dhcp6_parser.yy" // lalr1.cc:907 + case 301: +#line 1107 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr subnet(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("subnet", subnet); ctx.leave(); } -#line 1972 "dhcp6_parser.cc" // lalr1.cc:907 +#line 1999 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 293: -#line 1089 "dhcp6_parser.yy" // lalr1.cc:907 + case 302: +#line 1113 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1980 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2007 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 294: -#line 1091 "dhcp6_parser.yy" // lalr1.cc:907 + case 303: +#line 1115 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface", iface); ctx.leave(); } -#line 1990 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2017 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 295: -#line 1097 "dhcp6_parser.yy" // lalr1.cc:907 + case 304: +#line 1121 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 1998 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2025 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 296: -#line 1099 "dhcp6_parser.yy" // lalr1.cc:907 + case 305: +#line 1123 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr iface(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("interface-id", iface); ctx.leave(); } -#line 2008 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2035 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 297: -#line 1105 "dhcp6_parser.yy" // lalr1.cc:907 + case 306: +#line 1129 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2016 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2043 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 298: -#line 1107 "dhcp6_parser.yy" // lalr1.cc:907 + case 307: +#line 1131 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr cls(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-class", cls); ctx.leave(); } -#line 2026 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2053 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 299: -#line 1113 "dhcp6_parser.yy" // lalr1.cc:907 + case 308: +#line 1137 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr c(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("require-client-classes", c); ctx.stack_.push_back(c); ctx.enter(ctx.NO_KEYWORD); } -#line 2037 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2064 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 300: -#line 1118 "dhcp6_parser.yy" // lalr1.cc:907 + case 309: +#line 1142 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2046 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2073 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 301: -#line 1123 "dhcp6_parser.yy" // lalr1.cc:907 + case 310: +#line 1147 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.RESERVATION_MODE); } -#line 2054 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2081 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 302: -#line 1125 "dhcp6_parser.yy" // lalr1.cc:907 + case 311: +#line 1149 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("reservation-mode", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 2063 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2090 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 303: -#line 1130 "dhcp6_parser.yy" // lalr1.cc:907 + case 312: +#line 1154 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("disabled", ctx.loc2pos(yystack_[0].location))); } -#line 2069 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2096 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 304: -#line 1131 "dhcp6_parser.yy" // lalr1.cc:907 + case 313: +#line 1155 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("out-of-pool", ctx.loc2pos(yystack_[0].location))); } -#line 2075 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2102 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 305: -#line 1132 "dhcp6_parser.yy" // lalr1.cc:907 + case 314: +#line 1156 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("global", ctx.loc2pos(yystack_[0].location))); } -#line 2081 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2108 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 306: -#line 1133 "dhcp6_parser.yy" // lalr1.cc:907 + case 315: +#line 1157 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("all", ctx.loc2pos(yystack_[0].location))); } -#line 2087 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2114 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 307: -#line 1136 "dhcp6_parser.yy" // lalr1.cc:907 + case 316: +#line 1160 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr id(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("id", id); } -#line 2096 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2123 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 308: -#line 1141 "dhcp6_parser.yy" // lalr1.cc:907 + case 317: +#line 1165 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr rc(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("rapid-commit", rc); } -#line 2105 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2132 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 309: -#line 1149 "dhcp6_parser.yy" // lalr1.cc:907 + case 318: +#line 1173 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("shared-networks", l); ctx.stack_.push_back(l); ctx.enter(ctx.SHARED_NETWORK); } -#line 2116 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2143 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 310: -#line 1154 "dhcp6_parser.yy" // lalr1.cc:907 + case 319: +#line 1178 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2125 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2152 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 315: -#line 1169 "dhcp6_parser.yy" // lalr1.cc:907 + case 324: +#line 1193 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2135 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2162 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 316: -#line 1173 "dhcp6_parser.yy" // lalr1.cc:907 + case 325: +#line 1197 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 2143 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2170 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 336: -#line 1204 "dhcp6_parser.yy" // lalr1.cc:907 + case 348: +#line 1231 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-def", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DEF); } -#line 2154 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2181 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 337: -#line 1209 "dhcp6_parser.yy" // lalr1.cc:907 + case 349: +#line 1236 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2163 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2190 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 338: -#line 1217 "dhcp6_parser.yy" // lalr1.cc:907 + case 350: +#line 1244 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2172 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2199 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 339: -#line 1220 "dhcp6_parser.yy" // lalr1.cc:907 + case 351: +#line 1247 "dhcp6_parser.yy" // lalr1.cc:907 { // parsing completed } -#line 2180 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2207 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 344: -#line 1236 "dhcp6_parser.yy" // lalr1.cc:907 + case 356: +#line 1263 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2190 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2217 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 345: -#line 1240 "dhcp6_parser.yy" // lalr1.cc:907 + case 357: +#line 1267 "dhcp6_parser.yy" // lalr1.cc:907 { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2198,21 +2225,21 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2202 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2229 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 346: -#line 1251 "dhcp6_parser.yy" // lalr1.cc:907 + case 358: +#line 1278 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the option-def list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2212 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2239 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 347: -#line 1255 "dhcp6_parser.yy" // lalr1.cc:907 + case 359: +#line 1282 "dhcp6_parser.yy" // lalr1.cc:907 { // The name, code and type option def parameters are required. ctx.require("name", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2220,280 +2247,280 @@ namespace isc { namespace dhcp { ctx.require("type", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2224 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2251 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 363: -#line 1287 "dhcp6_parser.yy" // lalr1.cc:907 + case 375: +#line 1314 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr code(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("code", code); } -#line 2233 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2260 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 365: -#line 1294 "dhcp6_parser.yy" // lalr1.cc:907 + case 377: +#line 1321 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2241 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2268 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 366: -#line 1296 "dhcp6_parser.yy" // lalr1.cc:907 + case 378: +#line 1323 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("type", prf); ctx.leave(); } -#line 2251 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2278 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 367: -#line 1302 "dhcp6_parser.yy" // lalr1.cc:907 + case 379: +#line 1329 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2259 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2286 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 368: -#line 1304 "dhcp6_parser.yy" // lalr1.cc:907 + case 380: +#line 1331 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2269 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2296 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 369: -#line 1310 "dhcp6_parser.yy" // lalr1.cc:907 + case 381: +#line 1337 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2277 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2304 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 370: -#line 1312 "dhcp6_parser.yy" // lalr1.cc:907 + case 382: +#line 1339 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr space(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("space", space); ctx.leave(); } -#line 2287 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2314 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 372: -#line 1320 "dhcp6_parser.yy" // lalr1.cc:907 + case 384: +#line 1347 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2295 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2322 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 373: -#line 1322 "dhcp6_parser.yy" // lalr1.cc:907 + case 385: +#line 1349 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr encap(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("encapsulate", encap); ctx.leave(); } -#line 2305 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2332 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 374: -#line 1328 "dhcp6_parser.yy" // lalr1.cc:907 + case 386: +#line 1355 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr array(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("array", array); } -#line 2314 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2341 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 375: -#line 1337 "dhcp6_parser.yy" // lalr1.cc:907 + case 387: +#line 1364 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("option-data", l); ctx.stack_.push_back(l); ctx.enter(ctx.OPTION_DATA); } -#line 2325 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2352 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 376: -#line 1342 "dhcp6_parser.yy" // lalr1.cc:907 + case 388: +#line 1369 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2334 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2361 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 381: -#line 1361 "dhcp6_parser.yy" // lalr1.cc:907 + case 393: +#line 1388 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2344 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2371 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 382: -#line 1365 "dhcp6_parser.yy" // lalr1.cc:907 + case 394: +#line 1392 "dhcp6_parser.yy" // lalr1.cc:907 { /// @todo: the code or name parameters are required. ctx.stack_.pop_back(); } -#line 2353 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2380 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 383: -#line 1373 "dhcp6_parser.yy" // lalr1.cc:907 + case 395: +#line 1400 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the option-data list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2363 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2390 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 384: -#line 1377 "dhcp6_parser.yy" // lalr1.cc:907 + case 396: +#line 1404 "dhcp6_parser.yy" // lalr1.cc:907 { /// @todo: the code or name parameters are required. // parsing completed } -#line 2372 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2399 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 399: -#line 1410 "dhcp6_parser.yy" // lalr1.cc:907 + case 411: +#line 1437 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2380 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2407 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 400: -#line 1412 "dhcp6_parser.yy" // lalr1.cc:907 + case 412: +#line 1439 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr data(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("data", data); ctx.leave(); } -#line 2390 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2417 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 403: -#line 1422 "dhcp6_parser.yy" // lalr1.cc:907 + case 415: +#line 1449 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr space(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("csv-format", space); } -#line 2399 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2426 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 404: -#line 1427 "dhcp6_parser.yy" // lalr1.cc:907 + case 416: +#line 1454 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr persist(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("always-send", persist); } -#line 2408 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2435 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 405: -#line 1435 "dhcp6_parser.yy" // lalr1.cc:907 + case 417: +#line 1462 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.POOLS); } -#line 2419 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2446 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 406: -#line 1440 "dhcp6_parser.yy" // lalr1.cc:907 + case 418: +#line 1467 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2428 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2455 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 411: -#line 1455 "dhcp6_parser.yy" // lalr1.cc:907 + case 423: +#line 1482 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2438 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2465 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 412: -#line 1459 "dhcp6_parser.yy" // lalr1.cc:907 + case 424: +#line 1486 "dhcp6_parser.yy" // lalr1.cc:907 { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2448 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2475 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 413: -#line 1465 "dhcp6_parser.yy" // lalr1.cc:907 + case 425: +#line 1492 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2458 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2485 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 414: -#line 1469 "dhcp6_parser.yy" // lalr1.cc:907 + case 426: +#line 1496 "dhcp6_parser.yy" // lalr1.cc:907 { // The pool parameter is required. ctx.require("pool", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); } -#line 2467 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2494 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 424: -#line 1487 "dhcp6_parser.yy" // lalr1.cc:907 + case 436: +#line 1514 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2475 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2502 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 425: -#line 1489 "dhcp6_parser.yy" // lalr1.cc:907 + case 437: +#line 1516 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr pool(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pool", pool); ctx.leave(); } -#line 2485 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2512 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 426: -#line 1495 "dhcp6_parser.yy" // lalr1.cc:907 + case 438: +#line 1522 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2493 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2520 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 427: -#line 1497 "dhcp6_parser.yy" // lalr1.cc:907 + case 439: +#line 1524 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context = yystack_[0].value.as< ElementPtr > (); @@ -2516,19 +2543,19 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2520 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2547 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 428: -#line 1520 "dhcp6_parser.yy" // lalr1.cc:907 + case 440: +#line 1547 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2528 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2555 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 429: -#line 1522 "dhcp6_parser.yy" // lalr1.cc:907 + case 441: +#line 1549 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr parent = ctx.stack_.back(); ElementPtr user_context(new MapElement(ctx.loc2pos(yystack_[3].location))); @@ -2553,41 +2580,41 @@ namespace isc { namespace dhcp { parent->set("user-context", user_context); ctx.leave(); } -#line 2557 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2584 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 430: -#line 1550 "dhcp6_parser.yy" // lalr1.cc:907 + case 442: +#line 1577 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("pd-pools", l); ctx.stack_.push_back(l); ctx.enter(ctx.PD_POOLS); } -#line 2568 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2595 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 431: -#line 1555 "dhcp6_parser.yy" // lalr1.cc:907 + case 443: +#line 1582 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2577 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2604 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 436: -#line 1570 "dhcp6_parser.yy" // lalr1.cc:907 + case 448: +#line 1597 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2587 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2614 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 437: -#line 1574 "dhcp6_parser.yy" // lalr1.cc:907 + case 449: +#line 1601 "dhcp6_parser.yy" // lalr1.cc:907 { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2595,21 +2622,21 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); ctx.stack_.pop_back(); } -#line 2599 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2626 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 438: -#line 1582 "dhcp6_parser.yy" // lalr1.cc:907 + case 450: +#line 1609 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the pd-pool list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2609 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2636 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 439: -#line 1586 "dhcp6_parser.yy" // lalr1.cc:907 + case 451: +#line 1613 "dhcp6_parser.yy" // lalr1.cc:907 { // The prefix, prefix len and delegated len parameters are required. ctx.require("prefix", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); @@ -2617,544 +2644,544 @@ namespace isc { namespace dhcp { ctx.require("delegated-len", ctx.loc2pos(yystack_[3].location), ctx.loc2pos(yystack_[0].location)); // parsing completed } -#line 2621 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2648 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 453: -#line 1611 "dhcp6_parser.yy" // lalr1.cc:907 + case 465: +#line 1638 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2629 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2656 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 454: -#line 1613 "dhcp6_parser.yy" // lalr1.cc:907 + case 466: +#line 1640 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix", prf); ctx.leave(); } -#line 2639 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2666 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 455: -#line 1619 "dhcp6_parser.yy" // lalr1.cc:907 + case 467: +#line 1646 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefix-len", prf); } -#line 2648 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2675 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 456: -#line 1624 "dhcp6_parser.yy" // lalr1.cc:907 + case 468: +#line 1651 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2656 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2683 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 457: -#line 1626 "dhcp6_parser.yy" // lalr1.cc:907 + case 469: +#line 1653 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix", prf); ctx.leave(); } -#line 2666 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2693 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 458: -#line 1632 "dhcp6_parser.yy" // lalr1.cc:907 + case 470: +#line 1659 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr prf(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("excluded-prefix-len", prf); } -#line 2675 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2702 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 459: -#line 1637 "dhcp6_parser.yy" // lalr1.cc:907 + case 471: +#line 1664 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr deleg(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("delegated-len", deleg); } -#line 2684 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2711 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 460: -#line 1645 "dhcp6_parser.yy" // lalr1.cc:907 + case 472: +#line 1672 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("reservations", l); ctx.stack_.push_back(l); ctx.enter(ctx.RESERVATIONS); } -#line 2695 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2722 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 461: -#line 1650 "dhcp6_parser.yy" // lalr1.cc:907 + case 473: +#line 1677 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2704 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2731 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 466: -#line 1663 "dhcp6_parser.yy" // lalr1.cc:907 + case 478: +#line 1690 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2714 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2741 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 467: -#line 1667 "dhcp6_parser.yy" // lalr1.cc:907 + case 479: +#line 1694 "dhcp6_parser.yy" // lalr1.cc:907 { /// @todo: an identifier parameter is required. ctx.stack_.pop_back(); } -#line 2723 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2750 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 468: -#line 1672 "dhcp6_parser.yy" // lalr1.cc:907 + case 480: +#line 1699 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the reservations list entry map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 2733 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2760 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 469: -#line 1676 "dhcp6_parser.yy" // lalr1.cc:907 + case 481: +#line 1703 "dhcp6_parser.yy" // lalr1.cc:907 { /// @todo: an identifier parameter is required. // parsing completed } -#line 2742 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2769 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 485: -#line 1703 "dhcp6_parser.yy" // lalr1.cc:907 + case 497: +#line 1730 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ip-addresses", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2753 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2780 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 486: -#line 1708 "dhcp6_parser.yy" // lalr1.cc:907 + case 498: +#line 1735 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2762 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2789 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 487: -#line 1713 "dhcp6_parser.yy" // lalr1.cc:907 + case 499: +#line 1740 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("prefixes", l); ctx.stack_.push_back(l); ctx.enter(ctx.NO_KEYWORD); } -#line 2773 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2800 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 488: -#line 1718 "dhcp6_parser.yy" // lalr1.cc:907 + case 500: +#line 1745 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2782 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2809 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 489: -#line 1723 "dhcp6_parser.yy" // lalr1.cc:907 + case 501: +#line 1750 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2790 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2817 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 490: -#line 1725 "dhcp6_parser.yy" // lalr1.cc:907 + case 502: +#line 1752 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr d(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("duid", d); ctx.leave(); } -#line 2800 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2827 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 491: -#line 1731 "dhcp6_parser.yy" // lalr1.cc:907 + case 503: +#line 1758 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2808 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2835 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 492: -#line 1733 "dhcp6_parser.yy" // lalr1.cc:907 + case 504: +#line 1760 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2818 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2845 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 493: -#line 1739 "dhcp6_parser.yy" // lalr1.cc:907 + case 505: +#line 1766 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2826 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2853 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 494: -#line 1741 "dhcp6_parser.yy" // lalr1.cc:907 + case 506: +#line 1768 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr host(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname", host); ctx.leave(); } -#line 2836 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2863 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 495: -#line 1747 "dhcp6_parser.yy" // lalr1.cc:907 + case 507: +#line 1774 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2844 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2871 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 496: -#line 1749 "dhcp6_parser.yy" // lalr1.cc:907 + case 508: +#line 1776 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2854 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2881 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 497: -#line 1755 "dhcp6_parser.yy" // lalr1.cc:907 + case 509: +#line 1782 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2865 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2892 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 498: -#line 1760 "dhcp6_parser.yy" // lalr1.cc:907 + case 510: +#line 1787 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2874 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2901 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 499: -#line 1768 "dhcp6_parser.yy" // lalr1.cc:907 + case 511: +#line 1795 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("relay", m); ctx.stack_.push_back(m); ctx.enter(ctx.RELAY); } -#line 2885 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2912 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 500: -#line 1773 "dhcp6_parser.yy" // lalr1.cc:907 + case 512: +#line 1800 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2894 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2921 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 503: -#line 1782 "dhcp6_parser.yy" // lalr1.cc:907 + case 515: +#line 1809 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2902 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2929 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 504: -#line 1784 "dhcp6_parser.yy" // lalr1.cc:907 + case 516: +#line 1811 "dhcp6_parser.yy" // lalr1.cc:907 { 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 2912 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2939 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 505: -#line 1793 "dhcp6_parser.yy" // lalr1.cc:907 + case 517: +#line 1820 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("client-classes", l); ctx.stack_.push_back(l); ctx.enter(ctx.CLIENT_CLASSES); } -#line 2923 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2950 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 506: -#line 1798 "dhcp6_parser.yy" // lalr1.cc:907 + case 518: +#line 1825 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 2932 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2959 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 509: -#line 1807 "dhcp6_parser.yy" // lalr1.cc:907 + case 521: +#line 1834 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 2942 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2969 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 510: -#line 1811 "dhcp6_parser.yy" // lalr1.cc:907 + case 522: +#line 1838 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 2952 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2979 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 523: -#line 1836 "dhcp6_parser.yy" // lalr1.cc:907 + case 535: +#line 1863 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 2960 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2987 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 524: -#line 1838 "dhcp6_parser.yy" // lalr1.cc:907 + case 536: +#line 1865 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr test(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("test", test); ctx.leave(); } -#line 2970 "dhcp6_parser.cc" // lalr1.cc:907 +#line 2997 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 525: -#line 1844 "dhcp6_parser.yy" // lalr1.cc:907 + case 537: +#line 1871 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("only-if-required", b); } -#line 2979 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3006 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 526: -#line 1852 "dhcp6_parser.yy" // lalr1.cc:907 + case 538: +#line 1879 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-id", m); ctx.stack_.push_back(m); ctx.enter(ctx.SERVER_ID); } -#line 2990 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3017 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 527: -#line 1857 "dhcp6_parser.yy" // lalr1.cc:907 + case 539: +#line 1884 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 3001 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3028 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 539: -#line 1879 "dhcp6_parser.yy" // lalr1.cc:907 + case 551: +#line 1906 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.DUID_TYPE); } -#line 3009 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3036 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 540: -#line 1881 "dhcp6_parser.yy" // lalr1.cc:907 + case 552: +#line 1908 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("type", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3018 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3045 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 541: -#line 1886 "dhcp6_parser.yy" // lalr1.cc:907 + case 553: +#line 1913 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LLT", ctx.loc2pos(yystack_[0].location))); } -#line 3024 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3051 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 542: -#line 1887 "dhcp6_parser.yy" // lalr1.cc:907 + case 554: +#line 1914 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("EN", ctx.loc2pos(yystack_[0].location))); } -#line 3030 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3057 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 543: -#line 1888 "dhcp6_parser.yy" // lalr1.cc:907 + case 555: +#line 1915 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("LL", ctx.loc2pos(yystack_[0].location))); } -#line 3036 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3063 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 544: -#line 1891 "dhcp6_parser.yy" // lalr1.cc:907 + case 556: +#line 1918 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr htype(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("htype", htype); } -#line 3045 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3072 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 545: -#line 1896 "dhcp6_parser.yy" // lalr1.cc:907 + case 557: +#line 1923 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3053 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3080 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 546: -#line 1898 "dhcp6_parser.yy" // lalr1.cc:907 + case 558: +#line 1925 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr id(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("identifier", id); ctx.leave(); } -#line 3063 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3090 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 547: -#line 1904 "dhcp6_parser.yy" // lalr1.cc:907 + case 559: +#line 1931 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("time", time); } -#line 3072 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3099 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 548: -#line 1909 "dhcp6_parser.yy" // lalr1.cc:907 + case 560: +#line 1936 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enterprise-id", time); } -#line 3081 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3108 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 549: -#line 1916 "dhcp6_parser.yy" // lalr1.cc:907 + case 561: +#line 1943 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr time(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp4o6-port", time); } -#line 3090 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3117 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 550: -#line 1923 "dhcp6_parser.yy" // lalr1.cc:907 + case 562: +#line 1950 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("control-socket", m); ctx.stack_.push_back(m); ctx.enter(ctx.CONTROL_SOCKET); } -#line 3101 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3128 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 551: -#line 1928 "dhcp6_parser.yy" // lalr1.cc:907 + case 563: +#line 1955 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3110 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3137 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 559: -#line 1944 "dhcp6_parser.yy" // lalr1.cc:907 + case 571: +#line 1971 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3118 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3145 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 560: -#line 1946 "dhcp6_parser.yy" // lalr1.cc:907 + case 572: +#line 1973 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr stype(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("socket-type", stype); ctx.leave(); } -#line 3128 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3155 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 561: -#line 1952 "dhcp6_parser.yy" // lalr1.cc:907 + case 573: +#line 1979 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3136 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3163 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 562: -#line 1954 "dhcp6_parser.yy" // lalr1.cc:907 + case 574: +#line 1981 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3146 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3173 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 563: -#line 1962 "dhcp6_parser.yy" // lalr1.cc:907 + case 575: +#line 1989 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3154 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3181 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 564: -#line 1964 "dhcp6_parser.yy" // lalr1.cc:907 + case 576: +#line 1991 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr qc = yystack_[0].value.as< ElementPtr > (); ctx.stack_.back()->set("dhcp-queue-control", qc); @@ -3190,626 +3217,626 @@ namespace isc { namespace dhcp { ctx.leave(); } -#line 3194 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3221 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 565: -#line 2002 "dhcp6_parser.yy" // lalr1.cc:907 + case 577: +#line 2029 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("dhcp-ddns", m); ctx.stack_.push_back(m); ctx.enter(ctx.DHCP_DDNS); } -#line 3205 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3232 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 566: -#line 2007 "dhcp6_parser.yy" // lalr1.cc:907 + case 578: +#line 2034 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 3216 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3243 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 567: -#line 2014 "dhcp6_parser.yy" // lalr1.cc:907 + case 579: +#line 2041 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the dhcp-ddns map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3226 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3253 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 568: -#line 2018 "dhcp6_parser.yy" // lalr1.cc:907 + case 580: +#line 2045 "dhcp6_parser.yy" // lalr1.cc:907 { // 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 3236 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3263 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 589: -#line 2048 "dhcp6_parser.yy" // lalr1.cc:907 + case 601: +#line 2075 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("enable-updates", b); } -#line 3245 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3272 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 590: -#line 2053 "dhcp6_parser.yy" // lalr1.cc:907 + case 602: +#line 2080 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3253 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3280 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 591: -#line 2055 "dhcp6_parser.yy" // lalr1.cc:907 + case 603: +#line 2082 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("qualifying-suffix", s); ctx.leave(); } -#line 3263 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3290 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 592: -#line 2061 "dhcp6_parser.yy" // lalr1.cc:907 + case 604: +#line 2088 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3271 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3298 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 593: -#line 2063 "dhcp6_parser.yy" // lalr1.cc:907 + case 605: +#line 2090 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3281 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3308 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 594: -#line 2069 "dhcp6_parser.yy" // lalr1.cc:907 + case 606: +#line 2096 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("server-port", i); } -#line 3290 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3317 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 595: -#line 2074 "dhcp6_parser.yy" // lalr1.cc:907 + case 607: +#line 2101 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3298 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3325 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 596: -#line 2076 "dhcp6_parser.yy" // lalr1.cc:907 + case 608: +#line 2103 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3308 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3335 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 597: -#line 2082 "dhcp6_parser.yy" // lalr1.cc:907 + case 609: +#line 2109 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("sender-port", i); } -#line 3317 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3344 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 598: -#line 2087 "dhcp6_parser.yy" // lalr1.cc:907 + case 610: +#line 2114 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr i(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("max-queue-size", i); } -#line 3326 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3353 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 599: -#line 2092 "dhcp6_parser.yy" // lalr1.cc:907 + case 611: +#line 2119 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NCR_PROTOCOL); } -#line 3334 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3361 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 600: -#line 2094 "dhcp6_parser.yy" // lalr1.cc:907 + case 612: +#line 2121 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("ncr-protocol", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3343 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3370 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 601: -#line 2100 "dhcp6_parser.yy" // lalr1.cc:907 + case 613: +#line 2127 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("UDP", ctx.loc2pos(yystack_[0].location))); } -#line 3349 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3376 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 602: -#line 2101 "dhcp6_parser.yy" // lalr1.cc:907 + case 614: +#line 2128 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("TCP", ctx.loc2pos(yystack_[0].location))); } -#line 3355 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3382 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 603: -#line 2104 "dhcp6_parser.yy" // lalr1.cc:907 + case 615: +#line 2131 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NCR_FORMAT); } -#line 3363 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3390 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 604: -#line 2106 "dhcp6_parser.yy" // lalr1.cc:907 + case 616: +#line 2133 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr json(new StringElement("JSON", ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("ncr-format", json); ctx.leave(); } -#line 3373 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3400 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 605: -#line 2112 "dhcp6_parser.yy" // lalr1.cc:907 + case 617: +#line 2139 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-no-update", b); } -#line 3382 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3409 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 606: -#line 2117 "dhcp6_parser.yy" // lalr1.cc:907 + case 618: +#line 2144 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr b(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("override-client-update", b); } -#line 3391 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3418 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 607: -#line 2122 "dhcp6_parser.yy" // lalr1.cc:907 + case 619: +#line 2149 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.REPLACE_CLIENT_NAME); } -#line 3399 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3426 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 608: -#line 2124 "dhcp6_parser.yy" // lalr1.cc:907 + case 620: +#line 2151 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("replace-client-name", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3408 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3435 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 609: -#line 2130 "dhcp6_parser.yy" // lalr1.cc:907 + case 621: +#line 2157 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-present", ctx.loc2pos(yystack_[0].location))); } -#line 3416 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3443 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 610: -#line 2133 "dhcp6_parser.yy" // lalr1.cc:907 + case 622: +#line 2160 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("never", ctx.loc2pos(yystack_[0].location))); } -#line 3424 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3451 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 611: -#line 2136 "dhcp6_parser.yy" // lalr1.cc:907 + case 623: +#line 2163 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("always", ctx.loc2pos(yystack_[0].location))); } -#line 3432 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3459 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 612: -#line 2139 "dhcp6_parser.yy" // lalr1.cc:907 + case 624: +#line 2166 "dhcp6_parser.yy" // lalr1.cc:907 { yylhs.value.as< ElementPtr > () = ElementPtr(new StringElement("when-not-present", ctx.loc2pos(yystack_[0].location))); } -#line 3440 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3467 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 613: -#line 2142 "dhcp6_parser.yy" // lalr1.cc:907 + case 625: +#line 2169 "dhcp6_parser.yy" // lalr1.cc:907 { error(yystack_[0].location, "boolean values for the replace-client-name are " "no longer supported"); } -#line 3449 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3476 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 614: -#line 2148 "dhcp6_parser.yy" // lalr1.cc:907 + case 626: +#line 2175 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3457 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3484 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 615: -#line 2150 "dhcp6_parser.yy" // lalr1.cc:907 + case 627: +#line 2177 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("generated-prefix", s); ctx.leave(); } -#line 3467 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3494 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 616: -#line 2156 "dhcp6_parser.yy" // lalr1.cc:907 + case 628: +#line 2183 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3475 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3502 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 617: -#line 2158 "dhcp6_parser.yy" // lalr1.cc:907 + case 629: +#line 2185 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-set", s); ctx.leave(); } -#line 3485 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3512 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 618: -#line 2164 "dhcp6_parser.yy" // lalr1.cc:907 + case 630: +#line 2191 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3493 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3520 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 619: -#line 2166 "dhcp6_parser.yy" // lalr1.cc:907 + case 631: +#line 2193 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr s(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("hostname-char-replacement", s); ctx.leave(); } -#line 3503 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3530 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 620: -#line 2174 "dhcp6_parser.yy" // lalr1.cc:907 + case 632: +#line 2201 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3511 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3538 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 621: -#line 2176 "dhcp6_parser.yy" // lalr1.cc:907 + case 633: +#line 2203 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("Dhcp4", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3520 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3547 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 622: -#line 2181 "dhcp6_parser.yy" // lalr1.cc:907 + case 634: +#line 2208 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3528 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3555 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 623: -#line 2183 "dhcp6_parser.yy" // lalr1.cc:907 + case 635: +#line 2210 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("DhcpDdns", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3537 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3564 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 624: -#line 2188 "dhcp6_parser.yy" // lalr1.cc:907 + case 636: +#line 2215 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3545 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3572 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 625: -#line 2190 "dhcp6_parser.yy" // lalr1.cc:907 + case 637: +#line 2217 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.back()->set("Control-agent", yystack_[0].value.as< ElementPtr > ()); ctx.leave(); } -#line 3554 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3581 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 626: -#line 2197 "dhcp6_parser.yy" // lalr1.cc:907 + case 638: +#line 2224 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr i(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-control", i); ctx.stack_.push_back(i); ctx.enter(ctx.CONFIG_CONTROL); } -#line 3565 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3592 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 627: -#line 2202 "dhcp6_parser.yy" // lalr1.cc:907 + case 639: +#line 2229 "dhcp6_parser.yy" // lalr1.cc:907 { // No config control params are required ctx.stack_.pop_back(); ctx.leave(); } -#line 3575 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3602 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 628: -#line 2208 "dhcp6_parser.yy" // lalr1.cc:907 + case 640: +#line 2235 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the config-control map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3585 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3612 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 629: -#line 2212 "dhcp6_parser.yy" // lalr1.cc:907 + case 641: +#line 2239 "dhcp6_parser.yy" // lalr1.cc:907 { // No config_control params are required // parsing completed } -#line 3594 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3621 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 634: -#line 2227 "dhcp6_parser.yy" // lalr1.cc:907 + case 646: +#line 2254 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("config-databases", l); ctx.stack_.push_back(l); ctx.enter(ctx.CONFIG_DATABASE); } -#line 3605 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3632 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 635: -#line 2232 "dhcp6_parser.yy" // lalr1.cc:907 + case 647: +#line 2259 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3614 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3641 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 636: -#line 2237 "dhcp6_parser.yy" // lalr1.cc:907 + case 648: +#line 2264 "dhcp6_parser.yy" // lalr1.cc:907 { 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 3623 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3650 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 637: -#line 2247 "dhcp6_parser.yy" // lalr1.cc:907 + case 649: +#line 2274 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("Logging", m); ctx.stack_.push_back(m); ctx.enter(ctx.LOGGING); } -#line 3634 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3661 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 638: -#line 2252 "dhcp6_parser.yy" // lalr1.cc:907 + case 650: +#line 2279 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3643 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3670 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 639: -#line 2257 "dhcp6_parser.yy" // lalr1.cc:907 + case 651: +#line 2284 "dhcp6_parser.yy" // lalr1.cc:907 { // Parse the Logging map ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.push_back(m); } -#line 3653 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3680 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 640: -#line 2261 "dhcp6_parser.yy" // lalr1.cc:907 + case 652: +#line 2288 "dhcp6_parser.yy" // lalr1.cc:907 { // parsing completed } -#line 3661 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3688 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 644: -#line 2277 "dhcp6_parser.yy" // lalr1.cc:907 + case 656: +#line 2304 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("loggers", l); ctx.stack_.push_back(l); ctx.enter(ctx.LOGGERS); } -#line 3672 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3699 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 645: -#line 2282 "dhcp6_parser.yy" // lalr1.cc:907 + case 657: +#line 2309 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3681 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3708 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 648: -#line 2294 "dhcp6_parser.yy" // lalr1.cc:907 + case 660: +#line 2321 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(l); ctx.stack_.push_back(l); } -#line 3691 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3718 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 649: -#line 2298 "dhcp6_parser.yy" // lalr1.cc:907 + case 661: +#line 2325 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 3699 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3726 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 659: -#line 2315 "dhcp6_parser.yy" // lalr1.cc:907 + case 671: +#line 2342 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr dl(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("debuglevel", dl); } -#line 3708 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3735 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 660: -#line 2320 "dhcp6_parser.yy" // lalr1.cc:907 + case 672: +#line 2347 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3716 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3743 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 661: -#line 2322 "dhcp6_parser.yy" // lalr1.cc:907 + case 673: +#line 2349 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("severity", sev); ctx.leave(); } -#line 3726 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3753 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 662: -#line 2328 "dhcp6_parser.yy" // lalr1.cc:907 + case 674: +#line 2355 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr l(new ListElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output_options", l); ctx.stack_.push_back(l); ctx.enter(ctx.OUTPUT_OPTIONS); } -#line 3737 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3764 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 663: -#line 2333 "dhcp6_parser.yy" // lalr1.cc:907 + case 675: +#line 2360 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); ctx.leave(); } -#line 3746 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3773 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 666: -#line 2342 "dhcp6_parser.yy" // lalr1.cc:907 + case 678: +#line 2369 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr m(new MapElement(ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); } -#line 3756 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3783 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 667: -#line 2346 "dhcp6_parser.yy" // lalr1.cc:907 + case 679: +#line 2373 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.stack_.pop_back(); } -#line 3764 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3791 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 674: -#line 2360 "dhcp6_parser.yy" // lalr1.cc:907 + case 686: +#line 2387 "dhcp6_parser.yy" // lalr1.cc:907 { ctx.enter(ctx.NO_KEYWORD); } -#line 3772 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3799 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 675: -#line 2362 "dhcp6_parser.yy" // lalr1.cc:907 + case 687: +#line 2389 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr sev(new StringElement(yystack_[0].value.as< std::string > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("output", sev); ctx.leave(); } -#line 3782 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3809 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 676: -#line 2368 "dhcp6_parser.yy" // lalr1.cc:907 + case 688: +#line 2395 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr flush(new BoolElement(yystack_[0].value.as< bool > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("flush", flush); } -#line 3791 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3818 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 677: -#line 2373 "dhcp6_parser.yy" // lalr1.cc:907 + case 689: +#line 2400 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr maxsize(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxsize", maxsize); } -#line 3800 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3827 "dhcp6_parser.cc" // lalr1.cc:907 break; - case 678: -#line 2378 "dhcp6_parser.yy" // lalr1.cc:907 + case 690: +#line 2405 "dhcp6_parser.yy" // lalr1.cc:907 { ElementPtr maxver(new IntElement(yystack_[0].value.as< int64_t > (), ctx.loc2pos(yystack_[0].location))); ctx.stack_.back()->set("maxver", maxver); } -#line 3809 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3836 "dhcp6_parser.cc" // lalr1.cc:907 break; -#line 3813 "dhcp6_parser.cc" // lalr1.cc:907 +#line 3840 "dhcp6_parser.cc" // lalr1.cc:907 default: break; } @@ -4067,124 +4094,126 @@ namespace isc { namespace dhcp { } - const short Dhcp6Parser::yypact_ninf_ = -837; + const short Dhcp6Parser::yypact_ninf_ = -851; const signed char Dhcp6Parser::yytable_ninf_ = -1; const short Dhcp6Parser::yypact_[] = { - 418, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, 57, 65, 64, 66, - 68, 87, 91, 126, 133, 148, 164, 184, 195, 203, - 229, 230, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, 65, -95, 27, 69, 22, 234, 72, 39, - 196, 188, 41, 262, -53, 375, 96, 144, -837, 242, - 249, 269, 263, 281, -837, -837, -837, -837, -837, 307, - -837, 94, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, 309, 316, 317, 323, 341, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, 347, -837, -837, -837, - -837, 123, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, 353, -837, 140, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, 357, - 367, -837, -837, -837, -837, -837, -837, -837, -837, 141, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, 178, -837, -837, -837, -837, -837, 369, -837, 385, - 410, -837, -837, -837, -837, -837, -837, 187, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, 416, 352, -837, -837, -837, - -837, -837, -837, -837, -837, 417, -837, -837, 423, -837, - -837, -837, 424, -837, -837, 422, 390, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - 433, 435, -837, -837, -837, -837, 434, 440, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - 191, -837, -837, -837, 442, -837, -837, 443, -837, 444, - 445, -837, -837, 446, 448, -837, -837, -837, -837, -837, - -837, -837, 260, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - 261, -837, -837, -837, 449, 264, -837, -837, -837, -837, - 65, 65, -837, 280, 451, 452, 453, 456, 459, -837, - 27, -837, 462, 463, 464, 465, 466, 467, 297, 298, - 299, 300, 301, 474, 475, 477, 478, 479, 480, 481, - 482, 483, 485, 486, 487, 488, 489, 490, 491, 492, - 322, 494, 495, 509, 69, -837, 510, 338, 22, -837, - 512, 513, 514, 518, 519, 349, 348, 523, 524, 525, - 234, -837, 526, 72, -837, 527, 362, 531, 363, 364, - 39, -837, 532, 536, 537, 539, 540, 541, 542, -837, - 196, -837, 543, 544, 378, 546, 551, 552, 381, -837, - 41, 553, 382, 383, -837, 262, 557, 558, -17, -837, - 388, 560, 562, 394, 567, 400, 419, 568, 569, 415, - 420, 570, 589, 591, 592, 375, -837, 594, 96, -837, - 595, 425, 144, -837, -837, -837, 599, 598, 600, 65, - 65, 65, -837, 432, 601, 602, 603, 604, 608, -837, - -837, -837, -837, -837, 441, 609, 611, 612, 613, 447, - 221, 614, 617, 618, 619, 620, 621, 623, 624, 625, - 626, -837, 627, 613, 629, -837, 632, -837, -837, 633, - 634, 457, 468, 469, -837, -837, 632, 470, 638, -837, - 472, -837, 473, -837, 476, -837, -837, -837, 632, 632, - 632, 484, 493, 496, 497, -837, 498, 499, -837, 500, - 501, 502, -837, -837, 503, -837, -837, -837, 504, 65, - -837, -837, 505, 506, -837, 507, -837, -837, -98, 508, - -837, -837, 34, 511, 515, 516, -837, 635, -837, 636, - -837, -837, 65, 69, 96, -837, -837, -837, -837, 144, - 22, 193, 193, 642, -837, 644, 645, 646, -837, -837, - -837, -837, -837, -837, -837, -837, 647, -50, 65, 315, - 571, 648, 649, 652, 152, 138, 128, -837, 375, -837, - -837, 653, 654, -837, -837, -837, -837, -837, -49, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, 655, 642, -837, 267, 278, 279, 320, - -837, -837, -837, -837, 659, 660, 661, 662, 664, -837, - 665, 678, -837, -837, -837, 679, 680, 682, -837, 321, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - 332, -837, 681, 615, -837, -837, 685, 622, -837, -837, - 686, 690, -837, -837, 688, 692, -837, -837, 691, 693, - -837, -837, -837, 119, -837, -837, -837, 694, -837, -837, - -837, 166, -837, -837, -837, -837, 333, -837, -837, -837, - 176, -837, -837, 695, 696, -837, -837, 697, 699, -837, - 684, 700, 701, 702, 703, 704, 334, -837, -837, -837, - -837, -837, -837, -837, -837, -837, 705, 706, 707, -837, - -837, -837, -837, 335, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, 336, -837, -837, -837, 344, - 538, -837, 708, 710, -837, -837, 709, 713, -837, -837, - -837, 711, -837, -837, 197, -837, 712, -837, -837, -837, - -837, 716, 717, 718, 719, 455, 521, 549, 548, 554, - 722, 555, 556, 723, 724, 728, 559, 561, 563, 193, - -837, -837, 193, -837, 642, 234, -837, 644, 41, -837, - 645, 262, -837, 646, 389, -837, 647, -50, -837, -837, - 315, -837, 729, 571, -837, 77, 648, -837, 196, -837, - 649, -53, -837, 652, 564, 566, 572, 573, 574, 575, - 152, -837, 731, 733, 576, 577, 578, 138, -837, 734, - 738, 128, -837, -837, -837, 737, 714, 72, -837, 653, - 39, -837, 654, 740, -837, 13, 655, -837, -837, 398, - 580, 581, 582, -837, -837, -837, -837, -837, 583, -837, - -837, 584, 585, 586, -837, -837, -837, -837, 345, -837, - 351, -837, 753, -837, 754, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, 360, - -837, -837, -837, -837, -837, -837, -837, -837, 590, -837, - -837, 741, -837, -837, -837, -837, -837, 755, 743, -837, - -837, -837, -837, -837, 757, -837, 361, -837, -837, -837, - -837, -837, -837, -837, -837, 104, 593, -837, -837, -837, - -837, 596, 597, -837, -837, 605, 380, -837, 387, -837, - 606, -837, 762, -837, -837, -837, -837, -837, 397, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - 389, -837, -837, 764, 631, -837, 77, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - 765, 607, 768, 13, -837, -837, 637, -837, -837, 769, - -837, 640, -837, -837, 766, -837, -837, 412, -837, -18, - 766, -837, -837, 771, 772, 773, 399, -837, -837, -837, - -837, -837, -837, 774, 639, 650, 651, -18, -837, 641, - -837, -837, -837, -837, -837 + 380, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, 94, 40, 53, 78, + 103, 105, 121, 123, 145, 170, 176, 183, 204, 238, + 241, 249, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, 40, 37, 28, 72, 23, 237, 81, 196, + 253, 208, 76, 263, -64, 387, 111, 60, -851, 269, + 273, 275, 288, 299, -851, -851, -851, -851, -851, 302, + -851, 74, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, 304, 313, 320, 323, 326, 333, + 340, 343, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, 344, + -851, -851, -851, -851, 124, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, 353, -851, 133, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, 359, 365, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, 139, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + 147, -851, -851, -851, -851, -851, 395, -851, 397, 401, + -851, -851, -851, -851, -851, -851, 160, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, 348, 331, -851, -851, -851, -851, + -851, -851, -851, -851, 373, -851, -851, 408, -851, -851, + -851, 412, -851, -851, 409, 338, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, 415, + 416, -851, -851, -851, -851, 414, 364, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, 177, + -851, -851, -851, 419, -851, -851, 421, -851, 422, 423, + -851, -851, 438, 449, -851, -851, -851, -851, -851, -851, + -851, 188, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, 189, + -851, -851, -851, 451, 198, -851, -851, -851, -851, 40, + 40, -851, 281, 457, 472, 475, 478, 479, -851, 28, + -851, 480, 481, 482, 484, 485, 486, 274, 314, 316, + 317, 311, 318, 321, 324, 494, 495, 497, 499, 501, + 502, 506, 507, 508, 509, 510, 524, 525, 526, 527, + 528, 529, 360, 533, 535, 536, 72, -851, 554, 379, + 23, -851, 556, 557, 558, 559, 561, 390, 391, 566, + 568, 569, 237, -851, 570, 81, -851, 571, 398, 573, + 400, 403, 196, -851, 576, 580, 582, 583, 584, 585, + 588, -851, 253, -851, 589, 590, 417, 592, 593, 594, + 420, -851, 76, 595, 424, 425, -851, 263, 597, 598, + 98, -851, 426, 599, 603, 430, 605, 432, 433, 608, + 610, 435, 440, 614, 617, 618, 619, 387, -851, 620, + 111, -851, 621, 450, 60, -851, -851, -851, 622, 623, + 624, 40, 40, 40, -851, 452, 625, 626, 627, 628, + 631, -851, -851, -851, -851, -851, -851, -851, -851, 460, + 633, 634, 635, 636, 464, 386, 637, 639, 640, 641, + 642, 643, 645, 646, 647, 648, -851, 649, 636, 650, + -851, 653, -851, -851, 654, 655, 470, 476, 487, -851, + -851, 653, 488, 656, -851, 489, -851, 490, -851, 491, + -851, -851, -851, 653, 653, 653, 492, 493, 496, 498, + -851, 500, 503, -851, 504, 505, 511, -851, -851, 512, + -851, -851, -851, 513, 40, -851, -851, 514, 515, -851, + 516, -851, -851, 85, 518, -851, -851, -82, 517, 519, + 520, -851, 657, -851, 666, -851, -851, 40, 72, 111, + -851, -851, -851, -851, 60, 23, 202, 202, 665, -851, + 667, 669, 671, -851, -851, -851, -851, -851, -851, -851, + -851, 672, -48, 40, -55, 538, 676, 677, 678, -9, + 152, 97, -851, 387, -851, -851, 679, 680, -851, -851, + -851, -851, -851, -17, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, 688, 665, + -851, 199, 243, 244, 251, -851, -851, -851, -851, 694, + 695, 696, 697, 698, -851, 699, 700, -851, -851, -851, + 701, 702, 703, -851, 252, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, 286, -851, 704, 705, -851, + -851, 706, 708, -851, -851, 707, 711, -851, -851, 709, + 713, -851, -851, 712, 714, -851, -851, -851, 108, -851, + -851, -851, 715, -851, -851, -851, 137, -851, -851, -851, + -851, 289, -851, -851, -851, 168, -851, -851, 716, 717, + -851, -851, 718, 720, -851, 721, 722, 723, 724, 725, + 726, 290, -851, -851, -851, -851, -851, -851, -851, -851, + -851, 727, 728, 729, -851, -851, -851, -851, 292, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + 296, -851, -851, -851, 330, 532, -851, 730, 731, -851, + -851, 732, 734, -851, -851, -851, 644, -851, -851, 178, + -851, 733, -851, -851, -851, -851, 736, 737, 738, 739, + 541, 555, 567, 564, 572, 742, 574, 575, 743, 744, + 745, 577, 578, 579, 202, -851, -851, 202, -851, 665, + 237, -851, 667, 76, -851, 669, 263, -851, 671, 402, + -851, 672, -48, -851, -851, -55, -851, 747, 538, -851, + 16, 676, -851, 253, -851, 677, -64, -851, 678, 586, + 587, 591, 596, 600, 601, -9, -851, 750, 753, 602, + 604, 606, 152, -851, 754, 756, 97, -851, -851, -851, + 755, 759, 81, -851, 679, 196, -851, 680, 762, -851, + 310, 688, -851, -851, 448, 609, 611, 612, -851, -851, + -851, -851, -851, 613, -851, -851, 615, 616, 652, -851, + -851, -851, -851, 337, -851, 352, -851, 760, -851, 763, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, 356, -851, -851, + -851, -851, -851, -851, -851, -851, 662, -851, -851, 766, + -851, -851, -851, -851, -851, 764, 770, -851, -851, -851, + -851, -851, 767, -851, 363, -851, -851, -851, -851, -851, + -851, -851, -851, 319, 663, -851, -851, -851, -851, 668, + 670, -851, -851, 684, 377, -851, 392, -851, 685, -851, + 772, -851, -851, -851, -851, -851, 399, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, 402, -851, + -851, 773, 607, -851, 16, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, 777, 687, + 779, 310, -851, -851, 686, -851, -851, 758, -851, 693, + -851, -851, 778, -851, -851, 207, -851, 8, 778, -851, + -851, 787, 790, 791, 407, -851, -851, -851, -851, -851, + -851, 793, 651, 719, 735, 8, -851, 710, -851, -851, + -851, -851, -851 }; const unsigned short @@ -4194,158 +4223,160 @@ namespace isc { namespace dhcp { 20, 22, 24, 26, 28, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 47, 40, 36, 35, 32, 33, 34, - 39, 3, 37, 38, 60, 5, 72, 7, 120, 9, - 267, 11, 413, 13, 438, 15, 468, 17, 338, 19, - 346, 21, 383, 23, 232, 25, 567, 27, 639, 29, - 628, 31, 49, 43, 0, 0, 0, 0, 0, 0, - 470, 0, 348, 385, 0, 0, 0, 0, 51, 0, - 50, 0, 0, 44, 70, 637, 620, 622, 624, 0, - 69, 0, 62, 64, 66, 67, 68, 65, 109, 626, - 118, 132, 134, 136, 0, 0, 0, 0, 0, 116, - 259, 336, 375, 426, 428, 301, 309, 205, 222, 213, - 198, 505, 460, 224, 243, 526, 0, 550, 563, 565, - 108, 0, 74, 76, 77, 78, 79, 80, 81, 106, - 84, 85, 86, 87, 103, 88, 90, 89, 94, 95, - 82, 107, 83, 92, 93, 101, 102, 104, 91, 96, - 97, 98, 99, 100, 105, 129, 0, 128, 0, 122, - 124, 125, 126, 127, 405, 430, 291, 293, 295, 0, - 0, 299, 297, 499, 290, 271, 272, 273, 274, 0, - 269, 278, 279, 280, 283, 284, 286, 281, 282, 275, - 276, 288, 289, 277, 285, 287, 424, 423, 419, 420, - 418, 0, 415, 417, 421, 422, 453, 0, 456, 0, - 0, 452, 446, 447, 445, 450, 451, 0, 440, 442, - 443, 448, 449, 444, 497, 485, 487, 489, 491, 493, - 495, 484, 481, 482, 483, 0, 471, 472, 476, 477, - 474, 478, 479, 480, 475, 0, 365, 179, 0, 369, - 367, 372, 0, 361, 362, 0, 349, 350, 352, 364, - 353, 354, 355, 371, 356, 357, 358, 359, 360, 399, - 0, 0, 397, 398, 401, 402, 0, 386, 387, 389, - 390, 391, 392, 393, 394, 395, 396, 239, 241, 236, - 0, 234, 237, 238, 0, 590, 592, 0, 595, 0, - 0, 599, 603, 0, 0, 607, 614, 616, 618, 588, - 586, 587, 0, 569, 571, 572, 573, 574, 575, 576, - 577, 578, 579, 580, 581, 582, 583, 584, 585, 644, - 0, 641, 643, 634, 0, 0, 630, 632, 633, 48, - 0, 0, 41, 0, 0, 0, 0, 0, 0, 59, - 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 39, 3, 37, 38, 60, 5, 72, 7, 126, 9, + 273, 11, 425, 13, 450, 15, 480, 17, 350, 19, + 358, 21, 395, 23, 238, 25, 579, 27, 651, 29, + 640, 31, 49, 43, 0, 0, 0, 0, 0, 0, + 482, 0, 360, 397, 0, 0, 0, 0, 51, 0, + 50, 0, 0, 44, 70, 649, 632, 634, 636, 0, + 69, 0, 62, 64, 66, 67, 68, 65, 112, 638, + 124, 138, 140, 142, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 265, 348, 387, 438, 440, 310, 318, + 211, 228, 219, 204, 517, 472, 230, 249, 538, 0, + 562, 575, 577, 111, 0, 74, 76, 77, 78, 79, + 80, 108, 109, 110, 81, 106, 84, 85, 86, 87, + 103, 88, 90, 89, 94, 95, 82, 107, 83, 92, + 93, 101, 102, 104, 91, 96, 97, 98, 99, 100, + 105, 135, 0, 134, 0, 128, 130, 131, 132, 133, + 417, 442, 300, 302, 304, 0, 0, 308, 306, 511, + 299, 277, 278, 279, 280, 296, 297, 298, 0, 275, + 284, 285, 286, 289, 290, 292, 287, 288, 281, 282, + 294, 295, 283, 291, 293, 436, 435, 431, 432, 430, + 0, 427, 429, 433, 434, 465, 0, 468, 0, 0, + 464, 458, 459, 457, 462, 463, 0, 452, 454, 455, + 460, 461, 456, 509, 497, 499, 501, 503, 505, 507, + 496, 493, 494, 495, 0, 483, 484, 488, 489, 486, + 490, 491, 492, 487, 0, 377, 185, 0, 381, 379, + 384, 0, 373, 374, 0, 361, 362, 364, 376, 365, + 366, 367, 383, 368, 369, 370, 371, 372, 411, 0, + 0, 409, 410, 413, 414, 0, 398, 399, 401, 402, + 403, 404, 405, 406, 407, 408, 245, 247, 242, 0, + 240, 243, 244, 0, 602, 604, 0, 607, 0, 0, + 611, 615, 0, 0, 619, 626, 628, 630, 600, 598, + 599, 0, 581, 583, 584, 585, 586, 587, 588, 589, + 590, 591, 592, 593, 594, 595, 596, 597, 656, 0, + 653, 655, 646, 0, 0, 642, 644, 645, 48, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 59, 0, + 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 73, 0, 0, 0, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 268, 0, 0, 414, 0, 0, 0, 0, 0, - 0, 439, 0, 0, 0, 0, 0, 0, 0, 469, - 0, 339, 0, 0, 0, 0, 0, 0, 0, 347, - 0, 0, 0, 0, 384, 0, 0, 0, 0, 233, + 0, 0, 0, 0, 0, 0, 0, 73, 0, 0, + 0, 127, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 274, 0, 0, 426, 0, 0, 0, + 0, 0, 0, 451, 0, 0, 0, 0, 0, 0, + 0, 481, 0, 351, 0, 0, 0, 0, 0, 0, + 0, 359, 0, 0, 0, 0, 396, 0, 0, 0, + 0, 239, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 580, 0, + 0, 652, 0, 0, 0, 641, 52, 45, 0, 0, + 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 117, 118, 119, 120, 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 568, 0, 0, 640, - 0, 0, 0, 629, 52, 45, 0, 0, 0, 0, - 0, 0, 63, 0, 0, 0, 0, 0, 0, 111, - 112, 113, 114, 115, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 561, 0, 0, 0, + 75, 0, 137, 129, 0, 0, 0, 0, 0, 316, + 317, 0, 0, 0, 276, 0, 428, 0, 467, 0, + 470, 471, 453, 0, 0, 0, 0, 0, 0, 0, + 485, 0, 0, 375, 0, 0, 0, 386, 363, 0, + 415, 416, 400, 0, 0, 241, 601, 0, 0, 606, + 0, 609, 610, 0, 0, 617, 618, 0, 0, 0, + 0, 582, 0, 654, 0, 648, 643, 0, 0, 0, + 633, 635, 637, 113, 0, 0, 0, 0, 144, 123, + 267, 352, 389, 42, 439, 441, 312, 313, 314, 315, + 311, 320, 0, 49, 0, 0, 0, 474, 232, 0, + 0, 0, 576, 0, 53, 136, 419, 444, 301, 303, + 305, 309, 307, 0, 437, 466, 469, 510, 498, 500, + 502, 504, 506, 508, 378, 186, 382, 380, 385, 412, + 246, 248, 603, 605, 608, 613, 614, 612, 616, 621, + 622, 623, 624, 625, 620, 627, 629, 631, 0, 144, + 46, 0, 0, 0, 0, 172, 178, 180, 182, 0, + 0, 0, 0, 0, 195, 0, 0, 198, 200, 202, + 0, 0, 0, 171, 0, 150, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 164, 165, 166, 167, + 162, 163, 168, 169, 170, 0, 148, 0, 145, 146, + 271, 0, 268, 269, 356, 0, 353, 354, 393, 0, + 390, 391, 324, 0, 321, 322, 217, 218, 0, 213, + 215, 216, 0, 226, 227, 223, 0, 221, 224, 225, + 209, 0, 206, 208, 521, 0, 519, 478, 0, 475, + 476, 236, 0, 233, 234, 0, 0, 0, 0, 0, + 0, 0, 251, 253, 254, 255, 256, 257, 258, 551, + 557, 0, 0, 0, 550, 547, 548, 549, 0, 540, + 542, 545, 543, 544, 546, 571, 573, 570, 568, 569, + 0, 564, 566, 567, 0, 55, 423, 0, 420, 421, + 448, 0, 445, 446, 515, 514, 0, 513, 660, 0, + 658, 0, 71, 650, 639, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 549, 0, 0, 0, 75, 0, 131, 123, 0, - 0, 0, 0, 0, 307, 308, 0, 0, 0, 270, - 0, 416, 0, 455, 0, 458, 459, 441, 0, 0, - 0, 0, 0, 0, 0, 473, 0, 0, 363, 0, - 0, 0, 374, 351, 0, 403, 404, 388, 0, 0, - 235, 589, 0, 0, 594, 0, 597, 598, 0, 0, - 605, 606, 0, 0, 0, 0, 570, 0, 642, 0, - 636, 631, 0, 0, 0, 621, 623, 625, 110, 0, - 0, 0, 0, 138, 117, 261, 340, 377, 42, 427, - 429, 303, 304, 305, 306, 302, 311, 0, 49, 0, - 0, 0, 462, 226, 0, 0, 0, 564, 0, 53, - 130, 407, 432, 292, 294, 296, 300, 298, 0, 425, - 454, 457, 498, 486, 488, 490, 492, 494, 496, 366, - 180, 370, 368, 373, 400, 240, 242, 591, 593, 596, - 601, 602, 600, 604, 609, 610, 611, 612, 613, 608, - 615, 617, 619, 0, 138, 46, 0, 0, 0, 0, - 166, 172, 174, 176, 0, 0, 0, 0, 0, 189, - 0, 0, 192, 194, 196, 0, 0, 0, 165, 0, - 144, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 158, 159, 160, 161, 156, 157, 162, 163, 164, - 0, 142, 0, 139, 140, 265, 0, 262, 263, 344, - 0, 341, 342, 381, 0, 378, 379, 315, 0, 312, - 313, 211, 212, 0, 207, 209, 210, 0, 220, 221, - 217, 0, 215, 218, 219, 203, 0, 200, 202, 509, - 0, 507, 466, 0, 463, 464, 230, 0, 227, 228, - 0, 0, 0, 0, 0, 0, 0, 245, 247, 248, - 249, 250, 251, 252, 539, 545, 0, 0, 0, 538, - 535, 536, 537, 0, 528, 530, 533, 531, 532, 534, - 559, 561, 558, 556, 557, 0, 552, 554, 555, 0, - 55, 411, 0, 408, 409, 436, 0, 433, 434, 503, - 502, 0, 501, 648, 0, 646, 0, 71, 638, 627, - 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 133, 135, 0, 137, 0, 0, 260, 0, 348, 337, - 0, 385, 376, 0, 0, 310, 0, 0, 206, 223, - 0, 214, 0, 0, 199, 511, 0, 506, 470, 461, - 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, - 0, 244, 0, 0, 0, 0, 0, 0, 527, 0, - 0, 0, 551, 566, 57, 0, 56, 0, 406, 0, - 0, 431, 0, 0, 500, 0, 0, 645, 635, 0, - 0, 0, 0, 178, 181, 182, 183, 184, 0, 191, - 185, 0, 0, 0, 186, 187, 188, 145, 0, 141, - 0, 264, 0, 343, 0, 380, 335, 330, 332, 323, - 324, 319, 320, 321, 322, 328, 329, 327, 331, 0, - 317, 325, 333, 334, 326, 314, 208, 216, 0, 201, - 523, 0, 521, 522, 518, 519, 520, 0, 512, 513, - 515, 516, 517, 508, 0, 465, 0, 229, 253, 254, - 255, 256, 257, 258, 246, 0, 0, 544, 547, 548, - 529, 0, 0, 553, 54, 0, 0, 410, 0, 435, - 0, 662, 0, 660, 658, 652, 656, 657, 0, 650, - 654, 655, 653, 647, 168, 169, 170, 171, 167, 173, - 175, 177, 190, 193, 195, 197, 143, 266, 345, 382, - 0, 316, 204, 0, 0, 510, 0, 467, 231, 541, - 542, 543, 540, 546, 560, 562, 58, 412, 437, 504, - 0, 0, 0, 0, 649, 318, 0, 525, 514, 0, - 659, 0, 651, 524, 0, 661, 666, 0, 664, 0, - 0, 663, 674, 0, 0, 0, 0, 668, 670, 671, - 672, 673, 665, 0, 0, 0, 0, 0, 667, 0, - 676, 677, 678, 669, 675 + 0, 0, 0, 0, 0, 139, 141, 0, 143, 0, + 0, 266, 0, 360, 349, 0, 397, 388, 0, 0, + 319, 0, 0, 212, 229, 0, 220, 0, 0, 205, + 523, 0, 518, 482, 473, 0, 0, 231, 0, 0, + 0, 0, 0, 0, 0, 0, 250, 0, 0, 0, + 0, 0, 0, 539, 0, 0, 0, 563, 578, 57, + 0, 56, 0, 418, 0, 0, 443, 0, 0, 512, + 0, 0, 657, 647, 0, 0, 0, 0, 184, 187, + 188, 189, 190, 0, 197, 191, 0, 0, 0, 192, + 193, 194, 151, 0, 147, 0, 270, 0, 355, 0, + 392, 347, 339, 341, 332, 333, 344, 345, 346, 328, + 329, 330, 331, 337, 338, 336, 340, 0, 326, 334, + 342, 343, 335, 323, 214, 222, 0, 207, 535, 0, + 533, 534, 530, 531, 532, 0, 524, 525, 527, 528, + 529, 520, 0, 477, 0, 235, 259, 260, 261, 262, + 263, 264, 252, 0, 0, 556, 559, 560, 541, 0, + 0, 565, 54, 0, 0, 422, 0, 447, 0, 674, + 0, 672, 670, 664, 668, 669, 0, 662, 666, 667, + 665, 659, 174, 175, 176, 177, 173, 179, 181, 183, + 196, 199, 201, 203, 149, 272, 357, 394, 0, 325, + 210, 0, 0, 522, 0, 479, 237, 553, 554, 555, + 552, 558, 572, 574, 58, 424, 449, 516, 0, 0, + 0, 0, 661, 327, 0, 537, 526, 0, 671, 0, + 663, 536, 0, 673, 678, 0, 676, 0, 0, 675, + 686, 0, 0, 0, 0, 680, 682, 683, 684, 685, + 677, 0, 0, 0, 0, 0, 679, 0, 688, 689, + 690, 681, 687 }; const short Dhcp6Parser::yypgoto_[] = { - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, 43, -837, -460, - -837, 266, -837, -837, -837, -837, 165, -837, -472, -837, - -837, -837, -74, -837, -837, -837, 426, -837, -837, -837, - -837, 205, 395, -837, -837, -62, -46, -45, -43, -837, - -837, -837, -837, -837, -837, -837, 186, 421, -837, -837, - -837, -837, -837, -837, -837, -837, -837, 150, -837, -19, - -837, -576, -7, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -70, -837, -609, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -35, -837, -837, -837, -837, - -837, -37, -596, -837, -837, -837, -837, -23, -837, -837, - -837, -837, -837, -837, -837, -837, -33, -837, -837, -837, - -26, 401, -837, -837, -837, -837, -837, -837, -837, -44, - -837, -837, -837, -837, -837, -837, -836, -837, -837, -837, - -9, -837, -837, -837, 1, 438, -837, -837, -835, -837, - -834, -837, -36, -837, -32, -837, -42, -837, -837, -837, - -831, -837, -837, -837, -837, -6, -837, -837, -179, 781, - -837, -837, -837, -837, -837, 3, -837, -837, -837, 7, - -837, 429, -837, -76, -837, -837, -837, -837, -837, -69, - -837, -837, -837, -837, -837, -11, -837, -837, -837, 5, - -837, -837, -837, 8, -837, 411, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -39, -837, -837, - -837, -31, 458, -837, -837, -58, -837, -24, -837, -837, - -837, -837, -837, -40, -837, -837, -837, -30, 454, -837, - -837, -837, -837, -837, -837, -837, -60, -837, -837, -837, - 2, -837, -837, -837, 9, -837, 450, 247, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -828, -837, -837, -837, -837, -837, -837, -837, 12, - -837, -837, -837, -157, -837, -837, -837, -837, -837, -837, - -837, -5, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -8, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, 270, 427, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, -837, -837, -837, -837, -837, -837, -837, - -837, -837, -837, 295, 413, -837, -837, -837, -837, -837, - -837, -837, 303, 428, -837, -837, -837, -16, -837, -837, - -162, -837, -837, -837, -837, -837, -837, -177, -837, -837, - -193, -837, -837, -837, -837, -837 + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, 6, -851, -466, + -851, 229, -851, -851, -851, -851, 165, -851, -458, -851, + -851, -851, -74, -851, -851, -851, 434, -851, -851, -851, + -851, 193, 388, -851, -851, -62, -46, -45, -43, -42, + -29, -26, -851, -851, -851, -851, -851, -851, -851, 211, + 394, -851, -851, -851, -851, -851, -851, -851, -851, -851, + 122, -851, -39, -851, -589, -41, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -70, -851, -624, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -31, -851, + -851, -851, -851, -851, -8, -608, -851, -851, -851, -851, + -12, -851, -851, -851, -851, -851, -851, -851, -851, -23, + -851, -851, -851, -53, 413, -851, -851, -851, -851, -851, + -851, -851, -28, -851, -851, -851, -851, -851, -851, -850, + -851, -851, -851, 12, -851, -851, -851, 15, 446, -851, + -851, -849, -851, -846, -851, -3, -851, 2, -851, 1, + -851, -851, -851, -843, -851, -851, -851, -851, 5, -851, + -851, -169, 809, -851, -851, -851, -851, -851, 18, -851, + -851, -851, 21, -851, 429, -851, -76, -851, -851, -851, + -851, -851, -69, -851, -851, -851, -851, -851, -11, -851, + -851, -851, 17, -851, -851, -851, 20, -851, 436, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -25, -851, -851, -851, -22, 467, -851, -851, -58, -851, + -24, -851, -851, -851, -851, -851, -20, -851, -851, -851, + -21, 463, -851, -851, -851, -851, -851, -851, -851, -60, + -851, -851, -851, 13, -851, -851, -851, 19, -851, 458, + 256, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -842, -851, -851, -851, -851, -851, + -851, -851, 24, -851, -851, -851, -148, -851, -851, -851, + -851, -851, -851, -851, 9, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, 4, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, 280, 431, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, -851, -851, -851, -851, + -851, -851, -851, -851, -851, -851, 303, 437, -851, -851, + -851, -851, -851, -851, -851, 325, 439, -851, -851, -851, + -6, -851, -851, -155, -851, -851, -851, -851, -851, -851, + -170, -851, -851, -185, -851, -851, -851, -851, -851 }; const short @@ -4353,451 +4384,461 @@ namespace isc { namespace dhcp { { -1, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 88, 41, 42, - 73, 609, 92, 93, 43, 72, 89, 90, 630, 810, - 905, 906, 698, 45, 74, 101, 102, 103, 364, 47, - 75, 141, 142, 143, 372, 144, 145, 146, 147, 148, - 149, 383, 150, 374, 49, 76, 178, 179, 180, 406, - 181, 151, 375, 152, 376, 153, 377, 722, 723, 724, - 852, 699, 700, 701, 831, 1028, 702, 832, 703, 833, - 704, 834, 705, 706, 443, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 840, 716, 717, 843, 718, 844, - 719, 845, 154, 394, 756, 757, 758, 872, 155, 391, - 743, 744, 745, 746, 156, 393, 751, 752, 753, 754, - 157, 392, 158, 397, 767, 768, 769, 881, 65, 84, - 310, 311, 312, 456, 313, 457, 159, 398, 776, 777, - 778, 779, 780, 781, 782, 783, 160, 384, 726, 727, - 728, 855, 51, 77, 199, 200, 201, 412, 202, 413, - 203, 414, 204, 418, 205, 417, 161, 389, 615, 207, - 208, 162, 390, 738, 739, 740, 864, 959, 960, 163, - 385, 59, 81, 730, 731, 732, 858, 61, 82, 275, - 276, 277, 278, 279, 280, 281, 442, 282, 446, 283, - 445, 284, 285, 447, 286, 164, 386, 734, 735, 736, - 861, 63, 83, 296, 297, 298, 299, 300, 451, 301, - 302, 303, 304, 210, 410, 812, 813, 814, 907, 53, - 78, 221, 222, 223, 422, 165, 387, 166, 388, 213, - 411, 816, 817, 818, 910, 55, 79, 237, 238, 239, - 425, 240, 241, 427, 242, 243, 167, 396, 763, 764, - 765, 878, 57, 80, 255, 256, 257, 258, 433, 259, - 434, 260, 435, 261, 436, 262, 437, 263, 438, 264, - 432, 215, 419, 821, 822, 913, 168, 395, 760, 761, - 875, 977, 978, 979, 980, 981, 1043, 982, 169, 399, - 793, 794, 795, 892, 1052, 796, 797, 893, 798, 799, - 170, 171, 401, 805, 806, 807, 899, 808, 900, 172, - 402, 173, 403, 67, 85, 332, 333, 334, 335, 461, - 336, 462, 337, 338, 464, 339, 340, 341, 467, 662, - 342, 468, 343, 344, 345, 471, 669, 346, 472, 347, - 473, 348, 474, 104, 366, 105, 367, 106, 368, 174, - 373, 71, 87, 355, 356, 357, 480, 358, 107, 365, - 69, 86, 350, 351, 352, 477, 824, 825, 915, 1018, - 1019, 1020, 1021, 1062, 1022, 1060, 1077, 1078, 1079, 1086, - 1087, 1088, 1093, 1089, 1090, 1091 + 73, 624, 92, 93, 43, 72, 89, 90, 645, 825, + 920, 921, 713, 45, 74, 101, 102, 103, 373, 47, + 75, 144, 145, 146, 381, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 395, 156, 383, 49, 76, 184, + 185, 186, 418, 187, 157, 384, 158, 385, 159, 386, + 737, 738, 739, 867, 714, 715, 716, 846, 1046, 717, + 847, 718, 848, 719, 849, 720, 721, 455, 722, 723, + 724, 725, 726, 727, 728, 729, 730, 855, 731, 732, + 858, 733, 859, 734, 860, 160, 406, 771, 772, 773, + 887, 161, 403, 758, 759, 760, 761, 162, 405, 766, + 767, 768, 769, 163, 404, 164, 409, 782, 783, 784, + 896, 65, 84, 319, 320, 321, 468, 322, 469, 165, + 410, 791, 792, 793, 794, 795, 796, 797, 798, 166, + 396, 741, 742, 743, 870, 51, 77, 208, 209, 210, + 424, 211, 425, 212, 426, 213, 430, 214, 429, 167, + 401, 630, 216, 217, 168, 402, 753, 754, 755, 879, + 977, 978, 169, 397, 59, 81, 745, 746, 747, 873, + 61, 82, 284, 285, 286, 287, 288, 289, 290, 454, + 291, 458, 292, 457, 293, 294, 459, 295, 170, 398, + 749, 750, 751, 876, 63, 83, 305, 306, 307, 308, + 309, 463, 310, 311, 312, 313, 219, 422, 827, 828, + 829, 922, 53, 78, 230, 231, 232, 434, 171, 399, + 172, 400, 222, 423, 831, 832, 833, 925, 55, 79, + 246, 247, 248, 437, 249, 250, 439, 251, 252, 173, + 408, 778, 779, 780, 893, 57, 80, 264, 265, 266, + 267, 445, 268, 446, 269, 447, 270, 448, 271, 449, + 272, 450, 273, 444, 224, 431, 836, 837, 928, 174, + 407, 775, 776, 890, 995, 996, 997, 998, 999, 1061, + 1000, 175, 411, 808, 809, 810, 907, 1070, 811, 812, + 908, 813, 814, 176, 177, 413, 820, 821, 822, 914, + 823, 915, 178, 414, 179, 415, 67, 85, 341, 342, + 343, 344, 473, 345, 474, 346, 347, 476, 348, 349, + 350, 479, 677, 351, 480, 352, 353, 354, 483, 684, + 355, 484, 356, 485, 357, 486, 104, 375, 105, 376, + 106, 377, 180, 382, 71, 87, 364, 365, 366, 492, + 367, 107, 374, 69, 86, 359, 360, 361, 489, 839, + 840, 930, 1036, 1037, 1038, 1039, 1080, 1040, 1078, 1095, + 1096, 1097, 1104, 1105, 1106, 1111, 1107, 1108, 1109 }; const unsigned short Dhcp6Parser::yytable_[] = { - 100, 140, 177, 194, 217, 231, 251, 294, 273, 292, - 309, 329, 274, 293, 295, 195, 790, 214, 182, 211, - 224, 235, 253, 750, 287, 305, 720, 330, 952, 953, - 954, 196, 197, 958, 198, 206, 964, 94, 175, 176, - 660, 661, 218, 232, 245, 741, 219, 233, 608, 307, - 308, 819, 183, 212, 225, 236, 254, 32, 288, 306, - 40, 331, 266, 608, 636, 267, 209, 220, 234, 252, - 33, 44, 34, 46, 35, 48, 642, 643, 644, 91, - 108, 109, 123, 124, 110, 307, 308, 111, 112, 113, - 122, 123, 124, 267, 50, 268, 269, 370, 52, 270, - 271, 272, 371, 226, 227, 228, 229, 230, 123, 124, - 123, 124, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 99, 867, 122, 742, 868, 404, 191, 122, 267, - 192, 405, 1082, 54, 216, 1083, 1084, 1085, 123, 124, - 56, 123, 124, 408, 420, 125, 123, 124, 409, 421, - 126, 127, 128, 129, 130, 58, 131, 353, 354, 784, - 191, 132, 1011, 192, 1012, 1013, 970, 971, 685, 870, - 133, 60, 871, 134, 95, 664, 665, 666, 667, 876, - 135, 423, 877, 96, 97, 98, 424, 99, 136, 137, - 430, 62, 138, 139, 458, 431, 99, 123, 124, 459, - 916, 99, 64, 917, 952, 953, 954, 123, 124, 958, - 66, 668, 964, 99, 680, 99, 1049, 1050, 1051, 681, - 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, - 692, 693, 694, 695, 696, 697, 68, 70, 121, 36, - 37, 38, 39, 99, 349, 267, 99, 122, 359, 800, - 801, 99, 360, 785, 786, 787, 788, 770, 771, 772, - 773, 774, 775, 475, 478, 123, 124, 482, 476, 479, - 404, 362, 483, 361, 750, 827, 938, 114, 115, 116, - 117, 478, 482, 244, 363, 122, 828, 829, 790, 245, - 246, 247, 248, 249, 250, 184, 100, 185, 611, 612, - 613, 614, 99, 123, 124, 186, 187, 188, 189, 190, - 125, 369, 99, 378, 267, 289, 268, 269, 290, 291, - 379, 380, 191, 408, 849, 192, 132, 381, 830, 850, - 140, 123, 124, 193, 177, 849, 873, 890, 897, 901, - 851, 874, 891, 898, 902, 382, 194, 475, 849, 217, - 182, 400, 903, 1036, 420, 440, 231, 407, 195, 1037, - 214, 415, 211, 1040, 458, 224, 251, 99, 1041, 1048, - 99, 416, 235, 426, 196, 197, 273, 198, 206, 294, - 274, 292, 253, 423, 183, 293, 295, 218, 1057, 428, - 430, 219, 287, 450, 232, 1058, 212, 305, 233, 225, - 1063, 329, 1097, 484, 485, 1064, 236, 1098, 99, 209, - 741, 748, 220, 749, 429, 1080, 254, 330, 1081, 234, - 1024, 1025, 1026, 1027, 439, 441, 288, 444, 448, 252, - 449, 306, 114, 115, 116, 117, 99, 452, 120, 453, - 122, 267, 454, 455, 123, 124, 460, 463, 465, 466, - 469, 331, 470, 481, 486, 487, 488, 489, 123, 124, - 490, 187, 188, 491, 190, 125, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, 503, 191, 504, 505, - 192, 506, 507, 508, 509, 510, 511, 512, 193, 513, - 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 524, 526, 527, 529, 530, 531, 140, - 327, 328, 532, 533, 534, 535, 177, 536, 537, 538, - 540, 542, 595, 596, 597, 544, 548, 543, 545, 546, - 549, 550, 182, 551, 552, 553, 554, 556, 557, 99, - 559, 789, 802, 558, 329, 560, 561, 564, 562, 565, - 566, 568, 569, 99, 572, 571, 573, 791, 803, 574, - 330, 575, 578, 579, 582, 576, 183, 1, 2, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 580, 583, 577, 584, 585, 581, 587, 589, - 590, 792, 804, 592, 331, 593, 598, 594, 599, 600, - 601, 602, 656, 603, 605, 604, 606, 607, 854, 616, - 34, 610, 617, 618, 619, 857, 621, 620, 622, 623, - 923, 633, 624, 625, 626, 675, 628, 629, 631, 632, - 673, 674, 634, 635, 637, 638, 639, 640, 663, 721, - 641, 725, 729, 733, 737, 759, 762, 755, 645, 766, - 811, 815, 823, 835, 836, 837, 838, 646, 839, 841, - 647, 648, 649, 650, 651, 652, 653, 654, 655, 657, - 658, 659, 842, 846, 847, 670, 848, 853, 884, 671, - 672, 856, 859, 860, 862, 863, 866, 865, 924, 880, - 869, 879, 883, 882, 885, 886, 887, 888, 889, 894, - 895, 896, 904, 909, 908, 911, 912, 1005, 918, 914, - 919, 920, 921, 922, 925, 926, 928, 931, 932, 927, - 929, 930, 933, 968, 934, 995, 935, 996, 1001, 988, - 936, 989, 1002, 1004, 1010, 1044, 1046, 990, 991, 992, - 993, 997, 998, 999, 1029, 1030, 1031, 1032, 1033, 1034, - 1035, 1038, 1039, 1045, 1042, 1047, 1061, 1053, 1066, 1069, - 1054, 1055, 1071, 1076, 1074, 1094, 1095, 1096, 1099, 1056, - 1059, 194, 1070, 747, 273, 294, 679, 292, 274, 627, - 946, 293, 295, 195, 951, 214, 492, 211, 676, 525, - 287, 972, 947, 305, 251, 973, 962, 309, 1067, 196, - 197, 1073, 198, 206, 1075, 1104, 1100, 975, 948, 949, - 253, 950, 957, 789, 826, 1101, 1102, 802, 955, 528, - 966, 212, 956, 217, 288, 939, 231, 306, 969, 791, - 963, 1014, 937, 803, 209, 1015, 994, 967, 941, 224, - 987, 976, 235, 961, 254, 986, 940, 1016, 539, 570, - 965, 1065, 265, 943, 974, 942, 567, 252, 945, 944, - 1007, 218, 1009, 792, 232, 219, 1006, 804, 233, 563, - 1008, 541, 985, 225, 547, 820, 236, 984, 983, 1068, - 555, 1017, 1000, 1003, 678, 591, 220, 677, 809, 234, - 1023, 1072, 586, 1092, 1103, 0, 588, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 100, 143, 183, 200, 226, 240, 260, 303, 282, 301, + 318, 338, 283, 302, 304, 201, 805, 223, 188, 220, + 233, 244, 262, 40, 296, 314, 765, 339, 735, 970, + 971, 202, 203, 972, 204, 205, 976, 982, 94, 181, + 182, 316, 317, 756, 763, 33, 764, 34, 206, 35, + 756, 207, 189, 221, 234, 245, 263, 623, 297, 315, + 44, 340, 679, 680, 681, 682, 218, 229, 243, 261, + 125, 276, 623, 362, 363, 227, 241, 379, 215, 254, + 228, 242, 380, 108, 109, 46, 834, 110, 126, 127, + 111, 112, 113, 651, 32, 126, 127, 275, 683, 785, + 786, 787, 788, 789, 790, 657, 658, 659, 988, 989, + 48, 882, 50, 99, 883, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 416, 52, 757, + 54, 276, 417, 277, 278, 125, 420, 279, 280, 281, + 885, 421, 432, 886, 126, 127, 225, 433, 126, 127, + 435, 128, 56, 126, 127, 436, 129, 130, 131, 132, + 133, 1100, 134, 442, 1101, 1102, 1103, 135, 443, 126, + 127, 891, 197, 799, 892, 198, 136, 58, 95, 137, + 470, 931, 700, 60, 932, 471, 138, 96, 97, 98, + 62, 487, 490, 99, 139, 140, 488, 491, 141, 142, + 99, 494, 416, 316, 317, 99, 495, 842, 970, 971, + 1098, 64, 972, 1099, 91, 976, 982, 36, 37, 38, + 39, 815, 816, 695, 126, 127, 675, 676, 696, 697, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 66, 490, 494, 68, 99, + 125, 843, 844, 99, 420, 864, 70, 276, 99, 845, + 865, 124, 358, 235, 236, 237, 238, 239, 126, 127, + 800, 801, 802, 803, 99, 368, 369, 765, 953, 370, + 114, 115, 116, 117, 118, 119, 120, 197, 805, 864, + 198, 125, 888, 905, 866, 912, 371, 889, 906, 916, + 913, 190, 372, 191, 917, 100, 378, 125, 387, 126, + 127, 192, 193, 194, 195, 196, 128, 388, 276, 298, + 277, 278, 299, 300, 389, 126, 127, 390, 197, 99, + 391, 198, 135, 487, 452, 126, 127, 392, 918, 199, + 864, 462, 143, 253, 393, 1054, 183, 394, 412, 254, + 255, 256, 257, 258, 259, 432, 451, 419, 200, 1058, + 1055, 226, 188, 427, 1059, 276, 470, 467, 240, 428, + 201, 1066, 223, 99, 220, 496, 497, 233, 260, 99, + 435, 453, 126, 127, 244, 1075, 202, 203, 282, 204, + 205, 303, 283, 301, 262, 442, 189, 302, 304, 438, + 1076, 440, 1081, 206, 296, 441, 207, 1082, 221, 314, + 1115, 234, 456, 338, 99, 1116, 460, 461, 245, 464, + 465, 218, 466, 472, 229, 475, 477, 478, 263, 339, + 99, 243, 227, 215, 1067, 1068, 1069, 228, 297, 241, + 99, 261, 481, 315, 242, 114, 115, 116, 117, 118, + 119, 120, 511, 482, 123, 493, 125, 276, 498, 126, + 127, 499, 1029, 340, 1030, 1031, 626, 627, 628, 629, + 1042, 1043, 1044, 1045, 126, 127, 500, 193, 194, 501, + 196, 128, 502, 503, 505, 506, 507, 99, 508, 509, + 510, 515, 512, 197, 513, 514, 198, 516, 519, 520, + 517, 521, 518, 522, 199, 523, 524, 610, 611, 612, + 525, 526, 527, 528, 529, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 530, 531, + 532, 533, 534, 535, 143, 336, 337, 537, 536, 538, + 539, 183, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 188, 541, 542, + 544, 545, 546, 547, 99, 548, 804, 817, 549, 338, + 551, 550, 552, 553, 555, 557, 558, 559, 560, 99, + 563, 561, 806, 818, 564, 339, 565, 566, 567, 568, + 671, 189, 569, 571, 572, 573, 574, 575, 576, 579, + 577, 583, 584, 587, 580, 581, 586, 588, 589, 590, + 591, 592, 593, 690, 594, 595, 807, 819, 597, 340, + 596, 598, 599, 600, 602, 604, 607, 770, 605, 613, + 608, 609, 614, 615, 616, 617, 618, 619, 620, 621, + 622, 625, 631, 34, 632, 633, 634, 648, 636, 635, + 637, 638, 929, 649, 639, 640, 641, 643, 644, 646, + 647, 678, 688, 653, 650, 652, 654, 655, 656, 660, + 661, 689, 736, 662, 740, 663, 744, 664, 748, 752, + 665, 666, 667, 774, 777, 781, 826, 830, 668, 669, + 670, 672, 673, 674, 685, 838, 686, 687, 850, 851, + 852, 853, 854, 856, 857, 861, 862, 863, 869, 919, + 868, 872, 871, 874, 875, 877, 878, 881, 880, 938, + 895, 884, 894, 898, 897, 899, 900, 901, 902, 903, + 904, 909, 910, 911, 924, 939, 923, 927, 926, 933, + 934, 935, 936, 937, 941, 940, 943, 946, 947, 948, + 942, 986, 944, 945, 1013, 949, 950, 1014, 1019, 951, + 1020, 1022, 1023, 1092, 1006, 1007, 1028, 642, 1056, 1008, + 1062, 1057, 1063, 1064, 1009, 1065, 1079, 1084, 1010, 1011, + 1015, 1087, 1016, 1089, 1017, 1094, 1047, 1085, 1048, 1049, + 1050, 1112, 1051, 1052, 1113, 1114, 200, 1117, 762, 282, + 303, 691, 301, 283, 540, 961, 302, 304, 201, 969, + 223, 841, 220, 504, 543, 296, 990, 962, 314, 260, + 991, 980, 318, 952, 202, 203, 694, 204, 205, 1053, + 954, 1118, 993, 963, 964, 262, 965, 966, 804, 1060, + 1071, 206, 817, 1004, 207, 1072, 221, 1073, 226, 297, + 967, 240, 315, 968, 806, 981, 1032, 987, 818, 218, + 1033, 1074, 1077, 1091, 233, 1088, 994, 244, 979, 263, + 1093, 215, 1034, 985, 984, 1005, 973, 1012, 554, 992, + 975, 974, 261, 585, 956, 955, 983, 1122, 807, 1083, + 274, 578, 819, 958, 957, 960, 959, 1119, 234, 1025, + 1024, 245, 556, 582, 1026, 562, 1035, 1027, 1003, 835, + 570, 229, 1002, 1120, 243, 1001, 1086, 693, 601, 227, + 1021, 1018, 241, 824, 228, 1041, 1090, 242, 1110, 603, + 1121, 606, 0, 0, 692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 946, 0, 0, 0, - 951, 0, 972, 0, 0, 0, 973, 0, 947, 0, - 0, 0, 962, 0, 0, 0, 0, 0, 975, 1014, - 0, 0, 0, 1015, 948, 949, 0, 950, 957, 0, - 0, 0, 0, 0, 955, 1016, 0, 0, 956, 0, - 0, 0, 0, 0, 0, 0, 963, 0, 0, 0, - 0, 0, 976, 0, 0, 0, 0, 0, 0, 961, - 0, 0, 0, 0, 0, 974, 0, 0, 0, 1017 + 0, 0, 0, 0, 961, 0, 0, 0, 969, 0, + 990, 0, 0, 0, 991, 0, 962, 0, 0, 0, + 980, 0, 0, 0, 0, 0, 993, 1032, 0, 0, + 0, 1033, 963, 964, 0, 965, 966, 0, 0, 0, + 0, 0, 0, 1034, 0, 0, 0, 0, 0, 967, + 0, 0, 968, 0, 981, 0, 0, 0, 0, 0, + 994, 0, 0, 0, 0, 0, 0, 979, 0, 0, + 0, 0, 0, 992, 0, 973, 0, 1035, 0, 975, + 974 }; const short Dhcp6Parser::yycheck_[] = { 74, 75, 76, 77, 78, 79, 80, 83, 82, 83, - 84, 85, 82, 83, 83, 77, 625, 77, 76, 77, - 78, 79, 80, 619, 82, 83, 602, 85, 864, 864, - 864, 77, 77, 864, 77, 77, 864, 10, 16, 17, - 138, 139, 78, 79, 93, 95, 78, 79, 508, 102, - 103, 100, 76, 77, 78, 79, 80, 0, 82, 83, - 17, 85, 21, 523, 536, 52, 77, 78, 79, 80, - 5, 7, 7, 7, 9, 7, 548, 549, 550, 174, - 11, 12, 69, 70, 15, 102, 103, 18, 19, 20, - 51, 69, 70, 52, 7, 54, 55, 3, 7, 58, - 59, 60, 8, 64, 65, 66, 67, 68, 69, 70, - 69, 70, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 174, 3, 51, 174, 6, 3, 88, 51, 52, - 91, 8, 150, 7, 62, 153, 154, 155, 69, 70, - 7, 69, 70, 3, 3, 76, 69, 70, 8, 8, - 81, 82, 83, 84, 85, 7, 87, 13, 14, 21, - 88, 92, 149, 91, 151, 152, 89, 90, 30, 3, - 101, 7, 6, 104, 147, 141, 142, 143, 144, 3, - 111, 3, 6, 156, 157, 158, 8, 174, 119, 120, - 3, 7, 123, 124, 3, 8, 174, 69, 70, 8, - 3, 174, 7, 6, 1040, 1040, 1040, 69, 70, 1040, - 7, 177, 1040, 174, 21, 174, 112, 113, 114, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 7, 7, 50, 174, - 175, 176, 177, 174, 148, 52, 174, 51, 6, 121, - 122, 174, 3, 115, 116, 117, 118, 105, 106, 107, - 108, 109, 110, 3, 3, 69, 70, 3, 8, 8, - 3, 8, 8, 4, 870, 8, 852, 43, 44, 45, - 46, 3, 3, 87, 3, 51, 8, 8, 897, 93, - 94, 95, 96, 97, 98, 61, 370, 63, 77, 78, - 79, 80, 174, 69, 70, 71, 72, 73, 74, 75, - 76, 4, 174, 4, 52, 53, 54, 55, 56, 57, - 4, 4, 88, 3, 3, 91, 92, 4, 8, 8, - 404, 69, 70, 99, 408, 3, 3, 3, 3, 3, - 8, 8, 8, 8, 8, 4, 420, 3, 3, 423, - 408, 4, 8, 8, 3, 3, 430, 4, 420, 8, - 420, 4, 420, 3, 3, 423, 440, 174, 8, 8, - 174, 4, 430, 4, 420, 420, 450, 420, 420, 455, - 450, 455, 440, 3, 408, 455, 455, 423, 8, 4, - 3, 423, 450, 3, 430, 8, 420, 455, 430, 423, - 3, 475, 3, 360, 361, 8, 430, 8, 174, 420, - 95, 96, 423, 98, 4, 3, 440, 475, 6, 430, - 22, 23, 24, 25, 8, 8, 450, 4, 4, 440, - 8, 455, 43, 44, 45, 46, 174, 4, 49, 4, - 51, 52, 8, 3, 69, 70, 4, 4, 4, 4, - 4, 475, 4, 4, 174, 4, 4, 4, 69, 70, - 4, 72, 73, 4, 75, 76, 4, 4, 4, 4, - 4, 4, 175, 175, 175, 175, 175, 88, 4, 4, - 91, 4, 4, 4, 4, 4, 4, 4, 99, 4, - 4, 4, 4, 4, 4, 4, 4, 175, 4, 4, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 4, 4, 177, 4, 4, 4, 593, - 145, 146, 4, 4, 175, 177, 600, 4, 4, 4, - 4, 4, 489, 490, 491, 4, 4, 175, 175, 175, - 4, 4, 600, 4, 4, 4, 4, 4, 4, 174, - 4, 625, 626, 175, 628, 4, 4, 4, 177, 177, - 177, 4, 4, 174, 4, 177, 4, 625, 626, 175, - 628, 4, 4, 4, 4, 175, 600, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 177, 4, 175, 4, 4, 177, 4, 4, - 175, 625, 626, 4, 628, 7, 174, 7, 7, 7, - 7, 7, 569, 5, 5, 174, 5, 5, 3, 5, - 7, 174, 5, 5, 5, 3, 5, 7, 5, 5, - 175, 174, 7, 7, 7, 592, 7, 5, 5, 5, - 5, 5, 174, 174, 174, 7, 174, 174, 140, 7, - 174, 7, 7, 7, 7, 7, 7, 86, 174, 7, - 7, 7, 7, 4, 4, 4, 4, 174, 4, 4, - 174, 174, 174, 174, 174, 174, 174, 174, 174, 174, - 174, 174, 4, 4, 4, 174, 4, 6, 4, 174, - 174, 6, 6, 3, 6, 3, 3, 6, 177, 3, - 6, 6, 3, 6, 4, 4, 4, 4, 4, 4, - 4, 4, 174, 3, 6, 6, 3, 3, 6, 8, - 4, 4, 4, 4, 175, 177, 4, 4, 4, 175, - 175, 175, 4, 4, 175, 4, 175, 4, 4, 175, - 177, 175, 4, 6, 4, 4, 3, 175, 175, 175, - 175, 175, 175, 175, 174, 174, 174, 174, 174, 174, - 174, 8, 8, 8, 174, 8, 4, 174, 4, 4, - 174, 174, 4, 7, 5, 4, 4, 4, 4, 174, - 174, 855, 175, 618, 858, 861, 600, 861, 858, 523, - 864, 861, 861, 855, 864, 855, 370, 855, 593, 404, - 858, 875, 864, 861, 878, 875, 864, 881, 177, 855, - 855, 174, 855, 855, 174, 174, 177, 875, 864, 864, - 878, 864, 864, 897, 674, 175, 175, 901, 864, 408, - 867, 855, 864, 907, 858, 854, 910, 861, 873, 897, - 864, 915, 849, 901, 855, 915, 890, 870, 857, 907, - 883, 875, 910, 864, 878, 881, 855, 915, 420, 458, - 866, 1040, 81, 860, 875, 858, 455, 878, 863, 861, - 909, 907, 912, 897, 910, 907, 907, 901, 910, 450, - 910, 423, 880, 907, 430, 638, 910, 878, 876, 1046, - 440, 915, 897, 901, 599, 482, 907, 594, 628, 910, - 916, 1063, 475, 1080, 1097, -1, 478, -1, -1, -1, + 84, 85, 82, 83, 83, 77, 640, 77, 76, 77, + 78, 79, 80, 17, 82, 83, 634, 85, 617, 879, + 879, 77, 77, 879, 77, 77, 879, 879, 10, 16, + 17, 105, 106, 98, 99, 5, 101, 7, 77, 9, + 98, 77, 76, 77, 78, 79, 80, 523, 82, 83, + 7, 85, 144, 145, 146, 147, 77, 78, 79, 80, + 54, 55, 538, 13, 14, 78, 79, 3, 77, 96, + 78, 79, 8, 11, 12, 7, 103, 15, 72, 73, + 18, 19, 20, 551, 0, 72, 73, 21, 180, 108, + 109, 110, 111, 112, 113, 563, 564, 565, 92, 93, + 7, 3, 7, 177, 6, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 3, 7, 177, + 7, 55, 8, 57, 58, 54, 3, 61, 62, 63, + 3, 8, 3, 6, 72, 73, 65, 8, 72, 73, + 3, 79, 7, 72, 73, 8, 84, 85, 86, 87, + 88, 153, 90, 3, 156, 157, 158, 95, 8, 72, + 73, 3, 91, 21, 6, 94, 104, 7, 150, 107, + 3, 3, 30, 7, 6, 8, 114, 159, 160, 161, + 7, 3, 3, 177, 122, 123, 8, 8, 126, 127, + 177, 3, 3, 105, 106, 177, 8, 8, 1058, 1058, + 3, 7, 1058, 6, 177, 1058, 1058, 177, 178, 179, + 180, 124, 125, 21, 72, 73, 141, 142, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 7, 3, 3, 7, 177, + 54, 8, 8, 177, 3, 3, 7, 55, 177, 8, + 8, 53, 151, 67, 68, 69, 70, 71, 72, 73, + 118, 119, 120, 121, 177, 6, 3, 885, 867, 4, + 43, 44, 45, 46, 47, 48, 49, 91, 912, 3, + 94, 54, 3, 3, 8, 3, 8, 8, 8, 3, + 8, 64, 3, 66, 8, 379, 4, 54, 4, 72, + 73, 74, 75, 76, 77, 78, 79, 4, 55, 56, + 57, 58, 59, 60, 4, 72, 73, 4, 91, 177, + 4, 94, 95, 3, 3, 72, 73, 4, 8, 102, + 3, 3, 416, 90, 4, 8, 420, 4, 4, 96, + 97, 98, 99, 100, 101, 3, 8, 4, 432, 3, + 8, 435, 420, 4, 8, 55, 3, 3, 442, 4, + 432, 8, 432, 177, 432, 369, 370, 435, 452, 177, + 3, 8, 72, 73, 442, 8, 432, 432, 462, 432, + 432, 467, 462, 467, 452, 3, 420, 467, 467, 4, + 8, 4, 3, 432, 462, 4, 432, 8, 432, 467, + 3, 435, 4, 487, 177, 8, 4, 8, 442, 4, + 4, 432, 8, 4, 435, 4, 4, 4, 452, 487, + 177, 442, 435, 432, 115, 116, 117, 435, 462, 442, + 177, 452, 4, 467, 442, 43, 44, 45, 46, 47, + 48, 49, 178, 4, 52, 4, 54, 55, 177, 72, + 73, 4, 152, 487, 154, 155, 80, 81, 82, 83, + 22, 23, 24, 25, 72, 73, 4, 75, 76, 4, + 78, 79, 4, 4, 4, 4, 4, 177, 4, 4, + 4, 180, 178, 91, 178, 178, 94, 179, 4, 4, + 179, 4, 178, 4, 102, 4, 4, 501, 502, 503, + 4, 4, 4, 4, 4, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 4, 4, + 4, 4, 4, 4, 608, 148, 149, 4, 178, 4, + 4, 615, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 615, 4, 180, + 4, 4, 4, 4, 177, 4, 640, 641, 178, 643, + 4, 180, 4, 4, 4, 4, 178, 4, 178, 177, + 4, 178, 640, 641, 4, 643, 4, 4, 4, 4, + 584, 615, 4, 4, 4, 178, 4, 4, 4, 4, + 180, 4, 4, 4, 180, 180, 180, 4, 178, 4, + 178, 178, 4, 607, 4, 180, 640, 641, 4, 643, + 180, 4, 4, 4, 4, 4, 4, 89, 178, 177, + 7, 7, 7, 7, 7, 7, 5, 177, 5, 5, + 5, 177, 5, 7, 5, 5, 5, 177, 5, 7, + 5, 5, 8, 177, 7, 7, 7, 7, 5, 5, + 5, 143, 5, 7, 177, 177, 177, 177, 177, 177, + 177, 5, 7, 177, 7, 177, 7, 177, 7, 7, + 177, 177, 177, 7, 7, 7, 7, 7, 177, 177, + 177, 177, 177, 177, 177, 7, 177, 177, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 3, 177, + 6, 3, 6, 6, 3, 6, 3, 3, 6, 178, + 3, 6, 6, 3, 6, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 3, 180, 6, 3, 6, 6, + 4, 4, 4, 4, 180, 178, 4, 4, 4, 4, + 178, 4, 178, 178, 4, 178, 178, 4, 4, 180, + 4, 6, 3, 5, 178, 178, 4, 538, 8, 178, + 4, 8, 8, 3, 178, 8, 4, 4, 178, 178, + 178, 4, 178, 4, 178, 7, 177, 180, 177, 177, + 177, 4, 177, 177, 4, 4, 870, 4, 633, 873, + 876, 608, 876, 873, 416, 879, 876, 876, 870, 879, + 870, 689, 870, 379, 420, 873, 890, 879, 876, 893, + 890, 879, 896, 864, 870, 870, 615, 870, 870, 177, + 869, 180, 890, 879, 879, 893, 879, 879, 912, 177, + 177, 870, 916, 896, 870, 177, 870, 177, 922, 873, + 879, 925, 876, 879, 912, 879, 930, 888, 916, 870, + 930, 177, 177, 177, 922, 178, 890, 925, 879, 893, + 177, 870, 930, 885, 882, 898, 879, 905, 432, 890, + 879, 879, 893, 470, 872, 870, 881, 177, 912, 1058, + 81, 462, 916, 875, 873, 878, 876, 178, 922, 924, + 922, 925, 435, 467, 925, 442, 930, 927, 895, 653, + 452, 922, 893, 178, 925, 891, 1064, 614, 487, 922, + 916, 912, 925, 643, 922, 931, 1081, 925, 1098, 490, + 1115, 494, -1, -1, 609, -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, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1040, -1, -1, -1, - 1040, -1, 1046, -1, -1, -1, 1046, -1, 1040, -1, - -1, -1, 1040, -1, -1, -1, -1, -1, 1046, 1063, - -1, -1, -1, 1063, 1040, 1040, -1, 1040, 1040, -1, - -1, -1, -1, -1, 1040, 1063, -1, -1, 1040, -1, - -1, -1, -1, -1, -1, -1, 1040, -1, -1, -1, - -1, -1, 1046, -1, -1, -1, -1, -1, -1, 1040, - -1, -1, -1, -1, -1, 1046, -1, -1, -1, 1063 + -1, -1, -1, -1, 1058, -1, -1, -1, 1058, -1, + 1064, -1, -1, -1, 1064, -1, 1058, -1, -1, -1, + 1058, -1, -1, -1, -1, -1, 1064, 1081, -1, -1, + -1, 1081, 1058, 1058, -1, 1058, 1058, -1, -1, -1, + -1, -1, -1, 1081, -1, -1, -1, -1, -1, 1058, + -1, -1, 1058, -1, 1058, -1, -1, -1, -1, -1, + 1064, -1, -1, -1, -1, -1, -1, 1058, -1, -1, + -1, -1, -1, 1064, -1, 1058, -1, 1081, -1, 1058, + 1058 }; const unsigned short Dhcp6Parser::yystos_[] = { - 0, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 0, 5, 7, 9, 174, 175, 176, 177, - 195, 196, 197, 202, 7, 211, 7, 217, 7, 232, - 7, 330, 7, 407, 7, 423, 7, 440, 7, 359, - 7, 365, 7, 389, 7, 306, 7, 501, 7, 548, - 7, 539, 203, 198, 212, 218, 233, 331, 408, 424, - 441, 360, 366, 390, 307, 502, 549, 540, 195, 204, - 205, 174, 200, 201, 10, 147, 156, 157, 158, 174, - 210, 213, 214, 215, 531, 533, 535, 546, 11, 12, + 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 0, 5, 7, 9, 177, 178, 179, 180, + 198, 199, 200, 205, 7, 214, 7, 220, 7, 238, + 7, 336, 7, 413, 7, 429, 7, 446, 7, 365, + 7, 371, 7, 395, 7, 312, 7, 507, 7, 554, + 7, 545, 206, 201, 215, 221, 239, 337, 414, 430, + 447, 366, 372, 396, 313, 508, 555, 546, 198, 207, + 208, 177, 203, 204, 10, 150, 159, 160, 161, 177, + 213, 216, 217, 218, 537, 539, 541, 552, 11, 12, 15, 18, 19, 20, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 69, 70, 76, 81, 82, 83, 84, - 85, 87, 92, 101, 104, 111, 119, 120, 123, 124, - 210, 219, 220, 221, 223, 224, 225, 226, 227, 228, - 230, 239, 241, 243, 280, 286, 292, 298, 300, 314, - 324, 344, 349, 357, 383, 413, 415, 434, 464, 476, - 488, 489, 497, 499, 537, 16, 17, 210, 234, 235, - 236, 238, 413, 415, 61, 63, 71, 72, 73, 74, - 75, 88, 91, 99, 210, 223, 224, 225, 226, 332, - 333, 334, 336, 338, 340, 342, 344, 347, 348, 383, - 401, 413, 415, 417, 434, 459, 62, 210, 340, 342, - 383, 409, 410, 411, 413, 415, 64, 65, 66, 67, - 68, 210, 340, 342, 383, 413, 415, 425, 426, 427, - 429, 430, 432, 433, 87, 93, 94, 95, 96, 97, - 98, 210, 383, 413, 415, 442, 443, 444, 445, 447, - 449, 451, 453, 455, 457, 357, 21, 52, 54, 55, - 58, 59, 60, 210, 261, 367, 368, 369, 370, 371, - 372, 373, 375, 377, 379, 380, 382, 413, 415, 53, - 56, 57, 210, 261, 371, 377, 391, 392, 393, 394, - 395, 397, 398, 399, 400, 413, 415, 102, 103, 210, - 308, 309, 310, 312, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 145, 146, 210, - 413, 415, 503, 504, 505, 506, 508, 510, 511, 513, - 514, 515, 518, 520, 521, 522, 525, 527, 529, 148, - 550, 551, 552, 13, 14, 541, 542, 543, 545, 6, - 3, 4, 8, 3, 216, 547, 532, 534, 536, 4, - 3, 8, 222, 538, 231, 240, 242, 244, 4, 4, - 4, 4, 4, 229, 325, 358, 384, 414, 416, 345, - 350, 287, 299, 293, 281, 465, 435, 301, 315, 477, - 4, 490, 498, 500, 3, 8, 237, 4, 3, 8, - 402, 418, 335, 337, 339, 4, 4, 343, 341, 460, - 3, 8, 412, 3, 8, 428, 4, 431, 4, 4, - 3, 8, 458, 446, 448, 450, 452, 454, 456, 8, - 3, 8, 374, 262, 4, 378, 376, 381, 4, 8, - 3, 396, 4, 4, 8, 3, 311, 313, 3, 8, - 4, 507, 509, 4, 512, 4, 4, 516, 519, 4, - 4, 523, 526, 528, 530, 3, 8, 553, 3, 8, - 544, 4, 3, 8, 195, 195, 174, 4, 4, 4, - 4, 4, 214, 4, 4, 4, 4, 4, 4, 175, - 175, 175, 175, 175, 4, 4, 4, 4, 4, 4, + 49, 50, 51, 52, 53, 54, 72, 73, 79, 84, + 85, 86, 87, 88, 90, 95, 104, 107, 114, 122, + 123, 126, 127, 213, 222, 223, 224, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 236, 245, 247, 249, + 286, 292, 298, 304, 306, 320, 330, 350, 355, 363, + 389, 419, 421, 440, 470, 482, 494, 495, 503, 505, + 543, 16, 17, 213, 240, 241, 242, 244, 419, 421, + 64, 66, 74, 75, 76, 77, 78, 91, 94, 102, + 213, 226, 227, 228, 229, 230, 231, 232, 338, 339, + 340, 342, 344, 346, 348, 350, 353, 354, 389, 407, + 419, 421, 423, 440, 465, 65, 213, 346, 348, 389, + 415, 416, 417, 419, 421, 67, 68, 69, 70, 71, + 213, 346, 348, 389, 419, 421, 431, 432, 433, 435, + 436, 438, 439, 90, 96, 97, 98, 99, 100, 101, + 213, 389, 419, 421, 448, 449, 450, 451, 453, 455, + 457, 459, 461, 463, 363, 21, 55, 57, 58, 61, + 62, 63, 213, 267, 373, 374, 375, 376, 377, 378, + 379, 381, 383, 385, 386, 388, 419, 421, 56, 59, + 60, 213, 267, 377, 383, 397, 398, 399, 400, 401, + 403, 404, 405, 406, 419, 421, 105, 106, 213, 314, + 315, 316, 318, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 148, 149, 213, 419, + 421, 509, 510, 511, 512, 514, 516, 517, 519, 520, + 521, 524, 526, 527, 528, 531, 533, 535, 151, 556, + 557, 558, 13, 14, 547, 548, 549, 551, 6, 3, + 4, 8, 3, 219, 553, 538, 540, 542, 4, 3, + 8, 225, 544, 237, 246, 248, 250, 4, 4, 4, + 4, 4, 4, 4, 4, 235, 331, 364, 390, 420, + 422, 351, 356, 293, 305, 299, 287, 471, 441, 307, + 321, 483, 4, 496, 504, 506, 3, 8, 243, 4, + 3, 8, 408, 424, 341, 343, 345, 4, 4, 349, + 347, 466, 3, 8, 418, 3, 8, 434, 4, 437, + 4, 4, 3, 8, 464, 452, 454, 456, 458, 460, + 462, 8, 3, 8, 380, 268, 4, 384, 382, 387, + 4, 8, 3, 402, 4, 4, 8, 3, 317, 319, + 3, 8, 4, 513, 515, 4, 518, 4, 4, 522, + 525, 4, 4, 529, 532, 534, 536, 3, 8, 559, + 3, 8, 550, 4, 3, 8, 198, 198, 177, 4, + 4, 4, 4, 4, 217, 4, 4, 4, 4, 4, + 4, 178, 178, 178, 178, 180, 179, 179, 178, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 175, 4, 4, 4, 220, 4, 177, 235, 4, - 4, 4, 4, 4, 175, 177, 4, 4, 4, 333, - 4, 410, 4, 175, 4, 175, 175, 426, 4, 4, - 4, 4, 4, 4, 4, 444, 4, 4, 175, 4, - 4, 4, 177, 369, 4, 177, 177, 393, 4, 4, - 309, 177, 4, 4, 175, 4, 175, 175, 4, 4, - 177, 177, 4, 4, 4, 4, 504, 4, 551, 4, - 175, 542, 4, 7, 7, 195, 195, 195, 174, 7, - 7, 7, 7, 5, 174, 5, 5, 5, 197, 199, - 174, 77, 78, 79, 80, 346, 5, 5, 5, 5, - 7, 5, 5, 5, 7, 7, 7, 199, 7, 5, - 206, 5, 5, 174, 174, 174, 206, 174, 7, 174, - 174, 174, 206, 206, 206, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 195, 174, 174, 174, - 138, 139, 517, 140, 141, 142, 143, 144, 177, 524, - 174, 174, 174, 5, 5, 195, 219, 550, 541, 234, - 21, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 210, 249, - 250, 251, 254, 256, 258, 260, 261, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 273, 274, 276, 278, - 249, 7, 245, 246, 247, 7, 326, 327, 328, 7, - 361, 362, 363, 7, 385, 386, 387, 7, 351, 352, - 353, 95, 174, 288, 289, 290, 291, 204, 96, 98, - 290, 294, 295, 296, 297, 86, 282, 283, 284, 7, - 466, 467, 7, 436, 437, 438, 7, 302, 303, 304, - 105, 106, 107, 108, 109, 110, 316, 317, 318, 319, - 320, 321, 322, 323, 21, 115, 116, 117, 118, 210, - 263, 413, 415, 478, 479, 480, 483, 484, 486, 487, - 121, 122, 210, 413, 415, 491, 492, 493, 495, 503, - 207, 7, 403, 404, 405, 7, 419, 420, 421, 100, - 445, 461, 462, 7, 554, 555, 245, 8, 8, 8, - 8, 252, 255, 257, 259, 4, 4, 4, 4, 4, - 272, 4, 4, 275, 277, 279, 4, 4, 4, 3, - 8, 8, 248, 6, 3, 329, 6, 3, 364, 6, - 3, 388, 6, 3, 354, 6, 3, 3, 6, 6, - 3, 6, 285, 3, 8, 468, 3, 6, 439, 6, - 3, 305, 6, 3, 4, 4, 4, 4, 4, 4, - 3, 8, 481, 485, 4, 4, 4, 3, 8, 494, - 496, 3, 8, 8, 174, 208, 209, 406, 6, 3, - 422, 6, 3, 463, 8, 556, 3, 6, 6, 4, - 4, 4, 4, 175, 177, 175, 177, 175, 4, 175, - 175, 4, 4, 4, 175, 175, 177, 250, 249, 247, - 332, 328, 367, 363, 391, 387, 210, 223, 224, 225, - 226, 261, 324, 336, 338, 340, 342, 344, 348, 355, - 356, 383, 413, 415, 459, 353, 289, 295, 4, 283, - 89, 90, 210, 261, 383, 413, 415, 469, 470, 471, - 472, 473, 475, 467, 442, 438, 308, 304, 175, 175, - 175, 175, 175, 175, 317, 4, 4, 175, 175, 175, - 479, 4, 4, 492, 6, 3, 409, 405, 425, 421, - 4, 149, 151, 152, 210, 261, 413, 415, 557, 558, - 559, 560, 562, 555, 22, 23, 24, 25, 253, 174, - 174, 174, 174, 174, 174, 174, 8, 8, 8, 8, - 3, 8, 174, 474, 4, 8, 3, 8, 8, 112, - 113, 114, 482, 174, 174, 174, 174, 8, 8, 174, - 563, 4, 561, 3, 8, 356, 4, 177, 471, 4, - 175, 4, 558, 174, 5, 174, 7, 564, 565, 566, - 3, 6, 150, 153, 154, 155, 567, 568, 569, 571, - 572, 573, 565, 570, 4, 4, 4, 3, 8, 4, - 177, 175, 175, 568, 174 + 4, 4, 4, 4, 4, 4, 178, 4, 4, 4, + 223, 4, 180, 241, 4, 4, 4, 4, 4, 178, + 180, 4, 4, 4, 339, 4, 416, 4, 178, 4, + 178, 178, 432, 4, 4, 4, 4, 4, 4, 4, + 450, 4, 4, 178, 4, 4, 4, 180, 375, 4, + 180, 180, 399, 4, 4, 315, 180, 4, 4, 178, + 4, 178, 178, 4, 4, 180, 180, 4, 4, 4, + 4, 510, 4, 557, 4, 178, 548, 4, 7, 7, + 198, 198, 198, 177, 7, 7, 7, 7, 5, 177, + 5, 5, 5, 200, 202, 177, 80, 81, 82, 83, + 352, 5, 5, 5, 5, 7, 5, 5, 5, 7, + 7, 7, 202, 7, 5, 209, 5, 5, 177, 177, + 177, 209, 177, 7, 177, 177, 177, 209, 209, 209, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 177, 198, 177, 177, 177, 141, 142, 523, 143, 144, + 145, 146, 147, 180, 530, 177, 177, 177, 5, 5, + 198, 222, 556, 547, 240, 21, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 213, 255, 256, 257, 260, 262, 264, + 266, 267, 269, 270, 271, 272, 273, 274, 275, 276, + 277, 279, 280, 282, 284, 255, 7, 251, 252, 253, + 7, 332, 333, 334, 7, 367, 368, 369, 7, 391, + 392, 393, 7, 357, 358, 359, 98, 177, 294, 295, + 296, 297, 207, 99, 101, 296, 300, 301, 302, 303, + 89, 288, 289, 290, 7, 472, 473, 7, 442, 443, + 444, 7, 308, 309, 310, 108, 109, 110, 111, 112, + 113, 322, 323, 324, 325, 326, 327, 328, 329, 21, + 118, 119, 120, 121, 213, 269, 419, 421, 484, 485, + 486, 489, 490, 492, 493, 124, 125, 213, 419, 421, + 497, 498, 499, 501, 509, 210, 7, 409, 410, 411, + 7, 425, 426, 427, 103, 451, 467, 468, 7, 560, + 561, 251, 8, 8, 8, 8, 258, 261, 263, 265, + 4, 4, 4, 4, 4, 278, 4, 4, 281, 283, + 285, 4, 4, 4, 3, 8, 8, 254, 6, 3, + 335, 6, 3, 370, 6, 3, 394, 6, 3, 360, + 6, 3, 3, 6, 6, 3, 6, 291, 3, 8, + 474, 3, 6, 445, 6, 3, 311, 6, 3, 4, + 4, 4, 4, 4, 4, 3, 8, 487, 491, 4, + 4, 4, 3, 8, 500, 502, 3, 8, 8, 177, + 211, 212, 412, 6, 3, 428, 6, 3, 469, 8, + 562, 3, 6, 6, 4, 4, 4, 4, 178, 180, + 178, 180, 178, 4, 178, 178, 4, 4, 4, 178, + 178, 180, 256, 255, 253, 338, 334, 373, 369, 397, + 393, 213, 226, 227, 228, 229, 230, 231, 232, 267, + 330, 342, 344, 346, 348, 350, 354, 361, 362, 389, + 419, 421, 465, 359, 295, 301, 4, 289, 92, 93, + 213, 267, 389, 419, 421, 475, 476, 477, 478, 479, + 481, 473, 448, 444, 314, 310, 178, 178, 178, 178, + 178, 178, 323, 4, 4, 178, 178, 178, 485, 4, + 4, 498, 6, 3, 415, 411, 431, 427, 4, 152, + 154, 155, 213, 267, 419, 421, 563, 564, 565, 566, + 568, 561, 22, 23, 24, 25, 259, 177, 177, 177, + 177, 177, 177, 177, 8, 8, 8, 8, 3, 8, + 177, 480, 4, 8, 3, 8, 8, 115, 116, 117, + 488, 177, 177, 177, 177, 8, 8, 177, 569, 4, + 567, 3, 8, 362, 4, 180, 477, 4, 178, 4, + 564, 177, 5, 177, 7, 570, 571, 572, 3, 6, + 153, 156, 157, 158, 573, 574, 575, 577, 578, 579, + 571, 576, 4, 4, 4, 3, 8, 4, 180, 178, + 178, 574, 177 }; const unsigned short Dhcp6Parser::yyr1_[] = { - 0, 178, 180, 179, 181, 179, 182, 179, 183, 179, - 184, 179, 185, 179, 186, 179, 187, 179, 188, 179, - 189, 179, 190, 179, 191, 179, 192, 179, 193, 179, - 194, 179, 195, 195, 195, 195, 195, 195, 195, 196, - 198, 197, 199, 200, 200, 201, 201, 203, 202, 204, - 204, 205, 205, 207, 206, 208, 208, 209, 209, 210, - 212, 211, 213, 213, 214, 214, 214, 214, 214, 214, - 216, 215, 218, 217, 219, 219, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 222, - 221, 223, 224, 225, 226, 227, 229, 228, 231, 230, - 233, 232, 234, 234, 235, 235, 235, 235, 235, 237, - 236, 238, 240, 239, 242, 241, 244, 243, 245, 245, - 246, 246, 248, 247, 249, 249, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, - 250, 250, 250, 250, 250, 250, 252, 251, 253, 253, - 253, 253, 255, 254, 257, 256, 259, 258, 260, 262, - 261, 263, 264, 265, 266, 267, 268, 269, 270, 272, - 271, 273, 275, 274, 277, 276, 279, 278, 281, 280, - 282, 282, 283, 285, 284, 287, 286, 288, 288, 289, - 289, 290, 291, 293, 292, 294, 294, 295, 295, 295, - 296, 297, 299, 298, 301, 300, 302, 302, 303, 303, - 305, 304, 307, 306, 308, 308, 308, 309, 309, 311, - 310, 313, 312, 315, 314, 316, 316, 317, 317, 317, - 317, 317, 317, 318, 319, 320, 321, 322, 323, 325, - 324, 326, 326, 327, 327, 329, 328, 331, 330, 332, - 332, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, - 333, 335, 334, 337, 336, 339, 338, 341, 340, 343, - 342, 345, 344, 346, 346, 346, 346, 347, 348, 350, - 349, 351, 351, 352, 352, 354, 353, 355, 355, 356, - 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 356, 356, 356, 358, 357, 360, 359, - 361, 361, 362, 362, 364, 363, 366, 365, 367, 367, - 368, 368, 369, 369, 369, 369, 369, 369, 369, 369, - 369, 369, 370, 371, 372, 374, 373, 376, 375, 378, - 377, 379, 381, 380, 382, 384, 383, 385, 385, 386, - 386, 388, 387, 390, 389, 391, 391, 392, 392, 393, - 393, 393, 393, 393, 393, 393, 393, 393, 394, 396, - 395, 397, 398, 399, 400, 402, 401, 403, 403, 404, - 404, 406, 405, 408, 407, 409, 409, 410, 410, 410, - 410, 410, 410, 410, 412, 411, 414, 413, 416, 415, - 418, 417, 419, 419, 420, 420, 422, 421, 424, 423, - 425, 425, 426, 426, 426, 426, 426, 426, 426, 426, - 426, 426, 426, 428, 427, 429, 431, 430, 432, 433, - 435, 434, 436, 436, 437, 437, 439, 438, 441, 440, - 442, 442, 443, 443, 444, 444, 444, 444, 444, 444, - 444, 444, 444, 444, 444, 446, 445, 448, 447, 450, - 449, 452, 451, 454, 453, 456, 455, 458, 457, 460, - 459, 461, 461, 463, 462, 465, 464, 466, 466, 468, - 467, 469, 469, 470, 470, 471, 471, 471, 471, 471, - 471, 471, 472, 474, 473, 475, 477, 476, 478, 478, - 479, 479, 479, 479, 479, 479, 479, 479, 479, 481, - 480, 482, 482, 482, 483, 485, 484, 486, 487, 488, - 490, 489, 491, 491, 492, 492, 492, 492, 492, 494, - 493, 496, 495, 498, 497, 500, 499, 502, 501, 503, - 503, 504, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 504, 504, 504, 505, - 507, 506, 509, 508, 510, 512, 511, 513, 514, 516, - 515, 517, 517, 519, 518, 520, 521, 523, 522, 524, - 524, 524, 524, 524, 526, 525, 528, 527, 530, 529, - 532, 531, 534, 533, 536, 535, 538, 537, 540, 539, - 541, 541, 542, 542, 544, 543, 545, 547, 546, 549, - 548, 550, 550, 551, 553, 552, 554, 554, 556, 555, - 557, 557, 558, 558, 558, 558, 558, 558, 558, 559, - 561, 560, 563, 562, 564, 564, 566, 565, 567, 567, - 568, 568, 568, 568, 570, 569, 571, 572, 573 + 0, 181, 183, 182, 184, 182, 185, 182, 186, 182, + 187, 182, 188, 182, 189, 182, 190, 182, 191, 182, + 192, 182, 193, 182, 194, 182, 195, 182, 196, 182, + 197, 182, 198, 198, 198, 198, 198, 198, 198, 199, + 201, 200, 202, 203, 203, 204, 204, 206, 205, 207, + 207, 208, 208, 210, 209, 211, 211, 212, 212, 213, + 215, 214, 216, 216, 217, 217, 217, 217, 217, 217, + 219, 218, 221, 220, 222, 222, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, + 223, 223, 225, 224, 226, 227, 228, 229, 230, 231, + 232, 233, 235, 234, 237, 236, 239, 238, 240, 240, + 241, 241, 241, 241, 241, 243, 242, 244, 246, 245, + 248, 247, 250, 249, 251, 251, 252, 252, 254, 253, + 255, 255, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 258, 257, 259, 259, 259, 259, 261, 260, + 263, 262, 265, 264, 266, 268, 267, 269, 270, 271, + 272, 273, 274, 275, 276, 278, 277, 279, 281, 280, + 283, 282, 285, 284, 287, 286, 288, 288, 289, 291, + 290, 293, 292, 294, 294, 295, 295, 296, 297, 299, + 298, 300, 300, 301, 301, 301, 302, 303, 305, 304, + 307, 306, 308, 308, 309, 309, 311, 310, 313, 312, + 314, 314, 314, 315, 315, 317, 316, 319, 318, 321, + 320, 322, 322, 323, 323, 323, 323, 323, 323, 324, + 325, 326, 327, 328, 329, 331, 330, 332, 332, 333, + 333, 335, 334, 337, 336, 338, 338, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 339, 339, 339, 339, 339, 339, 339, 339, 339, 339, + 341, 340, 343, 342, 345, 344, 347, 346, 349, 348, + 351, 350, 352, 352, 352, 352, 353, 354, 356, 355, + 357, 357, 358, 358, 360, 359, 361, 361, 362, 362, + 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, + 362, 362, 362, 362, 362, 362, 362, 362, 364, 363, + 366, 365, 367, 367, 368, 368, 370, 369, 372, 371, + 373, 373, 374, 374, 375, 375, 375, 375, 375, 375, + 375, 375, 375, 375, 376, 377, 378, 380, 379, 382, + 381, 384, 383, 385, 387, 386, 388, 390, 389, 391, + 391, 392, 392, 394, 393, 396, 395, 397, 397, 398, + 398, 399, 399, 399, 399, 399, 399, 399, 399, 399, + 400, 402, 401, 403, 404, 405, 406, 408, 407, 409, + 409, 410, 410, 412, 411, 414, 413, 415, 415, 416, + 416, 416, 416, 416, 416, 416, 418, 417, 420, 419, + 422, 421, 424, 423, 425, 425, 426, 426, 428, 427, + 430, 429, 431, 431, 432, 432, 432, 432, 432, 432, + 432, 432, 432, 432, 432, 434, 433, 435, 437, 436, + 438, 439, 441, 440, 442, 442, 443, 443, 445, 444, + 447, 446, 448, 448, 449, 449, 450, 450, 450, 450, + 450, 450, 450, 450, 450, 450, 450, 452, 451, 454, + 453, 456, 455, 458, 457, 460, 459, 462, 461, 464, + 463, 466, 465, 467, 467, 469, 468, 471, 470, 472, + 472, 474, 473, 475, 475, 476, 476, 477, 477, 477, + 477, 477, 477, 477, 478, 480, 479, 481, 483, 482, + 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, + 485, 487, 486, 488, 488, 488, 489, 491, 490, 492, + 493, 494, 496, 495, 497, 497, 498, 498, 498, 498, + 498, 500, 499, 502, 501, 504, 503, 506, 505, 508, + 507, 509, 509, 510, 510, 510, 510, 510, 510, 510, + 510, 510, 510, 510, 510, 510, 510, 510, 510, 510, + 510, 511, 513, 512, 515, 514, 516, 518, 517, 519, + 520, 522, 521, 523, 523, 525, 524, 526, 527, 529, + 528, 530, 530, 530, 530, 530, 532, 531, 534, 533, + 536, 535, 538, 537, 540, 539, 542, 541, 544, 543, + 546, 545, 547, 547, 548, 548, 550, 549, 551, 553, + 552, 555, 554, 556, 556, 557, 559, 558, 560, 560, + 562, 561, 563, 563, 564, 564, 564, 564, 564, 564, + 564, 565, 567, 566, 569, 568, 570, 570, 572, 571, + 573, 573, 574, 574, 574, 574, 576, 575, 577, 578, + 579 }; const unsigned char @@ -4813,64 +4854,66 @@ namespace isc { namespace dhcp { 0, 6, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 3, 3, 3, 3, 3, 0, 4, 0, 6, - 0, 4, 1, 3, 1, 1, 1, 1, 1, 0, - 4, 3, 0, 6, 0, 6, 0, 6, 0, 1, - 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 4, 1, 1, - 1, 1, 0, 4, 0, 4, 0, 4, 3, 0, - 4, 3, 3, 3, 3, 3, 3, 3, 3, 0, - 4, 3, 0, 4, 0, 4, 0, 4, 0, 6, - 1, 3, 1, 0, 4, 0, 6, 1, 3, 1, - 1, 1, 1, 0, 6, 1, 3, 1, 1, 1, - 1, 1, 0, 6, 0, 6, 0, 1, 1, 3, - 0, 4, 0, 4, 1, 3, 1, 1, 1, 0, - 4, 0, 4, 0, 6, 1, 3, 1, 1, 1, - 1, 1, 1, 3, 3, 3, 3, 3, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 0, 4, 1, - 3, 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, 1, 1, 1, 1, 3, 3, 0, - 6, 0, 1, 1, 3, 0, 4, 1, 3, 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, 0, 4, 0, 4, 0, 1, - 1, 3, 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, 0, 4, 0, 4, 0, 1, 1, 3, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 3, 3, 0, 6, 0, 1, 1, - 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, - 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, - 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, + 1, 1, 0, 4, 3, 3, 3, 3, 3, 3, + 3, 3, 0, 4, 0, 6, 0, 4, 1, 3, + 1, 1, 1, 1, 1, 0, 4, 3, 0, 6, + 0, 6, 0, 6, 0, 1, 1, 3, 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 3, 0, 4, 3, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 0, 4, 1, 1, 1, 1, 0, 4, + 0, 4, 0, 4, 3, 0, 4, 3, 3, 3, + 3, 3, 3, 3, 3, 0, 4, 3, 0, 4, + 0, 4, 0, 4, 0, 6, 1, 3, 1, 0, + 4, 0, 6, 1, 3, 1, 1, 1, 1, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 0, 6, 0, 6, 0, 1, 1, 3, 0, 4, 0, 4, + 1, 3, 1, 1, 1, 0, 4, 0, 4, 0, + 6, 1, 3, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 0, 6, 0, 1, 1, + 3, 0, 4, 0, 4, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 4, + 0, 4, 1, 1, 1, 1, 3, 3, 0, 6, + 0, 1, 1, 3, 0, 4, 1, 3, 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, 0, 4, 0, 4, 0, 1, 1, 3, 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, - 6, 1, 1, 0, 4, 0, 6, 1, 3, 0, - 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 4, 3, 0, 6, 1, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 4, 1, 1, 1, 3, 0, 4, 3, 3, 3, - 0, 6, 1, 3, 1, 1, 1, 1, 1, 0, - 4, 0, 4, 0, 4, 0, 6, 0, 4, 1, + 1, 1, 1, 1, 1, 3, 1, 0, 4, 0, + 4, 0, 4, 1, 0, 4, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 0, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 4, 0, 4, 3, 0, 4, 3, 3, 0, - 4, 1, 1, 0, 4, 3, 3, 0, 4, 1, - 1, 1, 1, 1, 0, 4, 0, 4, 0, 4, - 0, 4, 0, 4, 0, 4, 0, 6, 0, 4, - 1, 3, 1, 1, 0, 6, 3, 0, 6, 0, - 4, 1, 3, 1, 0, 6, 1, 3, 0, 4, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 3, - 0, 4, 0, 6, 1, 3, 0, 4, 1, 3, - 1, 1, 1, 1, 0, 4, 3, 3, 3 + 1, 0, 4, 1, 1, 3, 3, 0, 6, 0, + 1, 1, 3, 0, 4, 0, 4, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 4, 0, 6, 0, 1, 1, 3, 0, 4, + 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 3, 0, 4, + 3, 3, 0, 6, 0, 1, 1, 3, 0, 4, + 0, 4, 0, 1, 1, 3, 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, 6, 1, 1, 0, 4, 0, 6, 1, + 3, 0, 4, 0, 1, 1, 3, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 4, 3, 0, 6, + 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 0, 4, 1, 1, 1, 3, 0, 4, 3, + 3, 3, 0, 6, 1, 3, 1, 1, 1, 1, + 1, 0, 4, 0, 4, 0, 4, 0, 6, 0, + 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 0, 4, 0, 4, 3, 0, 4, 3, + 3, 0, 4, 1, 1, 0, 4, 3, 3, 0, + 4, 1, 1, 1, 1, 1, 0, 4, 0, 4, + 0, 4, 0, 4, 0, 4, 0, 4, 0, 6, + 0, 4, 1, 3, 1, 1, 0, 6, 3, 0, + 6, 0, 4, 1, 3, 1, 0, 6, 1, 3, + 0, 4, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 3, 0, 4, 0, 6, 1, 3, 0, 4, + 1, 3, 1, 1, 1, 1, 0, 4, 3, 3, + 3 }; @@ -4892,7 +4935,8 @@ namespace isc { namespace dhcp { "\"reconnect-wait-time\"", "\"keyspace\"", "\"consistency\"", "\"serial-consistency\"", "\"request-timeout\"", "\"tcp-keepalive\"", "\"tcp-nodelay\"", "\"preferred-lifetime\"", "\"valid-lifetime\"", - "\"renew-timer\"", "\"rebind-timer\"", "\"decline-probation-period\"", + "\"renew-timer\"", "\"rebind-timer\"", "\"calculate-tee-times\"", + "\"t1-percent\"", "\"t2-percent\"", "\"decline-probation-period\"", "\"server-tag\"", "\"subnet6\"", "\"option-def\"", "\"option-data\"", "\"name\"", "\"data\"", "\"code\"", "\"space\"", "\"csv-format\"", "\"always-send\"", "\"record-types\"", "\"encapsulate\"", "\"array\"", @@ -4939,6 +4983,7 @@ namespace isc { namespace dhcp { "global_objects", "global_object", "dhcp6_object", "$@20", "sub_dhcp6", "$@21", "global_params", "global_param", "data_directory", "$@22", "preferred_lifetime", "valid_lifetime", "renew_timer", "rebind_timer", + "calculate_tee_times", "t1_percent", "t2_percent", "decline_probation_period", "server_tag", "$@23", "interfaces_config", "$@24", "sub_interfaces6", "$@25", "interfaces_config_params", "interfaces_config_param", "interfaces_list", "$@26", "re_detect", @@ -5029,74 +5074,76 @@ namespace isc { namespace dhcp { const unsigned short Dhcp6Parser::yyrline_[] = { - 0, 262, 262, 262, 263, 263, 264, 264, 265, 265, - 266, 266, 267, 267, 268, 268, 269, 269, 270, 270, - 271, 271, 272, 272, 273, 273, 274, 274, 275, 275, - 276, 276, 284, 285, 286, 287, 288, 289, 290, 293, - 298, 298, 309, 312, 313, 316, 320, 327, 327, 334, - 335, 338, 342, 349, 349, 356, 357, 360, 364, 375, - 385, 385, 400, 401, 405, 406, 407, 408, 409, 410, - 413, 413, 428, 428, 437, 438, 443, 444, 445, 446, - 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, - 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 478, - 478, 486, 491, 496, 501, 506, 511, 511, 519, 519, - 530, 530, 539, 540, 543, 544, 545, 546, 547, 550, - 550, 560, 566, 566, 578, 578, 590, 590, 600, 601, - 604, 605, 608, 608, 618, 619, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 644, 644, 651, 652, - 653, 654, 657, 657, 665, 665, 673, 673, 681, 686, - 686, 694, 699, 704, 709, 714, 719, 724, 729, 734, - 734, 742, 747, 747, 755, 755, 763, 763, 771, 771, - 781, 782, 784, 786, 786, 804, 804, 814, 815, 818, - 819, 822, 827, 832, 832, 842, 843, 846, 847, 848, - 851, 856, 863, 863, 873, 873, 883, 884, 887, 888, - 891, 891, 901, 901, 911, 912, 913, 916, 917, 920, - 920, 928, 928, 936, 936, 947, 948, 951, 952, 953, - 954, 955, 956, 959, 964, 969, 974, 979, 984, 992, - 992, 1005, 1006, 1009, 1010, 1017, 1017, 1043, 1043, 1054, - 1055, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, - 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, - 1078, 1081, 1081, 1089, 1089, 1097, 1097, 1105, 1105, 1113, - 1113, 1123, 1123, 1130, 1131, 1132, 1133, 1136, 1141, 1149, - 1149, 1160, 1161, 1165, 1166, 1169, 1169, 1177, 1178, 1181, - 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, - 1192, 1193, 1194, 1195, 1196, 1197, 1204, 1204, 1217, 1217, - 1226, 1227, 1230, 1231, 1236, 1236, 1251, 1251, 1265, 1266, - 1269, 1270, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, - 1281, 1282, 1285, 1287, 1292, 1294, 1294, 1302, 1302, 1310, - 1310, 1318, 1320, 1320, 1328, 1337, 1337, 1349, 1350, 1355, - 1356, 1361, 1361, 1373, 1373, 1385, 1386, 1391, 1392, 1397, - 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1408, 1410, - 1410, 1418, 1420, 1422, 1427, 1435, 1435, 1447, 1448, 1451, - 1452, 1455, 1455, 1465, 1465, 1474, 1475, 1478, 1479, 1480, - 1481, 1482, 1483, 1484, 1487, 1487, 1495, 1495, 1520, 1520, - 1550, 1550, 1562, 1563, 1566, 1567, 1570, 1570, 1582, 1582, - 1594, 1595, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, - 1606, 1607, 1608, 1611, 1611, 1619, 1624, 1624, 1632, 1637, - 1645, 1645, 1655, 1656, 1659, 1660, 1663, 1663, 1672, 1672, - 1681, 1682, 1685, 1686, 1690, 1691, 1692, 1693, 1694, 1695, - 1696, 1697, 1698, 1699, 1700, 1703, 1703, 1713, 1713, 1723, - 1723, 1731, 1731, 1739, 1739, 1747, 1747, 1755, 1755, 1768, - 1768, 1778, 1779, 1782, 1782, 1793, 1793, 1803, 1804, 1807, - 1807, 1817, 1818, 1821, 1822, 1825, 1826, 1827, 1828, 1829, - 1830, 1831, 1834, 1836, 1836, 1844, 1852, 1852, 1864, 1865, - 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1879, - 1879, 1886, 1887, 1888, 1891, 1896, 1896, 1904, 1909, 1916, - 1923, 1923, 1933, 1934, 1937, 1938, 1939, 1940, 1941, 1944, - 1944, 1952, 1952, 1962, 1962, 2002, 2002, 2014, 2014, 2024, - 2025, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, - 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2048, - 2053, 2053, 2061, 2061, 2069, 2074, 2074, 2082, 2087, 2092, - 2092, 2100, 2101, 2104, 2104, 2112, 2117, 2122, 2122, 2130, - 2133, 2136, 2139, 2142, 2148, 2148, 2156, 2156, 2164, 2164, - 2174, 2174, 2181, 2181, 2188, 2188, 2197, 2197, 2208, 2208, - 2218, 2219, 2223, 2224, 2227, 2227, 2237, 2247, 2247, 2257, - 2257, 2268, 2269, 2273, 2277, 2277, 2289, 2290, 2294, 2294, - 2302, 2303, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2315, - 2320, 2320, 2328, 2328, 2338, 2339, 2342, 2342, 2350, 2351, - 2354, 2355, 2356, 2357, 2360, 2360, 2368, 2373, 2378 + 0, 265, 265, 265, 266, 266, 267, 267, 268, 268, + 269, 269, 270, 270, 271, 271, 272, 272, 273, 273, + 274, 274, 275, 275, 276, 276, 277, 277, 278, 278, + 279, 279, 287, 288, 289, 290, 291, 292, 293, 296, + 301, 301, 312, 315, 316, 319, 323, 330, 330, 337, + 338, 341, 345, 352, 352, 359, 360, 363, 367, 378, + 388, 388, 403, 404, 408, 409, 410, 411, 412, 413, + 416, 416, 431, 431, 440, 441, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 484, 484, 492, 497, 502, 507, 512, 517, + 522, 527, 532, 532, 540, 540, 551, 551, 560, 561, + 564, 565, 566, 567, 568, 571, 571, 581, 587, 587, + 599, 599, 611, 611, 621, 622, 625, 626, 629, 629, + 639, 640, 643, 644, 645, 646, 647, 648, 649, 650, + 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, + 661, 662, 665, 665, 672, 673, 674, 675, 678, 678, + 686, 686, 694, 694, 702, 707, 707, 715, 720, 725, + 730, 735, 740, 745, 750, 755, 755, 763, 768, 768, + 776, 776, 784, 784, 792, 792, 802, 803, 805, 807, + 807, 825, 825, 835, 836, 839, 840, 843, 848, 853, + 853, 863, 864, 867, 868, 869, 872, 877, 884, 884, + 894, 894, 904, 905, 908, 909, 912, 912, 922, 922, + 932, 933, 934, 937, 938, 941, 941, 949, 949, 957, + 957, 968, 969, 972, 973, 974, 975, 976, 977, 980, + 985, 990, 995, 1000, 1005, 1013, 1013, 1026, 1027, 1030, + 1031, 1038, 1038, 1064, 1064, 1075, 1076, 1080, 1081, 1082, + 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, + 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, + 1105, 1105, 1113, 1113, 1121, 1121, 1129, 1129, 1137, 1137, + 1147, 1147, 1154, 1155, 1156, 1157, 1160, 1165, 1173, 1173, + 1184, 1185, 1189, 1190, 1193, 1193, 1201, 1202, 1205, 1206, + 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, + 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1231, 1231, + 1244, 1244, 1253, 1254, 1257, 1258, 1263, 1263, 1278, 1278, + 1292, 1293, 1296, 1297, 1300, 1301, 1302, 1303, 1304, 1305, + 1306, 1307, 1308, 1309, 1312, 1314, 1319, 1321, 1321, 1329, + 1329, 1337, 1337, 1345, 1347, 1347, 1355, 1364, 1364, 1376, + 1377, 1382, 1383, 1388, 1388, 1400, 1400, 1412, 1413, 1418, + 1419, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, + 1435, 1437, 1437, 1445, 1447, 1449, 1454, 1462, 1462, 1474, + 1475, 1478, 1479, 1482, 1482, 1492, 1492, 1501, 1502, 1505, + 1506, 1507, 1508, 1509, 1510, 1511, 1514, 1514, 1522, 1522, + 1547, 1547, 1577, 1577, 1589, 1590, 1593, 1594, 1597, 1597, + 1609, 1609, 1621, 1622, 1625, 1626, 1627, 1628, 1629, 1630, + 1631, 1632, 1633, 1634, 1635, 1638, 1638, 1646, 1651, 1651, + 1659, 1664, 1672, 1672, 1682, 1683, 1686, 1687, 1690, 1690, + 1699, 1699, 1708, 1709, 1712, 1713, 1717, 1718, 1719, 1720, + 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1730, 1730, 1740, + 1740, 1750, 1750, 1758, 1758, 1766, 1766, 1774, 1774, 1782, + 1782, 1795, 1795, 1805, 1806, 1809, 1809, 1820, 1820, 1830, + 1831, 1834, 1834, 1844, 1845, 1848, 1849, 1852, 1853, 1854, + 1855, 1856, 1857, 1858, 1861, 1863, 1863, 1871, 1879, 1879, + 1891, 1892, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, + 1903, 1906, 1906, 1913, 1914, 1915, 1918, 1923, 1923, 1931, + 1936, 1943, 1950, 1950, 1960, 1961, 1964, 1965, 1966, 1967, + 1968, 1971, 1971, 1979, 1979, 1989, 1989, 2029, 2029, 2041, + 2041, 2051, 2052, 2055, 2056, 2057, 2058, 2059, 2060, 2061, + 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, + 2072, 2075, 2080, 2080, 2088, 2088, 2096, 2101, 2101, 2109, + 2114, 2119, 2119, 2127, 2128, 2131, 2131, 2139, 2144, 2149, + 2149, 2157, 2160, 2163, 2166, 2169, 2175, 2175, 2183, 2183, + 2191, 2191, 2201, 2201, 2208, 2208, 2215, 2215, 2224, 2224, + 2235, 2235, 2245, 2246, 2250, 2251, 2254, 2254, 2264, 2274, + 2274, 2284, 2284, 2295, 2296, 2300, 2304, 2304, 2316, 2317, + 2321, 2321, 2329, 2330, 2333, 2334, 2335, 2336, 2337, 2338, + 2339, 2342, 2347, 2347, 2355, 2355, 2365, 2366, 2369, 2369, + 2377, 2378, 2381, 2382, 2383, 2384, 2387, 2387, 2395, 2400, + 2405 }; // Print the state stack on the debug stream. @@ -5131,8 +5178,8 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" // lalr1.cc:1218 } } // isc::dhcp -#line 5135 "dhcp6_parser.cc" // lalr1.cc:1218 -#line 2383 "dhcp6_parser.yy" // lalr1.cc:1219 +#line 5182 "dhcp6_parser.cc" // lalr1.cc:1218 +#line 2410 "dhcp6_parser.yy" // lalr1.cc:1219 void diff --git a/src/bin/dhcp6/dhcp6_parser.h b/src/bin/dhcp6/dhcp6_parser.h index eff48a6015..a9504c8cc0 100644 --- a/src/bin/dhcp6/dhcp6_parser.h +++ b/src/bin/dhcp6/dhcp6_parser.h @@ -580,137 +580,140 @@ namespace isc { namespace dhcp { TOKEN_VALID_LIFETIME = 299, TOKEN_RENEW_TIMER = 300, TOKEN_REBIND_TIMER = 301, - TOKEN_DECLINE_PROBATION_PERIOD = 302, - TOKEN_SERVER_TAG = 303, - TOKEN_SUBNET6 = 304, - TOKEN_OPTION_DEF = 305, - TOKEN_OPTION_DATA = 306, - TOKEN_NAME = 307, - TOKEN_DATA = 308, - TOKEN_CODE = 309, - TOKEN_SPACE = 310, - TOKEN_CSV_FORMAT = 311, - TOKEN_ALWAYS_SEND = 312, - TOKEN_RECORD_TYPES = 313, - TOKEN_ENCAPSULATE = 314, - TOKEN_ARRAY = 315, - TOKEN_POOLS = 316, - TOKEN_POOL = 317, - TOKEN_PD_POOLS = 318, - TOKEN_PREFIX = 319, - TOKEN_PREFIX_LEN = 320, - TOKEN_EXCLUDED_PREFIX = 321, - TOKEN_EXCLUDED_PREFIX_LEN = 322, - TOKEN_DELEGATED_LEN = 323, - TOKEN_USER_CONTEXT = 324, - TOKEN_COMMENT = 325, - TOKEN_SUBNET = 326, - TOKEN_INTERFACE = 327, - TOKEN_INTERFACE_ID = 328, - TOKEN_ID = 329, - TOKEN_RAPID_COMMIT = 330, - TOKEN_RESERVATION_MODE = 331, - TOKEN_DISABLED = 332, - TOKEN_OUT_OF_POOL = 333, - TOKEN_GLOBAL = 334, - TOKEN_ALL = 335, - TOKEN_SHARED_NETWORKS = 336, - TOKEN_MAC_SOURCES = 337, - TOKEN_RELAY_SUPPLIED_OPTIONS = 338, - TOKEN_HOST_RESERVATION_IDENTIFIERS = 339, - TOKEN_SANITY_CHECKS = 340, - TOKEN_LEASE_CHECKS = 341, - TOKEN_CLIENT_CLASSES = 342, - TOKEN_REQUIRE_CLIENT_CLASSES = 343, - TOKEN_TEST = 344, - TOKEN_ONLY_IF_REQUIRED = 345, - TOKEN_CLIENT_CLASS = 346, - TOKEN_RESERVATIONS = 347, - TOKEN_IP_ADDRESSES = 348, - TOKEN_PREFIXES = 349, - TOKEN_DUID = 350, - TOKEN_HW_ADDRESS = 351, - TOKEN_HOSTNAME = 352, - TOKEN_FLEX_ID = 353, - TOKEN_RELAY = 354, - TOKEN_IP_ADDRESS = 355, - TOKEN_HOOKS_LIBRARIES = 356, - TOKEN_LIBRARY = 357, - TOKEN_PARAMETERS = 358, - TOKEN_EXPIRED_LEASES_PROCESSING = 359, - TOKEN_RECLAIM_TIMER_WAIT_TIME = 360, - TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 361, - TOKEN_HOLD_RECLAIMED_TIME = 362, - TOKEN_MAX_RECLAIM_LEASES = 363, - TOKEN_MAX_RECLAIM_TIME = 364, - TOKEN_UNWARNED_RECLAIM_CYCLES = 365, - TOKEN_SERVER_ID = 366, - TOKEN_LLT = 367, - TOKEN_EN = 368, - TOKEN_LL = 369, - TOKEN_IDENTIFIER = 370, - TOKEN_HTYPE = 371, - TOKEN_TIME = 372, - TOKEN_ENTERPRISE_ID = 373, - TOKEN_DHCP4O6_PORT = 374, - TOKEN_CONTROL_SOCKET = 375, - TOKEN_SOCKET_TYPE = 376, - TOKEN_SOCKET_NAME = 377, - TOKEN_DHCP_QUEUE_CONTROL = 378, - TOKEN_DHCP_DDNS = 379, - TOKEN_ENABLE_UPDATES = 380, - TOKEN_QUALIFYING_SUFFIX = 381, - TOKEN_SERVER_IP = 382, - TOKEN_SERVER_PORT = 383, - TOKEN_SENDER_IP = 384, - TOKEN_SENDER_PORT = 385, - TOKEN_MAX_QUEUE_SIZE = 386, - TOKEN_NCR_PROTOCOL = 387, - TOKEN_NCR_FORMAT = 388, - TOKEN_OVERRIDE_NO_UPDATE = 389, - TOKEN_OVERRIDE_CLIENT_UPDATE = 390, - TOKEN_REPLACE_CLIENT_NAME = 391, - TOKEN_GENERATED_PREFIX = 392, - TOKEN_UDP = 393, - TOKEN_TCP = 394, - TOKEN_JSON = 395, - TOKEN_WHEN_PRESENT = 396, - TOKEN_NEVER = 397, - TOKEN_ALWAYS = 398, - TOKEN_WHEN_NOT_PRESENT = 399, - TOKEN_HOSTNAME_CHAR_SET = 400, - TOKEN_HOSTNAME_CHAR_REPLACEMENT = 401, - TOKEN_LOGGING = 402, - TOKEN_LOGGERS = 403, - TOKEN_OUTPUT_OPTIONS = 404, - TOKEN_OUTPUT = 405, - TOKEN_DEBUGLEVEL = 406, - TOKEN_SEVERITY = 407, - TOKEN_FLUSH = 408, - TOKEN_MAXSIZE = 409, - TOKEN_MAXVER = 410, - TOKEN_DHCP4 = 411, - TOKEN_DHCPDDNS = 412, - TOKEN_CONTROL_AGENT = 413, - TOKEN_TOPLEVEL_JSON = 414, - TOKEN_TOPLEVEL_DHCP6 = 415, - TOKEN_SUB_DHCP6 = 416, - TOKEN_SUB_INTERFACES6 = 417, - TOKEN_SUB_SUBNET6 = 418, - TOKEN_SUB_POOL6 = 419, - TOKEN_SUB_PD_POOL = 420, - TOKEN_SUB_RESERVATION = 421, - TOKEN_SUB_OPTION_DEFS = 422, - TOKEN_SUB_OPTION_DEF = 423, - TOKEN_SUB_OPTION_DATA = 424, - TOKEN_SUB_HOOKS_LIBRARY = 425, - TOKEN_SUB_DHCP_DDNS = 426, - TOKEN_SUB_LOGGING = 427, - TOKEN_SUB_CONFIG_CONTROL = 428, - TOKEN_STRING = 429, - TOKEN_INTEGER = 430, - TOKEN_FLOAT = 431, - TOKEN_BOOLEAN = 432 + TOKEN_CALCULATE_TEE_TIMES = 302, + TOKEN_T1_PERCENT = 303, + TOKEN_T2_PERCENT = 304, + TOKEN_DECLINE_PROBATION_PERIOD = 305, + TOKEN_SERVER_TAG = 306, + TOKEN_SUBNET6 = 307, + TOKEN_OPTION_DEF = 308, + TOKEN_OPTION_DATA = 309, + TOKEN_NAME = 310, + TOKEN_DATA = 311, + TOKEN_CODE = 312, + TOKEN_SPACE = 313, + TOKEN_CSV_FORMAT = 314, + TOKEN_ALWAYS_SEND = 315, + TOKEN_RECORD_TYPES = 316, + TOKEN_ENCAPSULATE = 317, + TOKEN_ARRAY = 318, + TOKEN_POOLS = 319, + TOKEN_POOL = 320, + TOKEN_PD_POOLS = 321, + TOKEN_PREFIX = 322, + TOKEN_PREFIX_LEN = 323, + TOKEN_EXCLUDED_PREFIX = 324, + TOKEN_EXCLUDED_PREFIX_LEN = 325, + TOKEN_DELEGATED_LEN = 326, + TOKEN_USER_CONTEXT = 327, + TOKEN_COMMENT = 328, + TOKEN_SUBNET = 329, + TOKEN_INTERFACE = 330, + TOKEN_INTERFACE_ID = 331, + TOKEN_ID = 332, + TOKEN_RAPID_COMMIT = 333, + TOKEN_RESERVATION_MODE = 334, + TOKEN_DISABLED = 335, + TOKEN_OUT_OF_POOL = 336, + TOKEN_GLOBAL = 337, + TOKEN_ALL = 338, + TOKEN_SHARED_NETWORKS = 339, + TOKEN_MAC_SOURCES = 340, + TOKEN_RELAY_SUPPLIED_OPTIONS = 341, + TOKEN_HOST_RESERVATION_IDENTIFIERS = 342, + TOKEN_SANITY_CHECKS = 343, + TOKEN_LEASE_CHECKS = 344, + TOKEN_CLIENT_CLASSES = 345, + TOKEN_REQUIRE_CLIENT_CLASSES = 346, + TOKEN_TEST = 347, + TOKEN_ONLY_IF_REQUIRED = 348, + TOKEN_CLIENT_CLASS = 349, + TOKEN_RESERVATIONS = 350, + TOKEN_IP_ADDRESSES = 351, + TOKEN_PREFIXES = 352, + TOKEN_DUID = 353, + TOKEN_HW_ADDRESS = 354, + TOKEN_HOSTNAME = 355, + TOKEN_FLEX_ID = 356, + TOKEN_RELAY = 357, + TOKEN_IP_ADDRESS = 358, + TOKEN_HOOKS_LIBRARIES = 359, + TOKEN_LIBRARY = 360, + TOKEN_PARAMETERS = 361, + TOKEN_EXPIRED_LEASES_PROCESSING = 362, + TOKEN_RECLAIM_TIMER_WAIT_TIME = 363, + TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 364, + TOKEN_HOLD_RECLAIMED_TIME = 365, + TOKEN_MAX_RECLAIM_LEASES = 366, + TOKEN_MAX_RECLAIM_TIME = 367, + TOKEN_UNWARNED_RECLAIM_CYCLES = 368, + TOKEN_SERVER_ID = 369, + TOKEN_LLT = 370, + TOKEN_EN = 371, + TOKEN_LL = 372, + TOKEN_IDENTIFIER = 373, + TOKEN_HTYPE = 374, + TOKEN_TIME = 375, + TOKEN_ENTERPRISE_ID = 376, + TOKEN_DHCP4O6_PORT = 377, + TOKEN_CONTROL_SOCKET = 378, + TOKEN_SOCKET_TYPE = 379, + TOKEN_SOCKET_NAME = 380, + TOKEN_DHCP_QUEUE_CONTROL = 381, + TOKEN_DHCP_DDNS = 382, + TOKEN_ENABLE_UPDATES = 383, + TOKEN_QUALIFYING_SUFFIX = 384, + TOKEN_SERVER_IP = 385, + TOKEN_SERVER_PORT = 386, + TOKEN_SENDER_IP = 387, + TOKEN_SENDER_PORT = 388, + TOKEN_MAX_QUEUE_SIZE = 389, + TOKEN_NCR_PROTOCOL = 390, + TOKEN_NCR_FORMAT = 391, + TOKEN_OVERRIDE_NO_UPDATE = 392, + TOKEN_OVERRIDE_CLIENT_UPDATE = 393, + TOKEN_REPLACE_CLIENT_NAME = 394, + TOKEN_GENERATED_PREFIX = 395, + TOKEN_UDP = 396, + TOKEN_TCP = 397, + TOKEN_JSON = 398, + TOKEN_WHEN_PRESENT = 399, + TOKEN_NEVER = 400, + TOKEN_ALWAYS = 401, + TOKEN_WHEN_NOT_PRESENT = 402, + TOKEN_HOSTNAME_CHAR_SET = 403, + TOKEN_HOSTNAME_CHAR_REPLACEMENT = 404, + TOKEN_LOGGING = 405, + TOKEN_LOGGERS = 406, + TOKEN_OUTPUT_OPTIONS = 407, + TOKEN_OUTPUT = 408, + TOKEN_DEBUGLEVEL = 409, + TOKEN_SEVERITY = 410, + TOKEN_FLUSH = 411, + TOKEN_MAXSIZE = 412, + TOKEN_MAXVER = 413, + TOKEN_DHCP4 = 414, + TOKEN_DHCPDDNS = 415, + TOKEN_CONTROL_AGENT = 416, + TOKEN_TOPLEVEL_JSON = 417, + TOKEN_TOPLEVEL_DHCP6 = 418, + TOKEN_SUB_DHCP6 = 419, + TOKEN_SUB_INTERFACES6 = 420, + TOKEN_SUB_SUBNET6 = 421, + TOKEN_SUB_POOL6 = 422, + TOKEN_SUB_PD_POOL = 423, + TOKEN_SUB_RESERVATION = 424, + TOKEN_SUB_OPTION_DEFS = 425, + TOKEN_SUB_OPTION_DEF = 426, + TOKEN_SUB_OPTION_DATA = 427, + TOKEN_SUB_HOOKS_LIBRARY = 428, + TOKEN_SUB_DHCP_DDNS = 429, + TOKEN_SUB_LOGGING = 430, + TOKEN_SUB_CONFIG_CONTROL = 431, + TOKEN_STRING = 432, + TOKEN_INTEGER = 433, + TOKEN_FLOAT = 434, + TOKEN_BOOLEAN = 435 }; }; @@ -1031,6 +1034,18 @@ namespace isc { namespace dhcp { symbol_type make_REBIND_TIMER (YY_COPY (location_type) l); + static + symbol_type + make_CALCULATE_TEE_TIMES (YY_COPY (location_type) l); + + static + symbol_type + make_T1_PERCENT (YY_COPY (location_type) l); + + static + symbol_type + make_T2_PERCENT (YY_COPY (location_type) l); + static symbol_type make_DECLINE_PROBATION_PERIOD (YY_COPY (location_type) l); @@ -1737,12 +1752,12 @@ namespace isc { namespace dhcp { enum { yyeof_ = 0, - yylast_ = 1039, ///< Last index in yytable_. - yynnts_ = 396, ///< Number of nonterminal symbols. + yylast_ = 1060, ///< Last index in yytable_. + yynnts_ = 399, ///< Number of nonterminal symbols. yyfinal_ = 32, ///< Termination state number. yyterror_ = 1, yyerrcode_ = 256, - yyntokens_ = 178 ///< Number of tokens. + yyntokens_ = 181 ///< Number of tokens. }; @@ -1802,9 +1817,9 @@ namespace isc { namespace dhcp { 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177 + 175, 176, 177, 178, 179, 180 }; - const unsigned user_token_number_max_ = 432; + const unsigned user_token_number_max_ = 435; const token_number_type undef_token_ = 2; if (static_cast (t) <= yyeof_) @@ -1836,29 +1851,29 @@ namespace isc { namespace dhcp { { switch (other.type_get ()) { - case 195: // value - case 199: // map_value - case 253: // db_type - case 346: // hr_mode - case 482: // duid_type - case 517: // ncr_protocol_value - case 524: // replace_client_name_value + case 198: // value + case 202: // map_value + case 259: // db_type + case 352: // hr_mode + case 488: // duid_type + case 523: // ncr_protocol_value + case 530: // replace_client_name_value value.YY_MOVE_OR_COPY< ElementPtr > (YY_MOVE (other.value)); break; - case 177: // "boolean" + case 180: // "boolean" value.YY_MOVE_OR_COPY< bool > (YY_MOVE (other.value)); break; - case 176: // "floating point" + case 179: // "floating point" value.YY_MOVE_OR_COPY< double > (YY_MOVE (other.value)); break; - case 175: // "integer" + case 178: // "integer" value.YY_MOVE_OR_COPY< int64_t > (YY_MOVE (other.value)); break; - case 174: // "constant string" + case 177: // "constant string" value.YY_MOVE_OR_COPY< std::string > (YY_MOVE (other.value)); break; @@ -1936,29 +1951,29 @@ namespace isc { namespace dhcp { // Type destructor. switch (yytype) { - case 195: // value - case 199: // map_value - case 253: // db_type - case 346: // hr_mode - case 482: // duid_type - case 517: // ncr_protocol_value - case 524: // replace_client_name_value + case 198: // value + case 202: // map_value + case 259: // db_type + case 352: // hr_mode + case 488: // duid_type + case 523: // ncr_protocol_value + case 530: // replace_client_name_value value.template destroy< ElementPtr > (); break; - case 177: // "boolean" + case 180: // "boolean" value.template destroy< bool > (); break; - case 176: // "floating point" + case 179: // "floating point" value.template destroy< double > (); break; - case 175: // "integer" + case 178: // "integer" value.template destroy< int64_t > (); break; - case 174: // "constant string" + case 177: // "constant string" value.template destroy< std::string > (); break; @@ -1983,29 +1998,29 @@ namespace isc { namespace dhcp { super_type::move (s); switch (this->type_get ()) { - case 195: // value - case 199: // map_value - case 253: // db_type - case 346: // hr_mode - case 482: // duid_type - case 517: // ncr_protocol_value - case 524: // replace_client_name_value + case 198: // value + case 202: // map_value + case 259: // db_type + case 352: // hr_mode + case 488: // duid_type + case 523: // ncr_protocol_value + case 530: // replace_client_name_value value.move< ElementPtr > (YY_MOVE (s.value)); break; - case 177: // "boolean" + case 180: // "boolean" value.move< bool > (YY_MOVE (s.value)); break; - case 176: // "floating point" + case 179: // "floating point" value.move< double > (YY_MOVE (s.value)); break; - case 175: // "integer" + case 178: // "integer" value.move< int64_t > (YY_MOVE (s.value)); break; - case 174: // "constant string" + case 177: // "constant string" value.move< std::string > (YY_MOVE (s.value)); break; @@ -2081,7 +2096,8 @@ namespace isc { namespace dhcp { 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432 + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435 }; return static_cast (yytoken_number_[type]); } @@ -2402,6 +2418,27 @@ namespace isc { namespace dhcp { return symbol_type (token::TOKEN_REBIND_TIMER, YY_MOVE (l)); } + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_CALCULATE_TEE_TIMES (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_CALCULATE_TEE_TIMES, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_T1_PERCENT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_T1_PERCENT, YY_MOVE (l)); + } + + inline + Dhcp6Parser::symbol_type + Dhcp6Parser::make_T2_PERCENT (YY_COPY (location_type) l) + { + return symbol_type (token::TOKEN_T2_PERCENT, YY_MOVE (l)); + } + inline Dhcp6Parser::symbol_type Dhcp6Parser::make_DECLINE_PROBATION_PERIOD (YY_COPY (location_type) l) @@ -3322,7 +3359,7 @@ namespace isc { namespace dhcp { #line 14 "dhcp6_parser.yy" // lalr1.cc:404 } } // isc::dhcp -#line 3326 "dhcp6_parser.h" // lalr1.cc:404 +#line 3363 "dhcp6_parser.h" // lalr1.cc:404 diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 24f9f39de5..72e1fba3ab 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -1096,6 +1096,9 @@ subnet6_param: preferred_lifetime | relay | user_context | comment + | calculate_tee_times + | t1_percent + | t2_percent | unknown_map_entry ; @@ -1215,6 +1218,9 @@ shared_network_param: name | valid_lifetime | user_context | comment + | calculate_tee_times + | t1_percent + | t2_percent | unknown_map_entry ; diff --git a/src/bin/dhcp6/tests/config_parser_unittest.cc b/src/bin/dhcp6/tests/config_parser_unittest.cc index 64e1c95f26..342dfd0830 100644 --- a/src/bin/dhcp6/tests/config_parser_unittest.cc +++ b/src/bin/dhcp6/tests/config_parser_unittest.cc @@ -6106,7 +6106,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworks1subnet) { const Subnet6Collection * subs = net->getAllSubnets(); ASSERT_TRUE(subs); EXPECT_EQ(1, subs->size()); - checkSubnet(*subs, "2001:db8::/48", 900, 1800, 3600, 7200); + checkSubnet(*subs, "2001:db8::/48", 0, 0, 3600, 7200); // Now make sure the subnet was added to global list of subnets. CfgSubnets6Ptr subnets6 = CfgMgr::instance().getStagingCfg()->getCfgSubnets6(); @@ -6114,7 +6114,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworks1subnet) { subs = subnets6->getAll(); ASSERT_TRUE(subs); - checkSubnet(*subs, "2001:db8::/48", 900, 1800, 3600, 7200); + checkSubnet(*subs, "2001:db8::/48", 0, 0, 3600, 7200); } // Test verifies that a proper shared-network (three subnets) is @@ -6332,6 +6332,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDeriveInterfaces) { "\"shared-networks\": [ {\n" " \"name\": \"foo\"\n," " \"interface\": \"eth0\",\n" + " \"rebind-timer\": 10, \n" " \"subnet6\": [\n" " { \n" " \"subnet\": \"2001:db1::/48\",\n" @@ -6339,6 +6340,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDeriveInterfaces) { " },\n" " { \n" " \"subnet\": \"2001:db2::/48\",\n" + " \"rebind-timer\": 100, \n" " \"pools\": [ { \"pool\": \"2001:db2::/64\" } ],\n" " \"interface\": \"eth0\"\n" " }\n" @@ -6375,19 +6377,19 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDeriveInterfaces) { ASSERT_TRUE(subs); EXPECT_EQ(2, subs->size()); - // For the first subnet, the renew-timer should be 10, because it was + // For the first subnet, the rebind-timer should be 10, because it was // derived from shared-network level. Other parameters a derived // from global scope to shared-network level and later again to // subnet6 level. - Subnet6Ptr s = checkSubnet(*subs, "2001:db1::/48", 900, 1800, 3600, 7200); + Subnet6Ptr s = checkSubnet(*subs, "2001:db1::/48", 0, 10, 3600, 7200); ASSERT_TRUE(s); EXPECT_EQ("eth0", s->getIface().get()); - // For the second subnet, the renew-timer should be 100, because it + // For the second subnet, the rebind-timer should be 100, because it // was specified explicitly. Other parameters a derived // from global scope to shared-network level and later again to // subnet6 level. - checkSubnet(*subs, "2001:db2::/48", 900, 1800, 3600, 7200); + checkSubnet(*subs, "2001:db2::/48", 0, 100, 3600, 7200); EXPECT_EQ("eth0", s->getIface().get()); // Ok, now check the second shared subnet. @@ -6398,8 +6400,8 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDeriveInterfaces) { ASSERT_TRUE(subs); EXPECT_EQ(1, subs->size()); - // This subnet should derive its renew-timer from global scope. - s = checkSubnet(*subs, "2001:db3::/48", 900, 1800, 3600, 7200); + // This subnet should derive its rebind-timer from global scope. + s = checkSubnet(*subs, "2001:db3::/48", 0, 0, 3600, 7200); EXPECT_EQ("", s->getIface().get()); } @@ -6488,13 +6490,13 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDeriveClientClass) { // For the first subnet, the client-class should be inherited from // shared-network level. - Subnet6Ptr s = checkSubnet(*subs, "2001:db1::/48", 900, 1800, 3600, 7200); + Subnet6Ptr s = checkSubnet(*subs, "2001:db1::/48", 0, 0, 3600, 7200); 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, "2001:db2::/48", 900, 1800, 3600, 7200); + s = checkSubnet(*subs, "2001:db2::/48", 0, 0, 3600, 7200); ASSERT_TRUE(s); EXPECT_EQ("beta", s->getClientClass().get()); // beta defined on subnet level @@ -6509,7 +6511,7 @@ TEST_F(Dhcp6ParserTest, sharedNetworksDeriveClientClass) { EXPECT_EQ(1, subs->size()); // This subnet should derive its renew-timer from global scope. - s = checkSubnet(*subs, "2001:db3::/48", 900, 1800, 3600, 7200); + s = checkSubnet(*subs, "2001:db3::/48", 0, 0, 3600, 7200); EXPECT_TRUE(s->getClientClass().empty()); } diff --git a/src/bin/dhcp6/tests/get_config_unittest.cc b/src/bin/dhcp6/tests/get_config_unittest.cc index 208335022e..0d5730623d 100644 --- a/src/bin/dhcp6/tests/get_config_unittest.cc +++ b/src/bin/dhcp6/tests/get_config_unittest.cc @@ -1836,6 +1836,7 @@ const char* EXTRACTED_CONFIGS[] = { const char* UNPARSED_CONFIGS[] = { // CONFIGURATION 0 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -1899,10 +1900,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 1 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -1967,6 +1971,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -1986,13 +1991,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 2 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2057,6 +2067,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2076,9 +2087,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 2,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2098,9 +2112,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 3,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2120,9 +2137,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:3::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 4,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2142,13 +2162,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:4::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 3 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2213,6 +2238,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1024,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2232,9 +2258,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 100,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2254,9 +2283,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2276,9 +2308,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:3::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 34,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2298,13 +2333,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:4::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 4 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2369,6 +2409,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2388,9 +2429,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 2,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2410,9 +2454,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 3,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2432,9 +2479,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:3::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 4,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2454,13 +2504,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:4::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 5 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2525,6 +2580,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2544,13 +2600,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 6 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2615,6 +2676,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"interface\": \"eth0\",\n" " \"option-data\": [ ],\n" @@ -2635,13 +2697,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 7 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2706,6 +2773,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"interface-id\": \"foobar\",\n" " \"option-data\": [ ],\n" @@ -2726,13 +2794,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 8 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2797,6 +2870,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2820,9 +2894,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 2,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2846,13 +2923,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 9 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -2917,6 +2999,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -2936,13 +3019,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 10 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3007,6 +3095,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -3028,13 +3117,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 11 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3099,6 +3193,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -3122,13 +3217,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 12 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3193,6 +3293,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -3231,13 +3332,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/40\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 13 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3302,6 +3408,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -3323,13 +3430,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 14 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3385,9 +3497,7 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -3403,10 +3513,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 15 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3462,9 +3575,7 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -3480,10 +3591,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 16 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3548,9 +3662,7 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -3566,10 +3678,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 17 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3625,9 +3740,7 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -3643,10 +3756,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 18 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3702,9 +3818,7 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -3720,10 +3834,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 19 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3805,6 +3922,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -3824,13 +3942,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 20 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -3895,6 +4018,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [\n" " {\n" @@ -3931,13 +4055,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 21 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4029,6 +4158,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -4048,13 +4178,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 22 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4154,10 +4289,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 23 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4275,6 +4413,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -4294,13 +4433,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 24 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4365,6 +4509,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [\n" " {\n" @@ -4393,9 +4538,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 2,\n" " \"option-data\": [\n" " {\n" @@ -4424,13 +4572,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 25 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4495,6 +4648,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -4567,13 +4721,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 26 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4653,6 +4812,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -4672,13 +4832,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 27 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4762,6 +4927,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -4781,13 +4947,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 28 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4851,10 +5022,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 29 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4918,10 +5092,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 30 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -4986,6 +5163,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5005,13 +5183,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 31 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5076,6 +5259,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5095,13 +5279,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 32 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5166,6 +5355,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"client-class\": \"alpha\",\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" @@ -5186,9 +5376,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"client-class\": \"beta\",\n" " \"id\": 2,\n" " \"option-data\": [ ],\n" @@ -5209,9 +5402,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"client-class\": \"gamma\",\n" " \"id\": 3,\n" " \"option-data\": [ ],\n" @@ -5232,9 +5428,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:3::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 4,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5254,13 +5453,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:4::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 33 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5325,6 +5529,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5359,13 +5564,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/40\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 34 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5430,6 +5640,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -5472,13 +5683,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 35 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": true,\n" @@ -5543,6 +5759,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5562,13 +5779,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 36 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5633,6 +5855,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 123,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5652,9 +5875,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 234,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5720,9 +5946,12 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 542,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5771,13 +6000,18 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"subnet\": \"2001:db8:3::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 37 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5852,6 +6086,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 234,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -5884,13 +6119,18 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 38 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -5954,10 +6194,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 39 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6021,10 +6264,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 40 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6089,6 +6335,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6108,9 +6355,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/48\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 2,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6130,9 +6380,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"out-of-pool\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/48\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 3,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6152,9 +6405,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"disabled\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:3::/48\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 4,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6174,9 +6430,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"global\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:4::/48\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 5,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6196,13 +6455,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:5::/48\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 41 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6267,6 +6531,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6286,9 +6551,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/48\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 2,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6308,13 +6576,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"out-of-pool\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/48\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 42 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6378,10 +6651,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 43 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6427,9 +6703,7 @@ const char* UNPARSED_CONFIGS[] = { " \"option-data\": [ ],\n" " \"option-def\": [ ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -6445,10 +6719,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 44 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6494,9 +6771,7 @@ const char* UNPARSED_CONFIGS[] = { " \"option-data\": [ ],\n" " \"option-def\": [ ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -6512,10 +6787,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 45 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 12345,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6561,9 +6839,7 @@ const char* UNPARSED_CONFIGS[] = { " \"option-data\": [ ],\n" " \"option-def\": [ ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -6579,10 +6855,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 46 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6628,9 +6907,7 @@ const char* UNPARSED_CONFIGS[] = { " \"option-data\": [ ],\n" " \"option-def\": [ ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -6646,10 +6923,13 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 47 "{\n" +" \"calculate-tee-times\": false,\n" " \"client-classes\": [\n" " {\n" " \"name\": \"one\",\n" @@ -6728,6 +7008,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6747,13 +7028,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 48 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6818,6 +7104,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6837,13 +7124,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/32\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 49 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6908,6 +7200,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -6928,13 +7221,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/32\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 50 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -6999,6 +7297,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -7024,13 +7323,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/32\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 51 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7095,6 +7399,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -7120,13 +7425,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/32\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 52 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7191,6 +7501,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -7212,13 +7523,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/32\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 53 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7283,6 +7599,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -7305,13 +7622,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/32\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 54 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7376,6 +7698,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 1,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -7403,13 +7726,18 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8::/32\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 55 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7487,11 +7815,14 @@ const char* UNPARSED_CONFIGS[] = { " \"server-tag\": \"\",\n" " \"shared-networks\": [ ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n", // CONFIGURATION 56 "{\n" " \"comment\": \"A DHCPv6 server\",\n" +" \"calculate-tee-times\": false,\n" " \"client-classes\": [\n" " {\n" " \"comment\": \"match all\",\n" @@ -7585,9 +7916,7 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"preferred-lifetime\": 3600,\n" -" \"rebind-timer\": 1800,\n" " \"relay-supplied-options\": [ \"65\" ],\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"sanity-checks\": {\n" " \"lease-checks\": \"warn\"\n" @@ -7605,20 +7934,20 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [\n" " {\n" " \"comment\": \"A shared network\",\n" +" \"calculate-tee-times\": false,\n" " \"interface\": \"\",\n" " \"name\": \"foo\",\n" " \"option-data\": [ ],\n" " \"preferred-lifetime\": 3600,\n" " \"rapid-commit\": false,\n" -" \"rebind-timer\": 1800,\n" " \"relay\": {\n" " \"ip-addresses\": [ ]\n" " },\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"subnet6\": [\n" " {\n" " \"comment\": \"A subnet\",\n" +" \"calculate-tee-times\": false,\n" " \"id\": 100,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [\n" @@ -7639,11 +7968,9 @@ const char* UNPARSED_CONFIGS[] = { " ],\n" " \"preferred-lifetime\": 3600,\n" " \"rapid-commit\": false,\n" -" \"rebind-timer\": 1800,\n" " \"relay\": {\n" " \"ip-addresses\": [ ]\n" " },\n" -" \"renew-timer\": 900,\n" " \"reservation-mode\": \"all\",\n" " \"reservations\": [\n" " {\n" @@ -7667,17 +7994,24 @@ const char* UNPARSED_CONFIGS[] = { " }\n" " ],\n" " \"subnet\": \"2001:db1::/48\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n" " ],\n" " \"subnet6\": [ ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 7200\n" " }\n", // CONFIGURATION 57 "{\n" +" \"calculate-tee-times\": false,\n" " \"decline-probation-period\": 86400,\n" " \"dhcp-ddns\": {\n" " \"enable-updates\": false,\n" @@ -7794,6 +8128,7 @@ const char* UNPARSED_CONFIGS[] = { " \"shared-networks\": [ ],\n" " \"subnet6\": [\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 123,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -7813,9 +8148,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:1::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 234,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -7830,9 +8168,12 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:2::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " },\n" " {\n" +" \"calculate-tee-times\": false,\n" " \"id\": 542,\n" " \"option-data\": [ ],\n" " \"pd-pools\": [ ],\n" @@ -7847,9 +8188,13 @@ const char* UNPARSED_CONFIGS[] = { " \"reservation-mode\": \"all\",\n" " \"reservations\": [ ],\n" " \"subnet\": \"2001:db8:3::/64\",\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" " ],\n" +" \"t1-percent\": 0.5,\n" +" \"t2-percent\": 0.8,\n" " \"valid-lifetime\": 4000\n" " }\n" }; diff --git a/src/bin/dhcp6/tests/simple_parser6_unittest.cc b/src/bin/dhcp6/tests/simple_parser6_unittest.cc index 19e3322c04..730d566fc8 100644 --- a/src/bin/dhcp6/tests/simple_parser6_unittest.cc +++ b/src/bin/dhcp6/tests/simple_parser6_unittest.cc @@ -9,6 +9,7 @@ #include #include #include +#include using namespace isc; using namespace isc::data; @@ -33,7 +34,7 @@ public: // Now try to get the element being checked ConstElementPtr elem = map->get(param_name); - ASSERT_TRUE(elem); + ASSERT_TRUE(elem) << "param not found: " << param_name; // Now check if it's indeed integer ASSERT_EQ(Element::integer, elem->getType()); @@ -55,7 +56,7 @@ public: // Now try to get the element being checked ConstElementPtr elem = map->get(param_name); - ASSERT_TRUE(elem); + ASSERT_TRUE(elem) << "param not found: " << param_name; // Now check if it's indeed integer ASSERT_EQ(Element::string, elem->getType()); @@ -77,7 +78,7 @@ public: // Now try to get the element being checked ConstElementPtr elem = map->get(param_name); - ASSERT_TRUE(elem); + ASSERT_TRUE(elem) << "param not found: " << param_name; // Now check if it's indeed integer ASSERT_EQ(Element::boolean, elem->getType()); @@ -86,6 +87,43 @@ public: EXPECT_EQ(exp_value, elem->boolValue()); } + /// @brief Checks if specified map has a double parameter with expected value + /// + /// @param map map to be checked + /// @param param_name name of the parameter to be checked + /// @param exp_value expected value of the parameter. + void checkDoubleValue(const ConstElementPtr& map, const std::string& param_name, + double exp_value) { + + // First check if the passed element is a map. + ASSERT_EQ(Element::map, map->getType()); + + // Now try to get the element being checked + ConstElementPtr elem = map->get(param_name); + ASSERT_TRUE(elem) << "param not found: " << param_name; + + // Now check if it's indeed integer + ASSERT_EQ(Element::real, elem->getType()); + + // Finally, check if its value meets expectation. + EXPECT_TRUE(util::areDoublesEquivalent(exp_value, elem->doubleValue())) + << "exp_value: " << std::fixed << ", actual: " + << std::fixed << elem->doubleValue(); + } + + /// @brief Checks if specified map does not contain the given parameter + /// + /// @param map map to be checked + /// @param param_name name of the parameter to be checked + void checkNoValue(const ConstElementPtr& map, const std::string& param_name) { + // First check if the passed element is a map. + ASSERT_EQ(Element::map, map->getType()); + + // Now try to get the element being checked + ConstElementPtr elem = map->get(param_name); + ASSERT_FALSE(elem) << "param was found found: " << param_name; + } + }; // This test checks if global defaults are properly set for DHCPv6. @@ -96,13 +134,18 @@ TEST_F(SimpleParser6Test, globalDefaults6) { EXPECT_NO_THROW(num = SimpleParser6::setAllDefaults(empty)); - // We expect at least 4 parameters to be inserted. - EXPECT_TRUE(num >= 4); + // We expect at least 5 parameters to be inserted. + EXPECT_TRUE(num >= 5); checkIntegerValue(empty, "valid-lifetime", 7200); checkIntegerValue(empty, "preferred-lifetime", 3600); - checkIntegerValue(empty, "rebind-timer", 1800); - checkIntegerValue(empty, "renew-timer", 900); + checkBoolValue(empty, "calculate-tee-times", false); + checkDoubleValue(empty, "t1-percent", 0.5); + checkDoubleValue(empty, "t2-percent", 0.8); + + // Timers should not be specified by default. + checkNoValue(empty, "rebind-timer"); + checkNoValue(empty, "renew-timer"); } // This test checks if the parameters can be inherited from the global