Browse Source

[master] regen flex/bison files

Francis Dupont 8 years ago
parent
commit
2d6f9bff51

File diff suppressed because it is too large
+ 965 - 814
src/bin/dhcp4/dhcp4_lexer.cc


File diff suppressed because it is too large
+ 1422 - 1335
src/bin/dhcp4/dhcp4_parser.cc


+ 240 - 156
src/bin/dhcp4/dhcp4_parser.h

@@ -305,6 +305,7 @@ namespace isc { namespace dhcp {
     union union_type
     {
       // value
+      // socket_type
       // ncr_protocol_value
       // replace_client_name_value
       char dummy1[sizeof(ElementPtr)];
@@ -354,117 +355,124 @@ namespace isc { namespace dhcp {
         TOKEN_INTERFACES_CONFIG = 266,
         TOKEN_INTERFACES = 267,
         TOKEN_DHCP_SOCKET_TYPE = 268,
-        TOKEN_ECHO_CLIENT_ID = 269,
-        TOKEN_MATCH_CLIENT_ID = 270,
-        TOKEN_NEXT_SERVER = 271,
-        TOKEN_SERVER_HOSTNAME = 272,
-        TOKEN_BOOT_FILE_NAME = 273,
-        TOKEN_LEASE_DATABASE = 274,
-        TOKEN_HOSTS_DATABASE = 275,
-        TOKEN_TYPE = 276,
-        TOKEN_USER = 277,
-        TOKEN_PASSWORD = 278,
-        TOKEN_HOST = 279,
-        TOKEN_PERSIST = 280,
-        TOKEN_LFC_INTERVAL = 281,
-        TOKEN_READONLY = 282,
-        TOKEN_VALID_LIFETIME = 283,
-        TOKEN_RENEW_TIMER = 284,
-        TOKEN_REBIND_TIMER = 285,
-        TOKEN_DECLINE_PROBATION_PERIOD = 286,
-        TOKEN_SUBNET4 = 287,
-        TOKEN_SUBNET_4O6_INTERFACE = 288,
-        TOKEN_SUBNET_4O6_INTERFACE_ID = 289,
-        TOKEN_SUBNET_4O6_SUBNET = 290,
-        TOKEN_OPTION_DEF = 291,
-        TOKEN_OPTION_DATA = 292,
-        TOKEN_NAME = 293,
-        TOKEN_DATA = 294,
-        TOKEN_CODE = 295,
-        TOKEN_SPACE = 296,
-        TOKEN_CSV_FORMAT = 297,
-        TOKEN_RECORD_TYPES = 298,
-        TOKEN_ENCAPSULATE = 299,
-        TOKEN_ARRAY = 300,
-        TOKEN_POOLS = 301,
-        TOKEN_POOL = 302,
-        TOKEN_SUBNET = 303,
-        TOKEN_INTERFACE = 304,
-        TOKEN_INTERFACE_ID = 305,
-        TOKEN_ID = 306,
-        TOKEN_RAPID_COMMIT = 307,
-        TOKEN_RESERVATION_MODE = 308,
-        TOKEN_HOST_RESERVATION_IDENTIFIERS = 309,
-        TOKEN_CLIENT_CLASSES = 310,
-        TOKEN_TEST = 311,
-        TOKEN_CLIENT_CLASS = 312,
-        TOKEN_RESERVATIONS = 313,
-        TOKEN_DUID = 314,
-        TOKEN_HW_ADDRESS = 315,
-        TOKEN_CIRCUIT_ID = 316,
-        TOKEN_CLIENT_ID = 317,
-        TOKEN_HOSTNAME = 318,
-        TOKEN_RELAY = 319,
-        TOKEN_IP_ADDRESS = 320,
-        TOKEN_HOOKS_LIBRARIES = 321,
-        TOKEN_LIBRARY = 322,
-        TOKEN_PARAMETERS = 323,
-        TOKEN_EXPIRED_LEASES_PROCESSING = 324,
-        TOKEN_SERVER_ID = 325,
-        TOKEN_IDENTIFIER = 326,
-        TOKEN_HTYPE = 327,
-        TOKEN_TIME = 328,
-        TOKEN_ENTERPRISE_ID = 329,
-        TOKEN_DHCP4O6_PORT = 330,
-        TOKEN_CONTROL_SOCKET = 331,
-        TOKEN_SOCKET_TYPE = 332,
-        TOKEN_SOCKET_NAME = 333,
-        TOKEN_DHCP_DDNS = 334,
-        TOKEN_ENABLE_UPDATES = 335,
-        TOKEN_QUALIFYING_SUFFIX = 336,
-        TOKEN_SERVER_IP = 337,
-        TOKEN_SERVER_PORT = 338,
-        TOKEN_SENDER_IP = 339,
-        TOKEN_SENDER_PORT = 340,
-        TOKEN_MAX_QUEUE_SIZE = 341,
-        TOKEN_NCR_PROTOCOL = 342,
-        TOKEN_NCR_FORMAT = 343,
-        TOKEN_ALWAYS_INCLUDE_FQDN = 344,
-        TOKEN_ALLOW_CLIENT_UPDATE = 345,
-        TOKEN_OVERRIDE_NO_UPDATE = 346,
-        TOKEN_OVERRIDE_CLIENT_UPDATE = 347,
-        TOKEN_REPLACE_CLIENT_NAME = 348,
-        TOKEN_GENERATED_PREFIX = 349,
-        TOKEN_UDP = 350,
-        TOKEN_TCP = 351,
-        TOKEN_JSON = 352,
-        TOKEN_WHEN_PRESENT = 353,
-        TOKEN_NEVER = 354,
-        TOKEN_ALWAYS = 355,
-        TOKEN_WHEN_NOT_PRESENT = 356,
-        TOKEN_LOGGING = 357,
-        TOKEN_LOGGERS = 358,
-        TOKEN_OUTPUT_OPTIONS = 359,
-        TOKEN_OUTPUT = 360,
-        TOKEN_DEBUGLEVEL = 361,
-        TOKEN_SEVERITY = 362,
-        TOKEN_DHCP6 = 363,
-        TOKEN_DHCPDDNS = 364,
-        TOKEN_TOPLEVEL_JSON = 365,
-        TOKEN_TOPLEVEL_DHCP4 = 366,
-        TOKEN_SUB_DHCP4 = 367,
-        TOKEN_SUB_INTERFACES4 = 368,
-        TOKEN_SUB_SUBNET4 = 369,
-        TOKEN_SUB_POOL4 = 370,
-        TOKEN_SUB_RESERVATION = 371,
-        TOKEN_SUB_OPTION_DEF = 372,
-        TOKEN_SUB_OPTION_DATA = 373,
-        TOKEN_SUB_HOOKS_LIBRARY = 374,
-        TOKEN_SUB_DHCP_DDNS = 375,
-        TOKEN_STRING = 376,
-        TOKEN_INTEGER = 377,
-        TOKEN_FLOAT = 378,
-        TOKEN_BOOLEAN = 379
+        TOKEN_RAW = 269,
+        TOKEN_UDP = 270,
+        TOKEN_ECHO_CLIENT_ID = 271,
+        TOKEN_MATCH_CLIENT_ID = 272,
+        TOKEN_NEXT_SERVER = 273,
+        TOKEN_SERVER_HOSTNAME = 274,
+        TOKEN_BOOT_FILE_NAME = 275,
+        TOKEN_LEASE_DATABASE = 276,
+        TOKEN_HOSTS_DATABASE = 277,
+        TOKEN_TYPE = 278,
+        TOKEN_USER = 279,
+        TOKEN_PASSWORD = 280,
+        TOKEN_HOST = 281,
+        TOKEN_PERSIST = 282,
+        TOKEN_LFC_INTERVAL = 283,
+        TOKEN_READONLY = 284,
+        TOKEN_VALID_LIFETIME = 285,
+        TOKEN_RENEW_TIMER = 286,
+        TOKEN_REBIND_TIMER = 287,
+        TOKEN_DECLINE_PROBATION_PERIOD = 288,
+        TOKEN_SUBNET4 = 289,
+        TOKEN_SUBNET_4O6_INTERFACE = 290,
+        TOKEN_SUBNET_4O6_INTERFACE_ID = 291,
+        TOKEN_SUBNET_4O6_SUBNET = 292,
+        TOKEN_OPTION_DEF = 293,
+        TOKEN_OPTION_DATA = 294,
+        TOKEN_NAME = 295,
+        TOKEN_DATA = 296,
+        TOKEN_CODE = 297,
+        TOKEN_SPACE = 298,
+        TOKEN_CSV_FORMAT = 299,
+        TOKEN_RECORD_TYPES = 300,
+        TOKEN_ENCAPSULATE = 301,
+        TOKEN_ARRAY = 302,
+        TOKEN_POOLS = 303,
+        TOKEN_POOL = 304,
+        TOKEN_SUBNET = 305,
+        TOKEN_INTERFACE = 306,
+        TOKEN_INTERFACE_ID = 307,
+        TOKEN_ID = 308,
+        TOKEN_RAPID_COMMIT = 309,
+        TOKEN_RESERVATION_MODE = 310,
+        TOKEN_HOST_RESERVATION_IDENTIFIERS = 311,
+        TOKEN_CLIENT_CLASSES = 312,
+        TOKEN_TEST = 313,
+        TOKEN_CLIENT_CLASS = 314,
+        TOKEN_RESERVATIONS = 315,
+        TOKEN_DUID = 316,
+        TOKEN_HW_ADDRESS = 317,
+        TOKEN_CIRCUIT_ID = 318,
+        TOKEN_CLIENT_ID = 319,
+        TOKEN_HOSTNAME = 320,
+        TOKEN_RELAY = 321,
+        TOKEN_IP_ADDRESS = 322,
+        TOKEN_HOOKS_LIBRARIES = 323,
+        TOKEN_LIBRARY = 324,
+        TOKEN_PARAMETERS = 325,
+        TOKEN_EXPIRED_LEASES_PROCESSING = 326,
+        TOKEN_RECLAIM_TIMER_WAIT_TIME = 327,
+        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 328,
+        TOKEN_HOLD_RECLAIMED_TIME = 329,
+        TOKEN_MAX_RECLAIM_LEASES = 330,
+        TOKEN_MAX_RECLAIM_TIME = 331,
+        TOKEN_UNWARNED_RECLAIM_CYCLES = 332,
+        TOKEN_SERVER_ID = 333,
+        TOKEN_IDENTIFIER = 334,
+        TOKEN_HTYPE = 335,
+        TOKEN_TIME = 336,
+        TOKEN_ENTERPRISE_ID = 337,
+        TOKEN_DHCP4O6_PORT = 338,
+        TOKEN_CONTROL_SOCKET = 339,
+        TOKEN_SOCKET_TYPE = 340,
+        TOKEN_SOCKET_NAME = 341,
+        TOKEN_DHCP_DDNS = 342,
+        TOKEN_ENABLE_UPDATES = 343,
+        TOKEN_QUALIFYING_SUFFIX = 344,
+        TOKEN_SERVER_IP = 345,
+        TOKEN_SERVER_PORT = 346,
+        TOKEN_SENDER_IP = 347,
+        TOKEN_SENDER_PORT = 348,
+        TOKEN_MAX_QUEUE_SIZE = 349,
+        TOKEN_NCR_PROTOCOL = 350,
+        TOKEN_NCR_FORMAT = 351,
+        TOKEN_ALWAYS_INCLUDE_FQDN = 352,
+        TOKEN_ALLOW_CLIENT_UPDATE = 353,
+        TOKEN_OVERRIDE_NO_UPDATE = 354,
+        TOKEN_OVERRIDE_CLIENT_UPDATE = 355,
+        TOKEN_REPLACE_CLIENT_NAME = 356,
+        TOKEN_GENERATED_PREFIX = 357,
+        TOKEN_TCP = 358,
+        TOKEN_JSON = 359,
+        TOKEN_WHEN_PRESENT = 360,
+        TOKEN_NEVER = 361,
+        TOKEN_ALWAYS = 362,
+        TOKEN_WHEN_NOT_PRESENT = 363,
+        TOKEN_LOGGING = 364,
+        TOKEN_LOGGERS = 365,
+        TOKEN_OUTPUT_OPTIONS = 366,
+        TOKEN_OUTPUT = 367,
+        TOKEN_DEBUGLEVEL = 368,
+        TOKEN_SEVERITY = 369,
+        TOKEN_DHCP6 = 370,
+        TOKEN_DHCPDDNS = 371,
+        TOKEN_TOPLEVEL_JSON = 372,
+        TOKEN_TOPLEVEL_DHCP4 = 373,
+        TOKEN_SUB_DHCP4 = 374,
+        TOKEN_SUB_INTERFACES4 = 375,
+        TOKEN_SUB_SUBNET4 = 376,
+        TOKEN_SUB_POOL4 = 377,
+        TOKEN_SUB_RESERVATION = 378,
+        TOKEN_SUB_OPTION_DEF = 379,
+        TOKEN_SUB_OPTION_DATA = 380,
+        TOKEN_SUB_HOOKS_LIBRARY = 381,
+        TOKEN_SUB_DHCP_DDNS = 382,
+        TOKEN_STRING = 383,
+        TOKEN_INTEGER = 384,
+        TOKEN_FLOAT = 385,
+        TOKEN_BOOLEAN = 386
       };
     };
 
@@ -629,6 +637,14 @@ namespace isc { namespace dhcp {
 
     static inline
     symbol_type
+    make_RAW (const location_type& l);
+
+    static inline
+    symbol_type
+    make_UDP (const location_type& l);
+
+    static inline
+    symbol_type
     make_ECHO_CLIENT_ID (const location_type& l);
 
     static inline
@@ -853,6 +869,30 @@ namespace isc { namespace dhcp {
 
     static inline
     symbol_type
+    make_RECLAIM_TIMER_WAIT_TIME (const location_type& l);
+
+    static inline
+    symbol_type
+    make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l);
+
+    static inline
+    symbol_type
+    make_HOLD_RECLAIMED_TIME (const location_type& l);
+
+    static inline
+    symbol_type
+    make_MAX_RECLAIM_LEASES (const location_type& l);
+
+    static inline
+    symbol_type
+    make_MAX_RECLAIM_TIME (const location_type& l);
+
+    static inline
+    symbol_type
+    make_UNWARNED_RECLAIM_CYCLES (const location_type& l);
+
+    static inline
+    symbol_type
     make_SERVER_ID (const location_type& l);
 
     static inline
@@ -953,10 +993,6 @@ namespace isc { namespace dhcp {
 
     static inline
     symbol_type
-    make_UDP (const location_type& l);
-
-    static inline
-    symbol_type
     make_TCP (const location_type& l);
 
     static inline
@@ -1276,12 +1312,12 @@ namespace isc { namespace dhcp {
     enum
     {
       yyeof_ = 0,
-      yylast_ = 705,     ///< Last index in yytable_.
-      yynnts_ = 296,  ///< Number of nonterminal symbols.
+      yylast_ = 728,     ///< Last index in yytable_.
+      yynnts_ = 303,  ///< Number of nonterminal symbols.
       yyfinal_ = 24, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 125  ///< Number of tokens.
+      yyntokens_ = 132  ///< Number of tokens.
     };
 
 
@@ -1335,9 +1371,10 @@ namespace isc { namespace dhcp {
       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-     115,   116,   117,   118,   119,   120,   121,   122,   123,   124
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131
     };
-    const unsigned int user_token_number_max_ = 379;
+    const unsigned int user_token_number_max_ = 386;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int>(t) <= yyeof_)
@@ -1370,25 +1407,26 @@ namespace isc { namespace dhcp {
   {
       switch (other.type_get ())
     {
-      case 138: // value
-      case 383: // ncr_protocol_value
-      case 392: // replace_client_name_value
+      case 145: // value
+      case 184: // socket_type
+      case 397: // ncr_protocol_value
+      case 406: // replace_client_name_value
         value.copy< ElementPtr > (other.value);
         break;
 
-      case 124: // "boolean"
+      case 131: // "boolean"
         value.copy< bool > (other.value);
         break;
 
-      case 123: // "floating point"
+      case 130: // "floating point"
         value.copy< double > (other.value);
         break;
 
-      case 122: // "integer"
+      case 129: // "integer"
         value.copy< int64_t > (other.value);
         break;
 
-      case 121: // "constant string"
+      case 128: // "constant string"
         value.copy< std::string > (other.value);
         break;
 
@@ -1409,25 +1447,26 @@ namespace isc { namespace dhcp {
     (void) v;
       switch (this->type_get ())
     {
-      case 138: // value
-      case 383: // ncr_protocol_value
-      case 392: // replace_client_name_value
+      case 145: // value
+      case 184: // socket_type
+      case 397: // ncr_protocol_value
+      case 406: // replace_client_name_value
         value.copy< ElementPtr > (v);
         break;
 
-      case 124: // "boolean"
+      case 131: // "boolean"
         value.copy< bool > (v);
         break;
 
-      case 123: // "floating point"
+      case 130: // "floating point"
         value.copy< double > (v);
         break;
 
-      case 122: // "integer"
+      case 129: // "integer"
         value.copy< int64_t > (v);
         break;
 
-      case 121: // "constant string"
+      case 128: // "constant string"
         value.copy< std::string > (v);
         break;
 
@@ -1507,25 +1546,26 @@ namespace isc { namespace dhcp {
     // Type destructor.
     switch (yytype)
     {
-      case 138: // value
-      case 383: // ncr_protocol_value
-      case 392: // replace_client_name_value
+      case 145: // value
+      case 184: // socket_type
+      case 397: // ncr_protocol_value
+      case 406: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 124: // "boolean"
+      case 131: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 123: // "floating point"
+      case 130: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 122: // "integer"
+      case 129: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 121: // "constant string"
+      case 128: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -1552,25 +1592,26 @@ namespace isc { namespace dhcp {
     super_type::move(s);
       switch (this->type_get ())
     {
-      case 138: // value
-      case 383: // ncr_protocol_value
-      case 392: // replace_client_name_value
+      case 145: // value
+      case 184: // socket_type
+      case 397: // ncr_protocol_value
+      case 406: // replace_client_name_value
         value.move< ElementPtr > (s.value);
         break;
 
-      case 124: // "boolean"
+      case 131: // "boolean"
         value.move< bool > (s.value);
         break;
 
-      case 123: // "floating point"
+      case 130: // "floating point"
         value.move< double > (s.value);
         break;
 
-      case 122: // "integer"
+      case 129: // "integer"
         value.move< int64_t > (s.value);
         break;
 
-      case 121: // "constant string"
+      case 128: // "constant string"
         value.move< std::string > (s.value);
         break;
 
@@ -1641,7 +1682,8 @@ namespace isc { namespace dhcp {
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385,   386
     };
     return static_cast<token_type> (yytoken_number_[type]);
   }
@@ -1719,6 +1761,18 @@ namespace isc { namespace dhcp {
   }
 
   Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_RAW (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_RAW, l);
+  }
+
+  Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_UDP (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_UDP, l);
+  }
+
+  Dhcp4Parser::symbol_type
   Dhcp4Parser::make_ECHO_CLIENT_ID (const location_type& l)
   {
     return symbol_type (token::TOKEN_ECHO_CLIENT_ID, l);
@@ -2055,6 +2109,42 @@ namespace isc { namespace dhcp {
   }
 
   Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l);
+  }
+
+  Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l);
+  }
+
+  Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_HOLD_RECLAIMED_TIME (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l);
+  }
+
+  Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_MAX_RECLAIM_LEASES (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l);
+  }
+
+  Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_MAX_RECLAIM_TIME (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l);
+  }
+
+  Dhcp4Parser::symbol_type
+  Dhcp4Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l);
+  }
+
+  Dhcp4Parser::symbol_type
   Dhcp4Parser::make_SERVER_ID (const location_type& l)
   {
     return symbol_type (token::TOKEN_SERVER_ID, l);
@@ -2205,12 +2295,6 @@ namespace isc { namespace dhcp {
   }
 
   Dhcp4Parser::symbol_type
-  Dhcp4Parser::make_UDP (const location_type& l)
-  {
-    return symbol_type (token::TOKEN_UDP, l);
-  }
-
-  Dhcp4Parser::symbol_type
   Dhcp4Parser::make_TCP (const location_type& l)
   {
     return symbol_type (token::TOKEN_TCP, l);
@@ -2387,7 +2471,7 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp4_parser.yy" // lalr1.cc:377
 } } // isc::dhcp
-#line 2391 "dhcp4_parser.h" // lalr1.cc:377
+#line 2475 "dhcp4_parser.h" // lalr1.cc:377
 
 
 

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

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

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

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

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

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

File diff suppressed because it is too large
+ 810 - 637
src/bin/dhcp6/dhcp6_lexer.cc


File diff suppressed because it is too large
+ 1426 - 1289
src/bin/dhcp6/dhcp6_parser.cc


+ 196 - 91
src/bin/dhcp6/dhcp6_parser.h

@@ -305,6 +305,7 @@ namespace isc { namespace dhcp {
     union union_type
     {
       // value
+      // duid_type
       // ncr_protocol_value
       // replace_client_name_value
       char dummy1[sizeof(ElementPtr)];
@@ -410,62 +411,71 @@ namespace isc { namespace dhcp {
         TOKEN_LIBRARY = 322,
         TOKEN_PARAMETERS = 323,
         TOKEN_EXPIRED_LEASES_PROCESSING = 324,
-        TOKEN_SERVER_ID = 325,
-        TOKEN_IDENTIFIER = 326,
-        TOKEN_HTYPE = 327,
-        TOKEN_TIME = 328,
-        TOKEN_ENTERPRISE_ID = 329,
-        TOKEN_DHCP4O6_PORT = 330,
-        TOKEN_CONTROL_SOCKET = 331,
-        TOKEN_SOCKET_TYPE = 332,
-        TOKEN_SOCKET_NAME = 333,
-        TOKEN_DHCP_DDNS = 334,
-        TOKEN_ENABLE_UPDATES = 335,
-        TOKEN_QUALIFYING_SUFFIX = 336,
-        TOKEN_SERVER_IP = 337,
-        TOKEN_SERVER_PORT = 338,
-        TOKEN_SENDER_IP = 339,
-        TOKEN_SENDER_PORT = 340,
-        TOKEN_MAX_QUEUE_SIZE = 341,
-        TOKEN_NCR_PROTOCOL = 342,
-        TOKEN_NCR_FORMAT = 343,
-        TOKEN_ALWAYS_INCLUDE_FQDN = 344,
-        TOKEN_ALLOW_CLIENT_UPDATE = 345,
-        TOKEN_OVERRIDE_NO_UPDATE = 346,
-        TOKEN_OVERRIDE_CLIENT_UPDATE = 347,
-        TOKEN_REPLACE_CLIENT_NAME = 348,
-        TOKEN_GENERATED_PREFIX = 349,
-        TOKEN_UDP = 350,
-        TOKEN_TCP = 351,
-        TOKEN_JSON = 352,
-        TOKEN_WHEN_PRESENT = 353,
-        TOKEN_NEVER = 354,
-        TOKEN_ALWAYS = 355,
-        TOKEN_WHEN_NOT_PRESENT = 356,
-        TOKEN_LOGGING = 357,
-        TOKEN_LOGGERS = 358,
-        TOKEN_OUTPUT_OPTIONS = 359,
-        TOKEN_OUTPUT = 360,
-        TOKEN_DEBUGLEVEL = 361,
-        TOKEN_SEVERITY = 362,
-        TOKEN_DHCP4 = 363,
-        TOKEN_DHCPDDNS = 364,
-        TOKEN_TOPLEVEL_JSON = 365,
-        TOKEN_TOPLEVEL_DHCP6 = 366,
-        TOKEN_SUB_DHCP6 = 367,
-        TOKEN_SUB_INTERFACES6 = 368,
-        TOKEN_SUB_SUBNET6 = 369,
-        TOKEN_SUB_POOL6 = 370,
-        TOKEN_SUB_PD_POOL = 371,
-        TOKEN_SUB_RESERVATION = 372,
-        TOKEN_SUB_OPTION_DEF = 373,
-        TOKEN_SUB_OPTION_DATA = 374,
-        TOKEN_SUB_HOOKS_LIBRARY = 375,
-        TOKEN_SUB_DHCP_DDNS = 376,
-        TOKEN_STRING = 377,
-        TOKEN_INTEGER = 378,
-        TOKEN_FLOAT = 379,
-        TOKEN_BOOLEAN = 380
+        TOKEN_RECLAIM_TIMER_WAIT_TIME = 325,
+        TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME = 326,
+        TOKEN_HOLD_RECLAIMED_TIME = 327,
+        TOKEN_MAX_RECLAIM_LEASES = 328,
+        TOKEN_MAX_RECLAIM_TIME = 329,
+        TOKEN_UNWARNED_RECLAIM_CYCLES = 330,
+        TOKEN_SERVER_ID = 331,
+        TOKEN_LLT = 332,
+        TOKEN_EN = 333,
+        TOKEN_LL = 334,
+        TOKEN_IDENTIFIER = 335,
+        TOKEN_HTYPE = 336,
+        TOKEN_TIME = 337,
+        TOKEN_ENTERPRISE_ID = 338,
+        TOKEN_DHCP4O6_PORT = 339,
+        TOKEN_CONTROL_SOCKET = 340,
+        TOKEN_SOCKET_TYPE = 341,
+        TOKEN_SOCKET_NAME = 342,
+        TOKEN_DHCP_DDNS = 343,
+        TOKEN_ENABLE_UPDATES = 344,
+        TOKEN_QUALIFYING_SUFFIX = 345,
+        TOKEN_SERVER_IP = 346,
+        TOKEN_SERVER_PORT = 347,
+        TOKEN_SENDER_IP = 348,
+        TOKEN_SENDER_PORT = 349,
+        TOKEN_MAX_QUEUE_SIZE = 350,
+        TOKEN_NCR_PROTOCOL = 351,
+        TOKEN_NCR_FORMAT = 352,
+        TOKEN_ALWAYS_INCLUDE_FQDN = 353,
+        TOKEN_ALLOW_CLIENT_UPDATE = 354,
+        TOKEN_OVERRIDE_NO_UPDATE = 355,
+        TOKEN_OVERRIDE_CLIENT_UPDATE = 356,
+        TOKEN_REPLACE_CLIENT_NAME = 357,
+        TOKEN_GENERATED_PREFIX = 358,
+        TOKEN_UDP = 359,
+        TOKEN_TCP = 360,
+        TOKEN_JSON = 361,
+        TOKEN_WHEN_PRESENT = 362,
+        TOKEN_NEVER = 363,
+        TOKEN_ALWAYS = 364,
+        TOKEN_WHEN_NOT_PRESENT = 365,
+        TOKEN_LOGGING = 366,
+        TOKEN_LOGGERS = 367,
+        TOKEN_OUTPUT_OPTIONS = 368,
+        TOKEN_OUTPUT = 369,
+        TOKEN_DEBUGLEVEL = 370,
+        TOKEN_SEVERITY = 371,
+        TOKEN_DHCP4 = 372,
+        TOKEN_DHCPDDNS = 373,
+        TOKEN_TOPLEVEL_JSON = 374,
+        TOKEN_TOPLEVEL_DHCP6 = 375,
+        TOKEN_SUB_DHCP6 = 376,
+        TOKEN_SUB_INTERFACES6 = 377,
+        TOKEN_SUB_SUBNET6 = 378,
+        TOKEN_SUB_POOL6 = 379,
+        TOKEN_SUB_PD_POOL = 380,
+        TOKEN_SUB_RESERVATION = 381,
+        TOKEN_SUB_OPTION_DEF = 382,
+        TOKEN_SUB_OPTION_DATA = 383,
+        TOKEN_SUB_HOOKS_LIBRARY = 384,
+        TOKEN_SUB_DHCP_DDNS = 385,
+        TOKEN_STRING = 386,
+        TOKEN_INTEGER = 387,
+        TOKEN_FLOAT = 388,
+        TOKEN_BOOLEAN = 389
       };
     };
 
@@ -854,10 +864,46 @@ namespace isc { namespace dhcp {
 
     static inline
     symbol_type
+    make_RECLAIM_TIMER_WAIT_TIME (const location_type& l);
+
+    static inline
+    symbol_type
+    make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l);
+
+    static inline
+    symbol_type
+    make_HOLD_RECLAIMED_TIME (const location_type& l);
+
+    static inline
+    symbol_type
+    make_MAX_RECLAIM_LEASES (const location_type& l);
+
+    static inline
+    symbol_type
+    make_MAX_RECLAIM_TIME (const location_type& l);
+
+    static inline
+    symbol_type
+    make_UNWARNED_RECLAIM_CYCLES (const location_type& l);
+
+    static inline
+    symbol_type
     make_SERVER_ID (const location_type& l);
 
     static inline
     symbol_type
+    make_LLT (const location_type& l);
+
+    static inline
+    symbol_type
+    make_EN (const location_type& l);
+
+    static inline
+    symbol_type
+    make_LL (const location_type& l);
+
+    static inline
+    symbol_type
     make_IDENTIFIER (const location_type& l);
 
     static inline
@@ -1281,12 +1327,12 @@ namespace isc { namespace dhcp {
     enum
     {
       yyeof_ = 0,
-      yylast_ = 711,     ///< Last index in yytable_.
-      yynnts_ = 300,  ///< Number of nonterminal symbols.
+      yylast_ = 742,     ///< Last index in yytable_.
+      yynnts_ = 310,  ///< Number of nonterminal symbols.
       yyfinal_ = 26, ///< Termination state number.
       yyterror_ = 1,
       yyerrcode_ = 256,
-      yyntokens_ = 126  ///< Number of tokens.
+      yyntokens_ = 135  ///< Number of tokens.
     };
 
 
@@ -1341,9 +1387,9 @@ namespace isc { namespace dhcp {
       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
-     125
+     125,   126,   127,   128,   129,   130,   131,   132,   133,   134
     };
-    const unsigned int user_token_number_max_ = 380;
+    const unsigned int user_token_number_max_ = 389;
     const token_number_type undef_token_ = 2;
 
     if (static_cast<int>(t) <= yyeof_)
@@ -1376,25 +1422,26 @@ namespace isc { namespace dhcp {
   {
       switch (other.type_get ())
     {
-      case 140: // value
-      case 388: // ncr_protocol_value
-      case 397: // replace_client_name_value
+      case 149: // value
+      case 374: // duid_type
+      case 407: // ncr_protocol_value
+      case 416: // replace_client_name_value
         value.copy< ElementPtr > (other.value);
         break;
 
-      case 125: // "boolean"
+      case 134: // "boolean"
         value.copy< bool > (other.value);
         break;
 
-      case 124: // "floating point"
+      case 133: // "floating point"
         value.copy< double > (other.value);
         break;
 
-      case 123: // "integer"
+      case 132: // "integer"
         value.copy< int64_t > (other.value);
         break;
 
-      case 122: // "constant string"
+      case 131: // "constant string"
         value.copy< std::string > (other.value);
         break;
 
@@ -1415,25 +1462,26 @@ namespace isc { namespace dhcp {
     (void) v;
       switch (this->type_get ())
     {
-      case 140: // value
-      case 388: // ncr_protocol_value
-      case 397: // replace_client_name_value
+      case 149: // value
+      case 374: // duid_type
+      case 407: // ncr_protocol_value
+      case 416: // replace_client_name_value
         value.copy< ElementPtr > (v);
         break;
 
-      case 125: // "boolean"
+      case 134: // "boolean"
         value.copy< bool > (v);
         break;
 
-      case 124: // "floating point"
+      case 133: // "floating point"
         value.copy< double > (v);
         break;
 
-      case 123: // "integer"
+      case 132: // "integer"
         value.copy< int64_t > (v);
         break;
 
-      case 122: // "constant string"
+      case 131: // "constant string"
         value.copy< std::string > (v);
         break;
 
@@ -1513,25 +1561,26 @@ namespace isc { namespace dhcp {
     // Type destructor.
     switch (yytype)
     {
-      case 140: // value
-      case 388: // ncr_protocol_value
-      case 397: // replace_client_name_value
+      case 149: // value
+      case 374: // duid_type
+      case 407: // ncr_protocol_value
+      case 416: // replace_client_name_value
         value.template destroy< ElementPtr > ();
         break;
 
-      case 125: // "boolean"
+      case 134: // "boolean"
         value.template destroy< bool > ();
         break;
 
-      case 124: // "floating point"
+      case 133: // "floating point"
         value.template destroy< double > ();
         break;
 
-      case 123: // "integer"
+      case 132: // "integer"
         value.template destroy< int64_t > ();
         break;
 
-      case 122: // "constant string"
+      case 131: // "constant string"
         value.template destroy< std::string > ();
         break;
 
@@ -1558,25 +1607,26 @@ namespace isc { namespace dhcp {
     super_type::move(s);
       switch (this->type_get ())
     {
-      case 140: // value
-      case 388: // ncr_protocol_value
-      case 397: // replace_client_name_value
+      case 149: // value
+      case 374: // duid_type
+      case 407: // ncr_protocol_value
+      case 416: // replace_client_name_value
         value.move< ElementPtr > (s.value);
         break;
 
-      case 125: // "boolean"
+      case 134: // "boolean"
         value.move< bool > (s.value);
         break;
 
-      case 124: // "floating point"
+      case 133: // "floating point"
         value.move< double > (s.value);
         break;
 
-      case 123: // "integer"
+      case 132: // "integer"
         value.move< int64_t > (s.value);
         break;
 
-      case 122: // "constant string"
+      case 131: // "constant string"
         value.move< std::string > (s.value);
         break;
 
@@ -1647,7 +1697,8 @@ namespace isc { namespace dhcp {
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
-     375,   376,   377,   378,   379,   380
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385,   386,   387,   388,   389
     };
     return static_cast<token_type> (yytoken_number_[type]);
   }
@@ -2061,12 +2112,66 @@ namespace isc { namespace dhcp {
   }
 
   Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_RECLAIM_TIMER_WAIT_TIME, l);
+  }
+
+  Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_FLUSH_RECLAIMED_TIMER_WAIT_TIME, l);
+  }
+
+  Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_HOLD_RECLAIMED_TIME (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_HOLD_RECLAIMED_TIME, l);
+  }
+
+  Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_MAX_RECLAIM_LEASES (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_MAX_RECLAIM_LEASES, l);
+  }
+
+  Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_MAX_RECLAIM_TIME (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_MAX_RECLAIM_TIME, l);
+  }
+
+  Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_UNWARNED_RECLAIM_CYCLES, l);
+  }
+
+  Dhcp6Parser::symbol_type
   Dhcp6Parser::make_SERVER_ID (const location_type& l)
   {
     return symbol_type (token::TOKEN_SERVER_ID, l);
   }
 
   Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_LLT (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_LLT, l);
+  }
+
+  Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_EN (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_EN, l);
+  }
+
+  Dhcp6Parser::symbol_type
+  Dhcp6Parser::make_LL (const location_type& l)
+  {
+    return symbol_type (token::TOKEN_LL, l);
+  }
+
+  Dhcp6Parser::symbol_type
   Dhcp6Parser::make_IDENTIFIER (const location_type& l)
   {
     return symbol_type (token::TOKEN_IDENTIFIER, l);
@@ -2399,7 +2504,7 @@ namespace isc { namespace dhcp {
 
 #line 14 "dhcp6_parser.yy" // lalr1.cc:377
 } } // isc::dhcp
-#line 2403 "dhcp6_parser.h" // lalr1.cc:377
+#line 2508 "dhcp6_parser.h" // lalr1.cc:377
 
 
 

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

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

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

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

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

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